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 阅读(400) 评论(0) 收藏 举报

2群基础群 适合刚入门的同学,会共享最佳入门实践和资料 QQ群 # QQ群号:171092051 # 已经升级到 500人的超级群,空位多多,无需面试
浙公网安备 33010602011771号