一个大型数据库的迁移过程中,一般只会有很短的停机时间,对于DBA来说,压力可想而之。本文将着重介绍一个缩短停机时间的好方法,详细内容请参考下文。
注:本文中的示例适用于同平台、同版本数据库的迁移。
解决方法如下:
在工作环境中,我们可以通过一个热备份,应用归档恢复数据库到一致的状态,这时数据库可以被只读(read only)打开。
然后我们可以继续应用归档来进行恢复,最后只需要短时间的停机,复制原数据库中的在线日志及归档日志、控制文件到新库中进行恢复,这时只需要极短的时间就可完成恢复。
这个方法可以极大缩短割接时间。下文是一个参考示例的具体步骤:
1.首先,启动数据库
查询归档情况:
SQL> select name from v$archived_log;
NAME
-------------------------------------------
E:\ORACLE\ORADATA\EYGLE\REDO01.LOG
E:\ORACLE\ORADATA\EYGLE\REDO02.LOG
E:\ORACLE\ORADATA\EYGLE\REDO03.LOG
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00001.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00002.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00003.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00004.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00005.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00006.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00001.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00002.001
NAME
--------------------------------------------
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00003.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00004.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00005.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00006.001
已选择15行。 |
归档当前的日志:
SQL> alter system switch logfile;
系统已更改。 |
2.备份数据库
备份脚本:
alter tablespace system begin backup;
host copy E:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF e:\oracle\orabak\SYSTEM01.DBF
alter tablespace system end backup;
alter tablespace undotbs1 begin backup;
host copy E:\ORACLE\ORADATA\EYGLE\UNDOTBS01.DBF e:\oracle\orabak\UNDOTBS01.DBF
alter tablespace undotbs1 end backup;
alter tablespace eygle begin backup;
host copy E:\ORACLE\ORADATA\EYGLE\EYGLE01.DBF e:\oracle\orabak\EYGLE01.DBF
alter tablespace eygle end backup; |
执行备份:
SQL> @e:\a.sql
表空间已更改。
已复制 1 个文件。
表空间已更改。
表空间已更改。
已复制 1 个文件。
表空间已更改。
表空间已更改。
已复制 1 个文件。
表空间已更改。
数据库已更改。 | |
阅读(304) | 评论(0) | 转发(0) |