Setup Oracle Direct NFS Client
在Oracle 11g中引入了Direct Network File System(Oracle Direct NFS)的新特性,通过一个打包在Oracle内核中的NFS客户机以改善实例使用NFS时的性能,同时进一步完善了通过NFS实现RAC的解决方案。常规的NFS客户端软件一般由操作系统供应商提供,这类NFS客户端不会专门为Oracle数据文件的IO做优化。而通过内建的Oracle Direct NFS,数据库将可以直接访问NFS服务器上的文件,避免由OS内核NFS造成的额外开销。Oracle宣称由以上优化所带来的性能提升,在DSS环境中超过40%,而在OLTP环境中超过10%(详见<Oracle Database 11g Direct NFS Client a white paper>)。
接下来我们将通过实例来演示如何构建Oracle Direct NFS客户机,实际上这并不困难;Direct NFS客户机会以如下顺序查找装载点的设置信息:
- $ORACLE_HOME/dbs/oranfstab 作用域为$ORACLE_HOME相关的数据库
- /etc/oranfstab 作用域为主机上所有可用数据库
- 最后为/etc/mtab配置文件,以确定可用的NFS装载点
- Server:NFS服务器名
- Path:到达NFS服务器的最多4个网络路径,可以是IP或者主机名
- Export:从NFS服务器导出的路径
- Mount:NFS的本地装载点
SQL> shutdown immediate; [maclean@rh2 ~]$ cd $ORACLE_HOME/lib [maclean@rh2 lib]$ mv libodm11.so libodm11.so.old [maclean@rh2 lib]$ ln -s libnfsodm11.so libodm11.so [maclean@rh2 lib]$ ls -l libodm11.so lrwxrwxrwx 1 maclean oinstall 14 Feb 18 19:27 libodm11.so -> libnfsodm11.so接下来我们将正式启用Direct NFS Client,并会简单测试其性能:
[root@rh2 ~]# showmount -e nas Export list for nas: /d01 rh2 /* 以常规方式装载NFS文件系统 */ [root@rh2 ~]# mount -t nfs nas:/d01 /d01 [maclean@rh2 ~]$ cat $ORACLE_HOME/dbs/oranfstab server: nas path: 192.168.1.188 export: /d01 mount: /d01 SQL> startup; 启动阶段告警日志会出现以下信息: Oracle instance running with ODM: Oracle Direct NFS ODM Library Version 3.0 ................. Direct NFS: attempting to mount /d01 on filer nas defined in oranfstab Direct NFS: channel config is: channel id [0] local [] path [192.168.1.188] Direct NFS: mount complete dir /d01 on nas mntport 998 nfsport 2049 SQL> desc v$dnfs_servers; Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER SVRNAME VARCHAR2(255) DIRNAME VARCHAR2(1024) MNTPORT NUMBER NFSPORT NUMBER WTMAX NUMBER RTMAX NUMBER /*可以通过查询V$DNFS_SERVERS动态视图来了解NFS客户机的装载情况 */ SQL> col svrname for a10 SQL> col dirname for a10 SQL> select svrname,dirname,mntport,nfsport from v$dnfs_servers; SVRNAME DIRNAME MNTPORT NFSPORT ---------- ---------- ---------- ---------- nas /d01 998 2049 /* 此外V$DNFS_FILES视图提供了当前Direct NFS打开的文件 V$DNFS_CHANNELS视图提供了DNFS为服务器打开的网络路径 V$DNFS_STATS视图提供了DNFS的性能统计信息 */ SQL> set timing on; SQL> create tablespace nfs_perf datafile '/d01/perf01.dbf' size 2000M; Tablespace created. Elapsed: 00:00:30.91 SQL> shutdown immediate; /* 通过还原libodm11.so库文件和删除oranfstab配置文件可以禁用Direct NFS */ [maclean@rh2 lib]$ cp libodm11.so.old libodm11.so [maclean@rh2 lib]$ rm $ORACLE_HOME/dbs/oranfstab SQL> select svrname,dirname,mntport,nfsport from v$dnfs_servers; no rows selected SQL> set timing on; SQL> create tablespace nfs_kernel datafile '/d01/kernel01.dbf' size 2000M; Tablespace created. Elapsed: 00:00:29.45 /* 似乎从简单的数据文件创建时间上体现不出Oracle Direct Nfs的优势...*/ That's ok
posted on 2013-03-19 00:47 Oracle和MySQL 阅读(383) 评论(0) 编辑 收藏 举报