通过rman恢复数据库,db_anme可以不一样吗?

今天有个网友提问:‘我做rman异地迁移的时候,新的库的oracle_sid和备份过来的控制文件中的sid不一样“。看到这个问题我第一想法是:“怎么可能?除非是dg,一般db_name都记录在控制文件中的,你控制文件变了?如果控制文件变了你怎么还原数据的?说完之后我自己也不确定了”。所以我来自己做个试验检测一下,不同db_name是否真的可以数据迁移?
源库:
db 11.2.0.4.0
os centos 6.6

目标库:
db 11.2.3.0
os windows 7

源库全备,拷贝到目标库,通过rman来还原。

 RMAN> catalog start with 'E:\app\bo-chen1\oradata\JHDB_jnt05gps_1_1.bak';

搜索与样式 E:\app\bo-chen1\oradata\JHDB_jnt05gps_1_1.bak 匹配的所有文件

数据库未知文件的列表
=====================================
文件名: E:\APP\BO-CHEN1\ORADATA\JHDB_jnt05gps_1_1.bak

是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录...
没有为文件编制目录

未列入目录的文件的列表
=======================================
文件名: E:\APP\BO-CHEN1\ORADATA\JHDB_jnt05gps_1_1.bak
  RMAN-07518: 原因: 外部数据库文件 DBID: 1103974919  数据库名: JHDB

试验失败!
结论:通过rman来恢复数据库,源库跟目标库的db_name必须一致。不过可以通过impdp来实现这个目的。

猜你喜欢

转载自blog.csdn.net/a743044559/article/details/79912504