增加ORACLE歸檔位置到NFS

season0891發表於2012-11-15

原文:http://space.itpub.net/10522540/viewspace-661561

NFS檔案系統搭建

1什麼是NFS

NFS(network file system),網路檔案系統,不同的作業系統可以透過NFS來共享檔案,可以簡單地將之看成是一個檔案伺服器。可以將遠端的主機分享目錄掛載到本地的目錄下,使用的時候就像本地的目錄一樣,只要許可權足夠,可以直接在目錄中建立檔案並使用mv,cp,,rm等命令直接對之進行。用起來相當的方便。

2 NFS的原理

NFS使用TCP/IP協議進行通訊。所以肯定需要port埠進行通訊。這個埠是從1—1024中隨機取得的埠。因為NFS的功能很多,需要分配很多的埠,客戶端透過RPC來找到這個埠並進行通訊。NFS每次啟動的時候都要向RPC進行註冊才行。而RPC服務重啟後,所有的埠資訊都會丟失,所以如果RPC重啟,則NFS SERVICE也必需重新啟動重新向RPC服務註冊。這樣客戶端才能知道該使用哪個埠通訊。客戶端連線NFS伺服器的步驟。

1使用者向伺服器端的RPCport 111)提出訪問請求

2伺服器端查詢NFS damon埠地址,提供給client端。

3 client透過port端進行通訊。

3 NFS的後臺程式

      NFS主要用來做檔案的分享。最主要有兩個後臺程式,一個接受連線,一個提供服務。

rpc.nfsd校驗登入許可權。

rpc.mount管理檔案系統。讀設定檔案/etc/exports,確定許可權。

rpc.lockd 這個程式不是必需的。用途加鎖管理。避免併發問題。如果多個會話同時存取一個檔案,可能會有併發問題。為了解決這個問題。增加了這個程式,注意必需客戶端和伺服器端同時啟動才行。通常與rpc.statd同時啟用。

Rpc.statd,校驗檔案一致性的程式。通常與ntplockd同時啟動

 

4許可權問題

NFS共享目錄的許可權是透過UID,GID來判斷的。比方在伺服器端共享目錄的屬主為503503。如果共享目錄的許可權比較小,而如果客戶端沒有503,503的使用者。用gid,uid501的使用者登入的時候,就既不能讀,也不能寫。。所以通常情況下都會將共享目錄設定成777的許可權。

當登入使用者為root 0:0的時候,對映到服務端如果也是00就會有安全上的隱患。NFS預設將uid,0,gid0當成nobody來處理,

當登入的使用者對應的uid,gid在服務端存在的時候,在該目錄中的許可權和服務端對應使用者相同。

當登入的使用者不存在的時候。建立的uid,gid為使用者的uid,gid,服務端看到的檔案有uid,gid,但是沒有使用者名稱。其讀取的許可權和nobody相同。

總之,只要client登入使用者的uidgid和伺服器端的不對應,就會造成困擾。這也是NFS檔案系統許可權管理上的一個很容易引起混亂的問題。要有合適的讀寫許可權。需要

/etc/export中的合理設定。以及登入者的對應使用者在共享目錄的許可權足夠才行。

5配置NFS服務

前面說配置NFS需要RPC服務的啟動。在系統上RPC對應的服務名是portmap.所以首先需要啟動portmap服務。而且如果portmap服務重啟,NFS服務就會變得不可用,必須重新啟動。

service portmap restart;

service nfs restart;

NFS的配置檔案是/etc/exports.格式是

共享目錄,主機ip(許可權關鍵字)可用主機名帶萬用字元的主機名(許可權)。

一個例子

<!--[if !vml]--&gt[root@vdx2 rmanbak]# more /etc/exports
/home/oracle/aa 10.10.100.14(rw,nohide,no_subtree_check)
<!--[endif]--&gt

()內的語法可以透過man exports來檢視,在此不做詳述。

與許可權有關的有rw表示允許讀寫共享,ro表示只讀共享。

配置完/etc/exports以後,只要重新啟動NFS,伺服器端的配置就完成了。

另外需要注意,只要修改了/etc/exports檔案,NFS都要重新啟動。

為了避免NFS SERVER重啟後服務未啟動,使用setup工具把portmap, nfs,

nfslock配置為自動啟動。

ORACLE配置NFS服務客戶端

