后来发现实在无此必要,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共享盘
[root@node2 ~]# mount 192.168.2.13:/u01 /prod/backup/
[root@node2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 9.7G 6.2G 3.0G 68% /
tmpfs 400M 0 400M 0% /dev/shm
/dev/sda1 194M 27M 158M 15% /boot
/dev/sdb 20G 4.2G 15G 23% /u01
192.168.2.13:/u01 20G 172M 19G 1% /prod/backup
同样设置开机自动挂载
在/etc/rc.local中添加以下内容:
mount 192.168.2.13:/u01 /prod/backup/
四、克隆数据库上启用Direct NFS
登录oracle账户,新建$ORACLE_HOME/dbs/oranfstab文件,内容如下:
[oracle@node2 ~]$ cat $ORACLE_HOME/dbs/oranfstab
server:node3.being.com
path:192.168.2.13
export:/u01
mount:/prod/backup
修改libodm11.so库文件的链接对象
[oracle@node2 lib]$ mv libodm11.so libodm11.so.bak
[oracle@node2 lib]$ ln -s libnfsodm11.so libodm11.so
五、备份生产数据库
支持三种备份方式:在线热备(类似于alter database begin backup)、offline 备份(需关闭数据库)、rman “BACKUP AS COPY”(不支持rman备份集)
在这里,我们选用rman备份
以oracle身份登录node1
[oracle@node1 ~]$ rman target /
RMAN> sql 'alter database begin backup';
RMAN> backup as copy database format '/backup/prod/%U';
RMAN> sql 'alter database end backup';
备份完毕后,查看/backup/prod中的备份文件
[oracle@node1 ~]$ ll /backup/prod/
total 1294792
-rw-r-----. 1 oracle asmadmin 98304 Apr 24 00:26 0cq553i6_1_1
-rw-r-----. 1 oracle asmadmin 9748480 Apr 24 00:26 cf_D-PROD_id-289579616_0aq553hp
-rw-r-----. 1 oracle asmadmin 513810432 Apr 24 00:26 data_D-PROD_I-289579616_TS-SYSAUX_FNO-2_08q553gd
-rw-r-----. 1 oracle asmadmin 765468672 Apr 24 00:25 data_D-PROD_I-289579616_TS-SYSTEM_FNO-1_07q553dp
-rw-r-----. 1 oracle asmadmin 31465472 Apr 24 00:26 data_D-PROD_I-289579616_TS-UNDOTBS1_FNO-3_09q553hj
-rw-r-----. 1 oracle asmadmin 5251072 Apr 24 00:26 data_D-PROD_I-289579616_TS-USERS_FNO-4_0bq553i5
drwx------. 2 root root 16384 Apr 23 19:45 lost+found
其中cf_D-PROD_id-289579616_0aq553hp为控制文件的备份
六、为克隆数据库创建pfile
登录生产数据库
[oracle@node1 ~]$ sqlplus / as sysdba
生成pfile
SQL> create pfile='/backup/prod/pfile.ora' from spfile;
修改参数文件,除将所有涉及到prod的地方改为orcl外,同时新增了一个参数CLONEDB=TRUE,这个是必需的,最后参数文件内容如下:
[oracle@node1 ~]$ cat /backup/prod/pfile.ora
orcl.__db_cache_size=83886080
orcl.__java_pool_size=4194304
orcl.__large_pool_size=8388608
orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=125829120
orcl.__sga_target=188743680
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=83886080
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/fast_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4353687552
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.memory_target=314572800
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
CLONEDB=TRUE
在克隆数据库中新建参数文件中涉及的目录
[oracle@node2 admin]$ mkdir -p /u01/app/oracle/admin/orcl/adump
[oracle@node2 admin]$ mkdir -p /u01/app/oracle/oradata/orcl/
[oracle@node2 admin]$ mkdir -p /u01/app/oracle/fast_recovery_area/orcl
七、克隆数据库
ORACLE官方文档中提供了两种方式,一种是利用oracle自身提供的脚本,一个是手动创建。