ARCHIVELOG模式下用户管理的不完全恢复(1)——基于时间点的不完全恢复!
来源:互联网 发布:上海市数据服务网 编辑:程序博客网 时间:2024/05/19 13:19
基于时间点的恢复主要使用于以下情况:误删除表、误截断表、提交了错误的数据。(从oracle 10g利用闪回更easy!)
首先关闭数据库执行一个冷全备份(冷备份的时候用户u1的t表中是有3条记录的。)
SQL> conn /as sysdba已连接。SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> ! cp /u01/app/oracle/oradata/orcl/*.dbf /u01/app/oracle/backup/
打开数据库,可以看见用户u1的t表里面是有数据的,然后截断表
SQL> conn /as sysdba已连接到空闲例程。SQL> startupORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1266392 bytesVariable Size 117443880 bytesDatabase Buffers 46137344 bytesRedo Buffers 2924544 bytes数据库装载完毕。数据库已经打开。SQL> conn u1/u1已连接。SQL> select * from t; ID VALUE---------- -------------------- 1 a 2 b 3 cSQL> truncate table t;表被截断。SQL> select * from t;未选定行
现在用户发现错误的删除了t表的数据,要求恢复。在不完全恢复之前数据库处于open状态,必须先关闭数据库,再mount,把备份的数据文件复制过来
SQL> conn /as sysdba已连接。SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mountORACLE 例程已经启动。Total System Global Area 167772160 bytesFixed Size 1266392 bytesVariable Size 62917928 bytesDatabase Buffers 100663296 bytesRedo Buffers 2924544 bytes数据库装载完毕。SQL> ! rm -rf /u01/app/oracle/oradata/orcl/*.dbfSQL> ! mv /u01/app/oracle/backup/*.dbf /u01/app/oracle/oradata/orcl/
查看如下视图,可以看见需要恢复的数据文件,备份时间是“2011-10-09 02:12:08”,scn是“500441 ”。还可以看见控制文件中scn号码要比数据文件中scn号码新。
SQL> select file#,online_status,error,change#,to_char(time,'yyyy-mm-dd hh24:mi:ss') from v$recover_file; FILE# ONLINE_ ERROR CHANGE# TO_CHAR(TIME,'YYYY----------- ------- ----------------------------------------------------------------- ---------- ------------------- 1 ONLINE 500441 2011-10-09 02:12:08 2 ONLINE 500441 2011-10-09 02:12:08 3 ONLINE 500441 2011-10-09 02:12:08 4 ONLINE 500441 2011-10-09 02:12:08 5 ONLINE 500441 2011-10-09 02:12:08 6 ONLINE 500441 2011-10-09 02:12:08已选择6行。SQL> select file#,checkpoint_change# from v$datafile; --查看控制文件中的scn号码 FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 500814 2 500814 3 500814 4 500814 5 500814 6 500814已选择6行。SQL> select file#,checkpoint_change# from v$datafile_header; --查看数据文件中的scn号码 FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 500441 2 500441 3 500441 4 500441 5 500441 6 500441已选择6行。
恢复,由于备份的时间是“2011-10-09 02:12:08”,恢复时间我选在“2011-10-09 02:12:01”,提前了7秒。在实际生产环境中可以大致评估误操作的时间,多基于几个时间点来恢复多次,找到最合适的数据。
SQL> recover database until time '2011-10-09 02:12:01';完成介质恢复。SQL> alter database open;alter database open*第 1 行出现错误:ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项SQL> alter database open resetlogs;数据库已更改。SQL> conn u1/u1已连接。SQL> select * from t; ID VALUE---------- ---------- 1 a 2 b 3 c
- ARCHIVELOG模式下用户管理的不完全恢复—基于时间点的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复(1)——基于时间点的不完全恢复!
- ARCHIVELOG模式下用户管理的不完全恢复—基于SCN的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复—基于取消的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复—基于备份控制文件的不完全恢复
- ARCHIVELOG模式下用户管理的不完全恢复(2)——基于SCN的不完全恢复!
- ARCHIVELOG模式下用户管理的不完全恢复(3)——基于取消的不完全恢复!
- ARCHIVELOG模式下用户管理的不完全恢复(4)——基于备份控制文件的不完全恢复!
- 我的备份与恢复实验(归档模式下用户管理的不完全恢复,基于时间点的)
- 基于时间点的用户管理的不完全恢复
- 基于时间点的不完全恢复
- RMAN基于时间点的不完全恢复
- Oracle 基于用户管理的不完全恢复
- Oracle基于用户管理的不完全恢复
- Oracle基于用户管理的不完全恢复
- ARCHIVELOG模式下用户管理的完全恢复(1)——恢复关闭的数据库!
- 用户管理的不完全恢复
- RMAN备份与恢复—基于时间的不完全恢复
- Android新浪微博-项目整理总结 一[创建新项目]
- struts标签
- SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- Introducing Akka – Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors
- Android 1.5 的APN设定与上网处理
- ARCHIVELOG模式下用户管理的不完全恢复(1)——基于时间点的不完全恢复!
- 程序员应该学习一下Python或Ruby
- Tokyo Cabinet与Tokyo Tyrant 开篇
- php.ini 核心配置选项说明
- POJ-2983 用SPFA求解差分约束..
- 编程技术面试的五大要点
- rman学习资料
- Android handler用法详解一(概念解释)
- 第五章 - 图像形态学 - 自适应阈值(cvAdaptiveThreshold)