当前位置: 首页 > news >正文

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

使用热备份进行分时恢复

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

Last Updated: <!-- #BeginDate format:wfcIS1m -->Monday, 2004-11-15 10:32<!-- #EndDate --> Eygle

<!--DWLayoutEmptyCell-->

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

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

在此情况下,我们可以通过一个热备份,应用归档恢复数据库到一个一致的状态,此时数据库可以被只读(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 个文件。


表空间已更改。


数据库已更改。						

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

SQL> insert into eygle.test select *from eygle.test;

已创建224行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

SQL> insert into eygle.test select *from eygle.test;

已创建448行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

SQL> insert into eygle.test select *from eygle.test;

已创建896行。

SQL> commit;

提交完成。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

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

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area   47259136 bytes
Fixed Size                   454144 bytes
Variable Size              29360128 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 197282 (在 11/13/2004 23:30:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00008.001
ORA-00280: 更改 197282 对于线程 1 是按序列 # 8 进行的


指定日志: {<ret>=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 197393 (在 11/13/2004 23:32:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00009.001
ORA-00280: 更改 197393 对于线程 1 是按序列 # 9 进行的
ORA-00278: 此恢复不再需要日志文件
'E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00008.001'


指定日志: {<ret>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL&gt; <span class="style33"><font color="#ff0000">alter database open read only;</font></span>

数据库已更改。

SQL&gt; shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL&gt; startup mount;
ORACLE 例程已经启动。

Total System Global Area   47259136 bytes
Fixed Size                   454144 bytes
Variable Size              29360128 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL&gt; recover database using backup controlfile until cancel;
ORA-00279: 更改 197393 (在 11/13/2004 23:32:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00009.001
ORA-00280: 更改 197393 对于线程 1 是按序列 # 9 进行的


指定日志: {<ret>=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 197423 (在 11/13/2004 23:32:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00010.001
ORA-00280: 更改 197423 对于线程 1 是按序列 # 10 进行的
ORA-00278: 此恢复不再需要日志文件
'E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00009.001'


指定日志: {<ret>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL&gt; <span class="style33"><font color="#ff0000">alter database open read only;</font></span>

数据库已更改。

SQL&gt; shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL&gt; startup mount;
ORACLE 例程已经启动。

Total System Global Area   47259136 bytes
Fixed Size                   454144 bytes
Variable Size              29360128 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。

SQL&gt; recover database using backup controlfile until cancel;
ORA-00279: 更改 197423 (在 11/13/2004 23:32:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00010.001
ORA-00280: 更改 197423 对于线程 1 是按序列 # 10 进行的


指定日志: {<ret>=suggested | filename | AUTO | CANCEL}
E:\Oracle\oradata\eygle\REDO01.LOG
ORA-00310: 存档日志包含序列 9;要求序列 10
ORA-00334: 归档日志: 'E:\ORACLE\ORADATA\EYGLE\REDO01.LOG'


SQL&gt; recover database using backup controlfile until cancel;
ORA-00279: 更改 197423 (在 11/13/2004 23:32:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00010.001
ORA-00280: 更改 197423 对于线程 1 是按序列 # 10 进行的


指定日志: {<ret>=suggested | filename | AUTO | CANCEL}
E:\Oracle\oradata\eygle\REDO02.LOG
已应用的日志。
完成介质恢复。
SQL&gt; alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL&gt; alter database open resetlogs;

数据库已更改。

SQL&gt;

</ret></ret></ret></ret></ret></ret>

注意中间的部分,read only打开不影响数据库进一步的恢复.也就是说恢复可以分步进行。

本文作者:
eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛itpub.
www.eygle.com是作者的个人站点.你可通过Guoqiang.Gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.


原文出处:

http://www.eygle.com/ha/Use.Hot.Backup.Recover.Day.by.Day.htm

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 吉大20春学期计算机应用基础在线作业一,吉大18春学期《计算机应用基础》在线作业一...
  • 欢迎试用Crystal Blog 1.0 beta!
  • 济宁市计算机技能大赛,【嘉职动态】2019年济宁市职业院校技能大赛嘉祥职业中专赛区圆满完成任务...
  • 未来教育计算机19二级视频百度云,未来教育 MS office二级视频讲解
  • Eclipse快速上手指南 (1)
  • 全国计算机等级考试吉林省,全国计算机等级考试(吉林省考区).doc
  • 工作流的核心思想
  • 计算机应用技能作业,计算机应用技术基础课程考核在线作业答案.doc
  • 兴奋而行
  • 2019安徽大学计算机研究生复试,安徽大学2019年考研复试分数线
  • 进制转换3例
  • 重启计算机一直转圈圈,W10重新启动,一直转圈圈
  • 计算机显示器外壳怎么防水,电脑显示器外壳怎么拆开
  • 一些常见的GUI对应的程序名称整理
  • 远程带数字证书连接服务器,设置通过数字证书方式登录远程连接Linux服务器,禁止root账户远程密码方式远程连接服务器...
  • AHK 中 = 和 == 等比较运算符的用法
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • iOS 颜色设置看我就够了
  • Java 网络编程(2):UDP 的使用
  • miaov-React 最佳入门
  • nginx 负载服务器优化
  • PhantomJS 安装
  • vue的全局变量和全局拦截请求器
  • 关于 Cirru Editor 存储格式
  • 经典排序算法及其 Java 实现
  • 两列自适应布局方案整理
  • 微信公众号开发小记——5.python微信红包
  • 一份游戏开发学习路线
  • 用jquery写贪吃蛇
  • 优秀架构师必须掌握的架构思维
  • 【云吞铺子】性能抖动剖析(二)
  • #07【面试问题整理】嵌入式软件工程师
  • #565. 查找之大编号
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (13)Hive调优——动态分区导致的小文件问题
  • (2)nginx 安装、启停
  • (42)STM32——LCD显示屏实验笔记
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (四) Graphivz 颜色选择
  • (新)网络工程师考点串讲与真题详解
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (自用)仿写程序
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net core使用ef 6
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET导入Excel数据
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Async 异步注解使用
  • @component注解的分类
  • @EnableConfigurationProperties注解使用
  • @selector(..)警告提示