一、准备
在源库执行sql,得到run{…………},rman时使用,确认异机环境存在目录:/data/app/oracle/oradata/orcl/ 可以修改
select 'run {'
from dual
union all
select 'set newname for datafile ' || file# || ' to ' ||
'''/data/app/oracle/oradata/orcl/' ||
decode(con_id, 2, 'pdbseed/', 3, 'srmprodb/', 4, 'itfprodb/', '') ||
lower(substr(name, instr(name, '/', -1) + 1)) || ''';'
from v$datafile
union all
select 'set newname for tempfile ' || file# || ' to ' ||
'''/data/app/oracle/oradata/orcl/' ||
decode(con_id, 2, 'pdbseed/', 3, 'srmprodb/', 4, 'itfprodb/', '') ||
lower(substr(name, instr(name, '/', -1) + 1)) || ''';'
from v$tempfile
union all
select 'alter database rename file ''' || MEMBER || ''' to ' ||
'''/data/app/oracle/oradata/orcl/' ||
lower(substr(MEMBER, instr(MEMBER, '/', -1) + 1)) || ''';'
from v$logfile
where type = 'ONLINE'
union all
select 'alter database clear logfile group ' || group# || ';'
from v$log
union all
select 'restore database;'
from dual
union all
select 'switch datafile all;'
from dual
union all
select 'switch tempfile all;'
from dual
union all
select 'recover database;'
from dual
union all
select '}'
from dual;
二、执行
- 1.生成pfile并关闭当前数据库
恢复管理器完成。
[oracle@SRM-UAT-DB ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期三 11月 29 19:26:00 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> create pfile='/tmp/pfile1.ora' from spfile;
SQL> shutdown immediate;
SQL> exit;
- 2.修改/tmp/pfile1.ora内容
源机查询
select value from v$parameter where name='db_name';
*.db_name=’XXX’
- 3.重置下环境变量
源机查询
select REGEXP_REPLACE(instance_name,'[0-9]', '') from v$instance;
结果:XXX
[oracle@SRM-UAT-DB ~]$ export ORACLE_SID=XXX
- 4.用pfile启动数据库到nomount状态
[oracle@SRM-UAT-DB ~]$ sqlplus / as sysdba
SQL>