昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给测试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下重新测试了一下,记录下来供大家参考
环境:
所有操作都是按主机名区分
源库:
主机名 bre1 实例名为bre1 数据文件目录在/u01/app/oradata下
目标库:
主机名 bre2 数据文件准备放在/bre1/oradata下
废话不多说,下面是实际操作步骤
1.在源库创建备份集,并且拷贝到目标库
拷贝的目录可用和原来的备份的时候的目录一致,也可以不一致
备份system表空间rman会自动备份参数文件和控制文件
RMAN> backup database format '/home/oracle/%U.bak';
Starting backup at 21-AUG-2014 10:03:35
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/bre1/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/bre1/sysaux01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/bre1/undotbs01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/bre1/test.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/bre1/users01.dbf
channel ORA_DISK_1: starting piece 1 at 21-AUG-2014 10:03:36
channel ORA_DISK_1: finished piece 1 at 21-AUG-2014 10:03:51
piece handle=/home/oracle/03pggb7o_1_1.bak tag=TAG20140821T100336 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 21-AUG-2014 10:03:52
channel ORA_DISK_1: finished piece 1 at 21-AUG-2014 10:03:53
piece handle=/home/oracle/04pggb87_1_1.bak tag=TAG20140821T100336 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 21-AUG-2014 10:03:53
[oracle@bre2 ~]$ scp bre1:/home/oracle/03pggb7o_1_1.bak .
The authenticity of host 'bre1 (192.168.56.45)' can't be established.
RSA key fingerprint is 73:56:4c:3a:01:3f:50:c8:d8:3a:5d:d5:21:00:6a:fe.
Are you sure you want to continue connecting (yes/no) yes
Warning: Permanently added 'bre1,192.168.56.45' (RSA) to the list of known hosts.
oracle@bre1's password:
03pggb7o_1_1.bak 100% 336MB 37.3MB/s 00:09
[oracle@bre2 ~]$ scp bre1:/home/oracle/04pggb87_1_1.bak .
oracle@bre1's password:
04pggb87_1_1.bak 100% 9600KB 9.4MB/s 00:00
2.还原spfile,使用nomount打开
数据库
编辑一个最简单的pfile,只有db_name即可:
[oracle@bre2 dbs]$ vi initbre1.ora
[oracle@bre2 dbs]$ cat initbre1.ora
db_name=bre1
然后就可以nomount打开数据库了:
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 229683200 bytes
Fixed Size 2251936 bytes
Variable Size 171967328 bytes
Database Buffers 50331648 bytes
Redo Buffers 5132288 bytes
SQL>
再使用rman来恢复spfile:
RMAN> restore spfile from '/home/oracle/backup/04pggb87_1_1.bak';
Starting restore at 21-AUG-2014 9:39:31
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=171 device type=DISK
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/backup/04pggb87_1_1.bak
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 21-AUG-2014 9:39:32
RMAN>
使用spfile来打理数据库试试
[oracle@bre2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 21 10:08:01 2014