使用热备份进行分时恢复----怎样通过归档逐步恢复以缩短数据迁移时间
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页
----怎样通过归档逐步恢复以缩短数据迁移时间
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页
相关文章推荐
- 使用热备份进行分时恢复----怎样通过归档逐步恢复以缩短数据迁移时间
- 如何通过RMAN进行裸设备和文件系统之间的数据文件迁移
- jQuery的ajax()检验用户名;通过jQuery的load()/get()/post()方法实现;使用XMLHTTPRequest对象来进行AJAX的异步数据交互
- 使用blockrecover 对有坏块的数据文件进行恢复
- net2.0中使用SqlBulkCopy进行大批量数据迁移
- 数据仓库的模型设计 A. 数据建模方法论 数据仓库模型设计遵循“自顶向下、逐步求精”的设计原则。 模型设计分为三个阶段: 1,概念模型 对业务的范围和使用,从高度上进行抽象概括,也就是划分主题域。 一
- RMAN TSPITR 使用rman进行表空间基于时间点的恢复
- .net2.0中使用SqlBulkCopy进行大批量数据迁移
- Oracle使用rman进行表空间基于时间点的恢复
- 使用Okhttp框架访问接口数据,通过RecyclerView进行数据展示
- 通过VSTS使用Excel表格进行数据驱动的单元测试
- 使用MONGODB 集群的OPLOG 日志进行数据恢复
- mysql 通过拷贝数据文件的方式进行数据库迁移实例
- 通过Spring使用JPA进行数据访问
- mysql 通过拷贝数据文件的方式进行数据库迁移实例
- 使用mysqlbinlog工具进行基于位置或时间点的数据恢复
- net2.0中使用SqlBulkCopy进行大批量数据迁移
- hbase通过mapreduce进行数据导入迁移报错
- MYSQL通过时间进行筛选数据,每分只取最新的一条数据
- 如何确定某段时间之内玩手机次数及其他各种通过传感器&GPS数据可进行的分析