如何利用Direct NFS克隆Oracle数据库

CloneDB是Oracle 11.2.0.3推出的一项新特性,它利用的了11g新引入的Direct NFS。它直接利用目标数据库的备份,无需将备份COPY到克隆环境下,使得一个备份可以克隆多个不同用途的数据库。它同时采用了copy-on-write技术,使得备份中只有被修改了的block才会被应用到克隆数据库中,极大的节省了克隆数据库的空间,并提升了数据库克隆的速度。

下面对该项特性进行了测试,共涉及三台服务器,采用的均是32位RHEL 6.3操作系统,数据库版本11.2.0.4。

NFS服务器:
  主机名:node3.being.com
  IP: 192.168.2.13
  共享路径:/u01
生产数据库:
  主机名: node1.being.com
  IP: 192.168.2.11
  ORACLE_HOME: /u01/app/oracle/product/11.2.0.4/db_1
  ORACLE_SID:prod
  挂载点:/backup/prod/
克隆数据库:
  主机名:node2.being.com
  IP:192.168.2.12
  ORACLE_HOME:/u01/app/oracle/product/11.2.0.4/db_1
  ORACLE_SID:orcl
  挂载点:/prod/backup

一、准备NFS环境

首先查看一下node3的磁盘情况

[root@node3 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2            5.8G  3.9G  1.6G  72% /
tmpfs                504M    0  504M  0% /dev/shm
/dev/sda4              20G  172M  19G  1% /u01 

在这里,打算将/u01作为NFS磁盘共享出去。

在NFS Server的主配置文件中/etc/exports添加以下内容:

/u01 *(rw,no_root_squash)

在这里,注意/u01的权限,刚开始/u01默认的是755权限,node1挂载后,无法创建文件,报“Permission denied”。

修改/u01的权限

[root@node3 ~]# chmod 757 /u01/

重启rpcbind和nfs服务

[root@node3 ~]# /etc/init.d/rpcbind restart
Stopping rpcbind:                                          [FAILED]
Starting rpcbind:                                          [  OK  ]

[root@node3 ~]# /etc/init.d/nfs restart
Shutting down NFS daemon:                                  [FAILED]
Shutting down NFS mountd:                                  [FAILED]
Shutting down NFS quotas:                                  [FAILED]
Starting NFS services:                                    [  OK  ]
Starting NFS quotas:                                      [  OK  ]
Starting NFS mountd:                                      [  OK  ]
Starting NFS daemon:                                      [  OK  ]

查看配置是否成功

[root@node3 ~]# showmount -e 192.168.2.13
Export list for 192.168.2.13:
/u01 *

将rpcbind和nfs服务设为开机自启动

[root@node3 ~]# chkconfig rpcbind on
[root@node3 ~]# chkconfig nfs on

二、在生产数据库上挂载NFS文件系统

以root身份登录,创建备份目录

[root@node1 ~]# mkdir /backup/prod

挂载node3提供的nfs磁盘

[root@node1 ~]# showmount -e 192.168.2.13
Export list for 192.168.2.13:
/u01 *
[root@node1 ~]# mount 192.168.2.13:/u01 /backup/prod/
[root@node1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2            7.7G  3.6G  3.8G  49% /
tmpfs                400M  184M  217M  46% /dev/shm
/dev/sda1            194M  27M  158M  15% /boot
/dev/sda4              28G  11G  16G  41% /u01
192.168.2.13:/u01      20G  172M  19G  1% /backup/prod

挂载后,无法给/backup/prod修改文件属主和属组,譬如我想将该目录设置为oracle用户专享的,结果如下:

[root@node1 ~]# chown oracle.oinstall /backup/prod/
chown: changing ownership of `/backup/prod/': Invalid argument

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9c223881a4ba7f13dd4a59bc63481d25.html