rman 异机恢复(非duplication)
(一)源主机需要了解的情况(需要两个机器目录版本啥的一样)
1)源数据库和目标数据库软件版本都是11gR2,psu打到.8的补丁
2)源库192.168.56.199 sid test
SQL> show parameter instance_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string test
3)获取数据库dbid
SQL> select dbid from v$database;
DBID
----------
2202360890
4)检查归档
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch
Oldest online log sequence 5
Current log sequence 7
那么停库,启动到mount
RMAN> backup database format '/oradata/rmanbackup/test_full_noar_%U';
注意如果是归档模式,要加上 archivelog ,在一个归档模式不需要停库
#RMAN> backup archivelog all format '/oradata/rmanbackup/arch_full_arch_%U';
5)创建pfile到/oradata/rmanbackkup/
create pfile='/oradata/rmanbackkup/ ' from spfile
6)将文件拷贝到目标机
cd /oradata/rmanbackup
scp * oracle@test1:/oradata/rmanbackup (这里的路径要一样,不一样的话要set new name ,switch all datafile)
[oracle@hvr rmanbackup]$ scp * oracle@192.168.56.198:/oradata/rmanbackup/
(二)目标机的情况,我的目标库只装了软件,没有安装库
1)修改pfie.ora
.audit_file_dest='/u01/app/oracle/admin/test/adump'
control_files='/oradata/test/control01.ctl','/oradata/test/control02.ctl'
注意路径
[oracle@test1 ~]$ mkdir -p /u01/app/oracle/admin/test/adump
[oracle@test1 ~]$ mkdir -p /oradata/test/
2)创建spfile,启动数据库到mount
SQL> create spfile from pfile='/oradata/rmanbackup/pfile.ora';
File created.
SQL> startup nomount;
ORACLE instance started.
3)使用rman恢复控制文件
[oracle@test1 rmanbackup]$ rman target /
RMAN> set dbid=2202360890
executing command: SET DBID
RMAN> restore controlfile from '/oradata/rmanbackup/test_full_noar_04quhpeu_1_1';
4)恢复数据文件
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database;
recove会报错,因为没有归档日志,另外如果在归档模式下,也会报错,因为没有在线日志应用。
5)resetlogs打开数据库
SQL> alter database open resetlogs ;
Database altered.