十一. 使用DBNEWID 适用程序的不完全复制
复制时最令人不满意的一点是不存在"可重启的复制",也就是说,如果在执行还原所有文件的步骤(复制进程中最常出错)时出错。比如在恢复操作期间出错,就必须再次重启复制进程并重新还原文件。我们无法修复复制进程(如使丢失的归档日志可用),只能重新开始整个过程。
将resote optimization 选项设置为on, rman 就不会在还原位置中再次还原具有相同数据文件头SCN信息文件。这也适合用于复制操作。 如果复制操作还原一个文件,然后重新启动该复制操作,RMAN 将不会再次还原该文件。 然后,如果将一个归档日志应用于该文件,则会再次还原该归档日志。
在Oracle 10g中,使用DBNEWID使用程序可以部分修复恢复进程,这个使用程序以安全和可控的方式为复制的数据库指定新的DBID。 我们可以手工恢复复制的数据库,准备所有元素,然后再次运行DBNEWID实用程序完成由复制操作启动的进程。 这就允许我们至少可以手工完成复制操作。
DBNEWID 使用程序的用法很简单。 首先,必须确认在使用实用程序前生成了有效的备份,尽管要执行验证备份的进程,但是在修改DBID期间仍然可能会遇到不可恢复的错误。 确认备份有效后,还必须在一致的状态中关闭数据库,然后将数据库切换回加载状态。
使用示例如下:
[oracle@rhel5 datafiles]$ nid target=/ dbname=orcl3
DBNEWID: Release 11.2.0.1.0 - Production on Tue Oct 22 15:09:05 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to database ORCL2 (DBID=810333637)
Connected to server version 11.2.0
Control Files in database:
/oradata/orcl2/datafiles/control01.ctl
/oradata/orcl2/datafiles/control02.ctl
Change database ID and database name ORCL2 to ORCL3? (Y/[N]) => y