弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

NFSと10g

最新にアップデートしたCentOS 5.3
ここからダウンロードした
Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86 を評価

Database Configration Assistant(dbca)でエラー

ORA-10997: another startup/shutdown operation of this instance inprogress
ORA-09968: unable to lock file
ORA-01034: ORACLE not available

 

ひょっとして これ

 

 

ORA-09968: unable to lock file
Linux Error: 11: Resource temporarily unavailable
Additional information: 28473

Oracle Error :: ORA-09968
unable to lock file

Cause
The system call for locking a file returned an error when trying to acquire a database mount lock or the instance startup/shutdown lock.

Action
Check if all mountpoints are mouted successfuly.
Especially db_recovery_file_dest destination.

metalink 269223.1 Unable to startup the database after reboot Ora-9968 Ora-1102 on Linux

Cause
The error caused by the NFS locking issue.

Workarounds:
1) Use “nolock" NFS mount option (disables locking entirely).
(Not recommended, see Note 279393.1
2) Manually clear locks on NetApp filer after every client reboot.

 

あとは こここれ

NFSサーバ /etc/exports
/mnt/oracle 192.168.2.0/255.255.255.0(rw,sync,no_wdelay,no_root_squash)

NFSクライアント /etc/fstab
nas:/mnt/oracle /mnt/nfs nfs bg,hard,nointr,noac,rsize=32768,wsize=32768

初期化filesystemio_options=DIRECTIO

 

Oracle Real Application Clusters 10g 設定 NAS 編 35

各NFSクライアント(この場合、Oracleが稼動するサーバー)は、
ファイルキャッシュを持っています。このキャッシュが原因で、
共有ディスク上のデータベースのデータが不整合を引き起こし、
データベースが破壊される可能性があります。

このため、"noac"を設定し、NFSがファイルキャッシュを持たないように設定します。

また、"hard"は、ネットワークが切断されたりして、通信不能になったとき、
TCP/IPを切断せず、待ち続ける設定です。

"nointr"は、アプリケーションなどからのシグナルによる強制切断を許すかどうかを設定します。
Nointr、シグナルによる操作を許さない設定です。
これらの設定は、通常NFSサーバーとRACを組み合わせて利用するときは、必須の設定です。

 

 

さらにここを参考
ここ

 

NFSサーバ側をチューニング /etc/sysconfig/nfs

MOUNTD_NFS_V3="yes"
RPCNFSDCOUNT=16
カーネルパラメータを Kevin Closson チューニング /etc/sysctl.conf

 

# Oracle
#kernel.sem = 256 32000 100 142
#kernel.msgmnb = 65535
##kernel.shmmax = 268435456
#kernel.shmmax = 2147483648

fs.file-max = 206173
net.ipv4.ip_local_port_range = 1024 65000

#net.core.rmem_default = 262144
#net.core.rmem_max = 262144
#net.core.wmem_default = 262144
#net.core.wmem_max = 262144

net.core.rmem_default = 524288
net.core.wmem_default = 524288
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.ipfrag_high_thresh=524288
net.ipv4.ipfrag_low_thresh=393216
net.ipv4.tcp_rmem=4096 524288 16777216
net.ipv4.tcp_wmem=4096 524288 16777216
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=0
net.ipv4.tcp_window_scaling=1

net.core.optmem_max=524287
net.core.netdev_max_backlog=2500
sunrpc.tcp_slot_table_entries=128
sunrpc.udp_slot_table_entries=128
net.ipv4.tcp_mem=16384 16384 16384

 

rsize,wsizeを8192 (Ver.2 の理論上の最大値) 超に設定するときは nfsvers=3
tcpの方が再送コストが低いとか

/etc/exports

/somewhere/oracle nfs_client.localdomain(rw,sync,no_wdelay,no_root_squash) *(ro)
/somewhere/oradata nfs_client.localdomain(rw,sync,no_wdelay,no_root_squash) *(ro)

 

NFSクライアント /etc/fstab

nfs_server:/somewhere/oracle /somewhere/oracle nfs bg,hard,nointr,rsize=32768,wsize=32768,actimeo=0,nolock,tcp,nfsvers=3 1 1
nfs_server:/somewhere/oradata /somewhere/oradata nfs bg,hard,nointr,noac,rsize=32768,wsize=32768,nolock,tcp,nfsvers=3 1 1
これで耐えられる程度に速くなった

 

Using direct I/O with Oracle

 

Note: Oracle now says that the preferred method is filesystemio_options=setall.

 

投稿されたコメント:

コメント
コメントは無効になっています。