1掛載選項

  如果僅僅只是做簡單的複製動作,只要直接mountOK了。但是如果想讓ORACLE直接訪問NFS目錄,除了許可權設定正確外,mount必需加上-o選項。否則ORACLE無法直接讀寫,會給出mount選項不對的錯誤。

  根據ORACLE,metalink Doc ID:359515.1,不同平臺不同情況下的mount選項是不同的,如下是ORACLE提供的對照表。針對二進位制檔案(ORACLE_HOME,CRS_HOME),資料檔案(包括控制檔案和日誌檔案,資料檔案)OCRVOTING DISK的不同情況可以在如下表中查詢。

注意linux核心版本需要>=2.6

情況下。

Operating System

Mount options for Binaries

Mount options for Oracle Datafiles

Mount options for CRS Voting Disk and OCR

Sun Solaris *

rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,
noac,vers=3,suid

rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,noac,
forcedirectio, vers=3,suid

rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,vers=3,
noac,forcedirectio

AIX (5L) **

rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,vers=3,
timeo=600

,rw,bg,hard,nointr,rsize=32768,
wsize=32768,proto=tcp,noac,
vers=3,timeo=600

cio,rw,bg,hard,intr,rsize=32768,
wsize=32768,tcp,noac,
vers=3,timeo=600

HPUX 11.23 ****

rw,bg,vers=3,proto=tcp,noac,
hard,nointr,timeo=600,
rsize=32768,wsize=32768,suid

rw,bg,vers=3,proto=tcp,noac,
forcedirectio,hard,nointr,timeo=600,
rsize=32768,wsize=32768,suid

rw,bg,vers=3,proto=tcp,noac,
forcedirectio,hard,nointr,timeo=600
,rsize=32768,wsize=32768,suid

Linux x86#

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp, vers=3,
timeo=600, actimeo=0

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,actimeo=0,
vers=3,timeo=600

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,noac,vers=3,
timeo=600

Linux x86-64 #

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,vers=3,
timeo=600, actimeo=0

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,actimeo=0,
vers=3,timeo=600

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,vers=3,
timeo=600,noac

Linux x86-64 #

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,vers=3,
timeo=600, actimeo=0

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,actimeo=0,
vers=3,timeo=600

rw,bg,hard,nointr,rsize=32768,
wsize=32768,tcp,noac,vers=3,
timeo=600

根據BUG 5856342,在RAC使用網路儲存裝置,作業系統為linux X86或者X86_64, oracle版本低於10.2.0.4的情況下,必需設定初始化引數

filesystemio_options = DIRECTIO

 

在單例項(single-Instance)情況下的對照表

Operating System

Mount options for Binaries

Mount options for Oracle Datafiles

Sun Solaris *
(8, 9, 10)

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
proto=tcp,suid

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,[forcedirectio or llock],
nointr,proto=tcp,suid

AIX (5L) **

 rw,bg,hard,rsize=32768,
wsize=32768,vers=3,intr,
timeo=600,proto=tcp

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,cio,intr,
timeo=600,proto=tcp

HPUX 11.23 ****

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,proto=tcp,suid

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,proto=tcp,suid

Linux x86
#

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,tcp

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,tcp,actime=0*

Linux x86-64 #

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,tcp

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,tcp,actime=0*

LinuxItanium

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,tcp

rw,bg,hard,rsize=32768,
wsize=32768,vers=3,nointr,
timeo=600,tcp

其中acime=0**代表也可以使用noac

我們的作業系統為linux X86.所以可以root帳號執行以下語句來掛載

Shell> mount –t nfs –orw,bg,hard,rsize=32768,wsize=32768,vers=3,nointr,timeo=600,tcp 10.10.100.14/home/oracle/aa /14dir;

2必需啟動的服務

注意:ORACLE直接歸檔到nfs的時候必需啟動ntfslock 服務,這個服務通常與rfs.statd同時啟動。在serverclient都需要,否則歸檔時會出現如下的錯誤。

ORA-19504: failed to create file "/u03/245dir/1_8665_567259761.dbf"

ORA-27086: unable to lock file - already in use

Linux Error: 37: No locks available

Additional information: 10

3修改歸檔位置

  直接修改歸檔引數就可以了

  ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’LOCATION=/14dir’;

後續處理

1修改/ETC/fstab檔案實現自動掛載

 為了避免系統重啟需手動掛載NFS,可修改/etc/fstab檔案來實現自動掛載。

 使用root來編輯,加入一行

10.10.100.14:/home/oracle/aa /14dir nfs    rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 0 0

2將必需的服務設定為自動啟動

  客戶端需要設定portmap,nfslock自動啟動。可以用setup工具來實現。

 服務端配置portmap,nfs,nfslock自動啟動。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-749273/,如需轉載,請註明出處,否則將追究法律責任。

相關文章