记录一次Oracle19RAC恢复到单机文件系统(rac19.6---单机19.3)
源端库:rac19c(双节点RAC)
版本:19.6.0.0.0
操作系统:centos7.5
目标库:rac19c(单实例文件系统)
版本:19.3.0.0.0
操作系统:centos7.5
客户需求,生产库数据发生变化,需要使用昨天备份恢复一套单实例做数据对比加数据恢复
19RAC 19.6 恢复至单实例文件系统19c 19.3
(同时验证19c可以跨小版本恢复)
---批量数据文件重命名,适合rac到单实例,重定向路径
异机查看执行:
SQL>select 'SET NEWNAME FOR DATAFILE '|| file# ||' to ' ||''''|| name ||''''|| ';' from v$datafile;
---批量日志文件重命名,适合rac到单实例,重定向路径
SQL> select 'alter database rename file '''||member||q'[' to '/u01/app/oracle/fast_recovery_area/redo';]' from v$logfile;
---
1.监听:动静结合
#listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac19cdg)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME =/u01/app/oracle/product/19.3.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = rac19c)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
(SID_NAME =rac19c)
)
)
#tnsnames.ora
RAC19C =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.159.33.6)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rac19c)
)
)
2.修改参数文件initrac9c.ora并启动到nomount状态
$sqlplus / as sysdba
SQL>startup nomount;
SQL>exit
3.恢复控制文件
rman target /
RMAN>restore controlfile from '/archi/backup/backup/rac19c/rac19c_ctl_l0_13848_1_1067904730';
RMAN>alter database mount;
RMAN>catalog start with '/archi/backup/backup/rac19c';
4.重定向数据文件路径restore数据库
RMAN> run{
allocate channel ch0 type disk;
SET NEWNAME FOR DATAFILE 1 to '/oradata/DATAFILE/system01.dbf';
SET NEWNAME FOR DATAFILE 2 to '/oradata/PDBSEED/system01.dbf';
SET NEWNAME FOR DATAFILE 3 to '/oradata/DATAFILE/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 4 to '/oradata/PDBSEED/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 5 to '/oradata/DATAFILE/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 6 to '/oradata/PDBSEED/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 7 to '/oradata/DATAFILE/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 8 to '/oradata/DATAFILE/users01.dbf';
SET NEWNAME FOR DATAFILE 143 to '/oradata/PDBFINDASHBOARDWEB/system01.dbf';
SET NEWNAME FOR DATAFILE 144 to '/oradata/PDBFINDASHBOARDWEB/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 145 to '/oradata/PDBFINDASHBOARDWEB/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 146 to '/oradata/PDBFINDASHBOARDWEB/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 147 to '/oradata/PDBFINDASHBOARDWEB/user01.dbf';
SET NEWNAME FOR DATAFILE 9 to '/oradata/B1CAE8A885CB7611E05301219F0ACD15/DATAFILE/system.dbf';2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16>
SET NEWNAME FOR DATAFILE 10 to '/oradata/B1CAE8A885CB7611E05301219F0ACD15/DATAFILE/sysaux.dbf';
SET NEWNAME FOR DATAFILE 11 to '/oradata/B1CAE8A885CB7611E05301219F0ACD15/DATAFILE/undotbs1.dbf';
SET NEWNAME FOR DATAFILE 12 to '/oradata/B1CAE8A885CB7611E05301219F0ACD15/DATAFILE/undo_2.dbf';
SET NEWNAME FOR DATAFILE 13 to '/oradata/B1CAE8A885CB7611E05301219F0ACD15/DATAFILE/users.dbf';
SET NEWNAME FOR DATAFILE 56 to '/oradata/B1D995DC534113D6E05301219F0AB165/DATAFILE/system.dbf';
SET NEWNAME FOR DATAFILE 57 to '/oradata/B1D995DC534113D6E05301219F0AB165/DATAFILE/sysaux.dbf';
SET NEWNAME FOR DATAFILE 58 to '/oradata/B1D995DC534113D6E05301219F0AB165/DATAFILE/undotbs1.dbf';
SET NEWNAME FOR DATAFILE 59 to '/oradata/B1D995DC534113D6E05301219F0AB165/DATAFILE/undo_2.dbf';
SET NEWNAME FOR DATAFILE 60 to '/oradata/B1D995DC534113D6E05301219F0AB165/DATAFILE/users.dbf';
SET NEWNAME FOR DATAFILE 61 to '/oradata/B1D995DC534113D6E05301219F0AB165/DATAFILE/ykspace.dbf';
SET NEWNAME FOR DATAFILE 66 to '/oradata/PDBOA/system01.dbf';17> 18> 19> 20> 21> 22> 23> 24> 25> 26> 27>
SET NEWNAME FOR DATAFILE 67 to '/oradata/PDBOA/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 69 to '/oradata/PDBOA/undotbs102.dbf';
SET NEWNAME FOR DATAFILE 70 to '/oradata/PDBOA/user01.dbf';
SET NEWNAME FOR DATAFILE 71 to '/oradata/PDBOA/ecology01.dbf';
SET NEWNAME FOR DATAFILE 137 to '/oradata/PDBEHR/system01.dbf';
SET NEWNAME FOR DATAFILE 138 to '/oradata/PDBEHR/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 139 to '/oradata/PDBEHR/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 140 to '/oradata/PDBEHR/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 141 to '/oradata/PDBEHR/user01.dbf';
SET NEWNAME FOR DATAFILE 142 to '/oradata/PDBEHR/ykspace01.dbf';
SET NEWNAME FOR DATAFILE 148 to '/oradata/PDBFINDASHBOARD/system01.dbf';
SET NEWNAME FOR DATAFILE 149 to '/oradata/PDBFINDASHBOARD/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 150 to '/oradata/PDBFINDASHBOARD/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 151 to '/oradata/PDBFINDASHBOARD/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 152 to '/oradata/PDBFINDASHBOARD/user01.dbf';
SET NEWNAME FOR DATAFILE 153 to '/oradata/PDBEQUIP/system01.dbf';28> 29> 30> 31> 32> 33> 34> 35> 36> 37> 38> 39> 40> 41> 42> 43>
SET NEWNAME FOR DATAFILE 154 to '/oradata/PDBEQUIP/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 155 to '/oradata/PDBEQUIP/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 156 to '/oradata/PDBEQUIP/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 157 to '/oradata/PDBEQUIP/user01.dbf';
SET NEWNAME FOR DATAFILE 158 to '/oradata/PDBEQUIP/user02.dbf';
SET NEWNAME FOR DATAFILE 159 to '/oradata/PDBOA/ecology02.dbf';
SET NEWNAME FOR DATAFILE 167 to '/oradata/PDBSHOP/system01.dbf';
SET NEWNAME FOR DATAFILE 168 to '/oradata/PDBSHOP/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 169 to '/oradata/PDBSHOP/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 170 to '/oradata/PDBSHOP/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 171 to '/oradata/PDBSHOP/user01.dbf';
SET NEWNAME FOR DATAFILE 182 to '/oradata/PDBHEALTH/system01.dbf';
SET NEWNAME FOR DATAFILE 183 to '/oradata/PDBHEALTH/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 184 to '/oradata/PDBHEALTH/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 185 to '/oradata/PDBHEALTH/undotbs201.dbf';44> 45> 46> 47> 48> 49> 50> 51> 52> 53> 54> 55> 56> 57> 58>
SET NEWNAME FOR DATAFILE 186 to '/oradata/PDBHEALTH/user01.dbf';
SET NEWNAME FOR DATAFILE 187 to '/oradata/PDBEQUIP/user03.dbf';
SET NEWNAME FOR DATAFILE 188 to '/oradata/PDBCMS/system01.dbf';
SET NEWNAME FOR DATAFILE 189 to '/oradata/PDBCMS/sysaux01.dbf';
SET NEWNAME FOR DATAFILE 190 to '/oradata/PDBCMS/undotbs101.dbf';
SET NEWNAME FOR DATAFILE 191 to '/oradata/PDBCMS/undotbs201.dbf';
SET NEWNAME FOR DATAFILE 192 to '/oradata/PDBCMS/user01.dbf';
SET NEWNAME FOR DATAFILE 193 to '/oradata/PDBCMS/bpmou5301.dbf';
SET NEWNAME FOR DATAFILE 194 to '/oradata/PDBCMS/bpmapp5301.dbf';
SET NEWNAME FOR DATAFILE 195 to '/oradata/PDBCMS/bpmdef5301.dbf';
SET NEWNAME FOR DATAFILE 196 to '/oradata/PDBEQUIP/user04.dbf';
SET NEWNAME FOR DATAFILE 197 to '/oradata/PDBEQUIP/user05.dbf';
SET NEWNAME FOR DATAFILE 199 to '/oradata/PDBOA/undotbs101.dbf';
restore database;
switch datafile all;
switch tempfile all;
release channel ch0;
}59> 60> 61> 62> 63> 64> 65> 66> 67> 68> 69> 70> 71> 72> 73> 74> 75> 76>
using target database control file instead of recovery catalog
allocated channel: ch0
channel ch0: SID=1137 device type=DISK
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME</