您的位置:首页 > 其它

使用热备份进行分时恢复----怎样通过归档逐步恢复以缩短数据迁移时间

2008-04-26 19:59 906 查看
使用热备份进行分时恢复

----怎样通过归档逐步恢复以缩短数据迁移时间

LastUpdated:Monday,2004-11-1510:32Eygle

很多时候你可能遇到这样的情况:
一个大型的迁移,但是只有很少的停机时间,这看起来充满困难。可是我们可以通过各种方法来缩短停机时间.

本例适用于同平台、同版本数据库迁移.

在此情况下,我们可以通过一个热备份,应用归档恢复数据库到一个一致的状态,此时数据库可以被只读(readonly)打开。
之后我们可以继续应用归档进行恢复,最后只需要短时停机,复制原数据库中的在线日志及归档日志、控制文件到新库中,进行恢复,此时
只需要极短时间即可完成恢复。

此方法可以极大缩短割接时间。以下是一个示范步骤,供参考:

1.启动数据库

查询归档情况

SQL>selectnamefromv$archived_log;NAME--------------------------------------------------------------------------------E:/ORACLE/ORADATA/EYGLE/REDO01.LOGE:/ORACLE/ORADATA/EYGLE/REDO02.LOGE:/ORACLE/ORADATA/EYGLE/REDO03.LOGE:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00001.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00002.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00003.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00004.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00005.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00006.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00001.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00002.001NAME--------------------------------------------------------------------------------E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00003.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00004.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00005.001E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00006.001已选择15行。

归档当前日志

SQL>altersystemswitchlogfile;

系统已更改。

2.备份数据库

备份脚本:

altertablespacesystembeginbackup;hostcopyE:/ORACLE/ORADATA/EYGLEYSTEM01.DBFe:/oracle/orabakYSTEM01.DBFaltertablespacesystemendbackup;altertablespaceundotbs1beginbackup;hostcopyE:/ORACLE/ORADATA/EYGLE/UNDOTBS01.DBFe:/oracle/orabak/UNDOTBS01.DBFaltertablespaceundotbs1endbackup;altertablespaceeyglebeginbackup;hostcopyE:/ORACLE/ORADATA/EYGLE/EYGLE01.DBFe:/oracle/orabak/EYGLE01.DBFaltertablespaceeygleendbackup;

执行备份:

SQL>@e:/a.sql表空间已更改。已复制1个文件。表空间已更改。表空间已更改。已复制1个文件。表空间已更改。表空间已更改。已复制1个文件。表空间已更改。数据库已更改。

3.更改数据并归档部分日志

SQL>insertintoeygle.testselect*fromeygle.test;已创建224行。SQL>commit;提交完成。SQL>altersystemswitchlogfile;系统已更改。SQL>insertintoeygle.testselect*fromeygle.test;已创建448行。SQL>commit;提交完成。SQL>altersystemswitchlogfile;系统已更改。SQL>insertintoeygle.testselect*fromeygle.test;已创建896行。SQL>commit;提交完成。SQL>shutdownimmediate;数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。

4.执行恢复
恢复备份的数据文件,启动数据库
使用当前日志及控制文件

SQL>startupmount;ORACLE例程已经启动。TotalSystemGlobalArea47259136bytesFixedSize454144bytesVariableSize29360128bytesDatabaseBuffers16777216bytesRedoBuffers667648bytes数据库装载完毕。SQL>recoverdatabaseusingbackupcontrolfileuntilcancel;ORA-00279:更改197282(在11/13/200423:30:48生成)对于线程1是必需的ORA-00289:建议:E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00008.001ORA-00280:更改197282对于线程1是按序列#8进行的指定日志:{=suggested|filename|AUTO|CANCEL}ORA-00279:更改197393(在11/13/200423:32:22生成)对于线程1是必需的ORA-00289:建议:E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00009.001ORA-00280:更改197393对于线程1是按序列#9进行的ORA-00278:此恢复不再需要日志文件'E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00008.001'指定日志:{=suggested|filename|AUTO|CANCEL}cancel介质恢复已取消。SQL>alterdatabaseopenreadonly;数据库已更改。SQL>shutdownimmediate;数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。SQL>startupmount;ORACLE例程已经启动。TotalSystemGlobalArea47259136bytesFixedSize454144bytesVariableSize29360128bytesDatabaseBuffers16777216bytesRedoBuffers667648bytes数据库装载完毕。SQL>recoverdatabaseusingbackupcontrolfileuntilcancel;ORA-00279:更改197393(在11/13/200423:32:22生成)对于线程1是必需的ORA-00289:建议:E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00009.001ORA-00280:更改197393对于线程1是按序列#9进行的指定日志:{=suggested|filename|AUTO|CANCEL}ORA-00279:更改197423(在11/13/200423:32:51生成)对于线程1是必需的ORA-00289:建议:E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00010.001ORA-00280:更改197423对于线程1是按序列#10进行的ORA-00278:此恢复不再需要日志文件'E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00009.001'指定日志:{=suggested|filename|AUTO|CANCEL}cancel介质恢复已取消。SQL>alterdatabaseopenreadonly;数据库已更改。SQL>shutdownimmediate;数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。SQL>startupmount;ORACLE例程已经启动。TotalSystemGlobalArea47259136bytesFixedSize454144bytesVariableSize29360128bytesDatabaseBuffers16777216bytesRedoBuffers667648bytes数据库装载完毕。SQL>recoverdatabaseusingbackupcontrolfileuntilcancel;ORA-00279:更改197423(在11/13/200423:32:51生成)对于线程1是必需的ORA-00289:建议:E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00010.001ORA-00280:更改197423对于线程1是按序列#10进行的指定日志:{=suggested|filename|AUTO|CANCEL}E://oradata/eygle/REDO01.LOGORA-00310:存档日志包含序列9;要求序列10ORA-00334:归档日志:'E:/ORACLE/ORADATA/EYGLE/REDO01.LOG'SQL>recoverdatabaseusingbackupcontrolfileuntilcancel;ORA-00279:更改197423(在11/13/200423:32:51生成)对于线程1是必需的ORA-00289:建议:E:/ORACLE/ORADATA/EYGLE/ARCHIVE/ARC00010.001ORA-00280:更改197423对于线程1是按序列#10进行的指定日志:{=suggested|filename|AUTO|CANCEL}E:/Oracle/oradata/eygle/REDO02.LOG已应用的日志。完成介质恢复。SQL>alterdatabaseopen;alterdatabaseopen*ERROR位于第1行:ORA-01589:要打开数据库则必须使用RESETLOGS或NORESETLOGS选项SQL>alterdatabaseopenresetlogs;数据库已更改。SQL>共2页 第1页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