闪回数据库/表到指定时间或SCN

首先,您必须在挂载模式下启用闪回功能. 您可以检查网址 https://www.roamway.com/2792.html 详情.

例: 闪回数据库到指定时间

的SQL> 立即关闭;
数据库关闭.
卸载数据库.
ORACLE实例关闭.

的SQL> 启动挂载;
ORACLE实例启动.
总系统全局区域1.0155E + 10字节
固定尺寸 2262008 个字节
可变大小 7818185736 个字节
数据库缓冲区 2315255808 个字节
重做缓冲区 19296256 个字节
数据库安装.

的SQL> 闪回数据库到时间戳记to_timestamp(‘2019-11-14 18:14:00′,’yyyy-mm-dd hh24:我:ss’);
闪回完成.

的SQL> 更改数据库打开;
数据库已更改.

相关闪回日志

闪回数据库到时间戳记to_timestamp(‘2019-11-14 18:15:00′,’yyyy-mm-dd hh24:我:ss’)
闪回还原开始
星期五十二月 06 14:03:39 2019
闪回还原完成
闪回媒体恢复开始
启动日志合并过程
并行媒体恢复始于 40 奴隶
闪回介质恢复日志/home/oracle/archivelog/thread_2_seq_3212.9393.1024328389
闪回介质恢复日志/home/oracle/archivelog/thread_1_seq_3166.9382.1024318427
闪回介质恢复日志/home/oracle/archivelog/thread_1_seq_3167.10153.1024328285
星期五十二月 06 14:04:37 2019
闪回介质恢复日志/home/oracle/archivelog/thread_1_seq_3168.9405.1024344047
星期五十二月 06 14:05:53 2019
闪回介质恢复日志/home/oracle/archivelog/thread_2_seq_3213.9377.1024339487
星期五十二月 06 14:07:43 2019
应用不完整的恢复直到更改 5984486155041 时间 11/14/2019 18:15:01
星期五十二月 06 14:07:44 2019
闪回媒体恢复完成
已完成: 闪回数据库到时间戳记to_timestamp(‘2019-11-14 18:15:00′,’yyyy-mm-dd hh24:我:ss’)

例: 闪回数据库到指定的SCN

我们还可以将数据库闪回至指定的SCN. 但是SCN必须从礼节性巨著中转换.
例如转换 “2019-12-06 10:20:00” 到它的SCN.

的SQL> 设定线 500;
的SQL> 选择timestamp_to_scn(to_timestamp(‘2019-12-06 10:20:00′,‘YYYY-MM-DD HH24:我:SS’)) 从双重;
TIMESTAMP_TO_SCN(TO_TIMESTAMP(‘2019-12-0610:20:00′,‘YYYY-MM-DDHH24:我:SS’))
5.9865E + 12
的SQL> 设置数字宽度 20;
的SQL> 选择timestamp_to_scn(to_timestamp(‘2019-12-06 10:20:00′,‘YYYY-MM-DD HH24:我:SS’)) 从双重;
TIMESTAMP_TO_SCN(TO_TIMESTAMP(‘2019-12-0610:20:00′,‘YYYY-MM-DDHH24:我:SS’))
5986520769578

所以, 我们执行以下命令来闪回数据库.

的SQL> 闪回数据库到SCN 5986520769578;
闪回数据库到SCN 5986520769578
行错误 1:
ORA-38754: 闪回数据库未启动; 所需的重做日志不可用
ORA-38762: SCN需要重做日志 4394725 到SCN 5986520769578
ORA-38761: 重做日志序列 114 在线程中 1, 化身 2 无法访问

如果遇到上述错误,可以通过RMAN闪回数据库.

RMAN> 闪回数据库到SCN 5986520769578;
开始闪回 2019:12:06 11:27:11
使用目标数据库控制文件而不是恢复目录
分配的频道: ORA_DISK_1
频道ORA_DISK_1: SID = 5860设备类型= DISK

例: 将表闪回指定时间

的启动功能 “行运动”
的SQL>ALTER TABLE YOUR_TABLENAME启用行移动;

闪回表到指定时间
SQL>将表YOUR_TABLENAME闪回TIMESTAMP
TO_TIMESTAMP(‘2018-04-23 16:06:00′,’yyyy-mm-dd hh24:我:ss’);

但是您必须确保可以读写数据库
否则,您将遇到以下错误.

行错误 1:
现在-00604: 递归SQL级别发生错误 1
ORA-16000: 打开数据库以进行只读访问

的停止功能 “行运动”
的SQL>ALTER TABLE YOUR_TABLENAME禁用行移动;

附件

检查最早的SCN数据库可以闪回

的SQL> 选择 * 来自v $ flashback_database_log;
OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
5984398987742 09-11月19日 57600 188668223488 0

检查闪回日志文件的详细信息

的SQL> 选择 * 来自v $ flashback_database_stat;
BEGIN_TIM END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE
07-19年12月8日至19年12月 8192 9342976000 0 0

查看闪回日志的详细信息

的SQL> 选择 * 来自v $ flashback_database_logfile;
………………
名称日志#线程#序列#字节FIRST_CHANGE#FIRST_TIM TYPE
/路径../flashback/o1_mf_7t11_.flb 28 1 28 16777216000 0 10-NOV-19正常
/路径../flashback/o1_mf_t2o3_.flb 29 1 29 33554432000 0 11-NOV-19正常
/路径../flashback/o1_mf_v7ml_.flb 30 1 30 42949672960 0 12-NOV-19正常
………………

发表评论