热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何利用DirectNFS克隆Oracle数据库

CloneDB是Oracle11.2.0.3推出的一项新特性,它利用的了11g新引入的DirectNFS。它直接利用目标数据库的备份,无需将备份COPY到克

CloneDB是Oracle 11.2.0.3推出的一项新特性,它利用的了11g新引入的Direct NFS。它直接利用目标数据库的备份,无需将备份COPY到克

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

后来发现实在无此必要,node1中/backup/prod的权限和node3中的/u01权限是相对应的,都是757。我以oracle用户的身份在该目录下创建文件,文件的属主和属组就分别是oracle和oinstall。

设置为开机自动挂载

在/etc/rc.local添加以下内容:

mount 192.168.2.13:/u01 /backup/prod/

三、在克隆数据库上挂载NFS文件系统

以root身份登录,创建备份目录,名字随意

[root@node2 ~]# mkdir -p /prod/backup

挂载node3提供的NFS共享盘

推荐阅读
author-avatar
怪话greenup
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有