3.目标库准备 3.1比对目标库和源库的所有裸设备个数和名称(建议名称也相同) select name from v$datafile union all select name from v$tempfile union all select name from v$controlfile union all select member name from v$logfile; 3.2先关闭数据库(如果是Open或者mount) shutdown immediate;
3.5 dd 所有的在线日志 如果不dd ,则报错误ORA-19698 ORA-19698: %s is from different database: id=string, db_name=string Cause: Catalog failed becasuse the database id in file header does not match the one in control file.
如果只是测试,可以基于时间点,基于scn或者基于sequence 的方式来恢复,可以正常退出而不报错,但是原理是相同的, 个人更倾向于使用基于sequence 的方式来恢复,如下: recover database until sequence 10;
这个10 ,在recover时并不被应用,而是应用到它前面那个号即9。
3.13 继续recover 如果是对于生产环境的迁移,可以继续采取这个小节的方法,在有严格的时间窗口限制时,这个方法还是比较可靠和可行的 3.13.1 在源库人为切换日志N次(日志组数+1) alter system archive log current; .. alter system archive log current;
目的是避免有业务测数据未被归档 3.13.2 将10开始的之后所有的归档拷贝到目标库归档路径下
3.13.3 继续恢复 sql>recover database using backup controlfile until cancel; 回车后,可以看到多行信息,最关键的是说下一个需要的日志序列号为10,如果确认10已经被拷贝过来了,可直接回车, 当应用到最后一个时,就直接异常退出了,这时的异常并不是问题。 至此恢复可以认为告一段落了。
3.14 open 数据库 sql>alter database open resetlogs;
3.15 处理临时表空间
先删除原临时文件 alter database tempfile 'temp1' drop; alter database tempfile 'temp2' drop;
select name from v$tempfile;
alter tablespace temp add tempfile 'temp1' size 1000m reuse; alter tablespace temp add tempfile 'temp1' size 2000m reuse;
3.16 日志切换 alter system switch logfile; alter system switch logfile; alter system switch logfile;
评论专区