根据业务需要查看当天开班的情况,EOH, BOH等指标,因此借用ORACLE 数据库闪回功能
Oracle 闪回
闪回是数据库备份恢复机制的一部分
Oracle 提供了四种可用的闪回技术
闪回查询
闪回查询依赖于撤销数据
a. 基本闪回查询
可以查询过去某个时间段的数据库状态
SELECT * FROM DEVODS.LOT AS OF TIMESTAMP (TRUNC(SYSDATE)+8/24)
-- 2022-06-06 08:00:00.000
b. 闪回表
可以将表回退到过去的某个时间点
启用表闪回首先要在表上支持行移动
ALTER TABLE DEVODS.LOT ENABLE ROW MOVEMENT;
FALSHBACK TABLE DEVODS.LOT TIMESTAMP (TRUNC(SYSDATE)+8/24)
FLASHBACK TABLE TEMP TO BEFORE DROP;
闪回失败的原因:
- 违反了数据库约束 [外键约束]
- 用于支撑闪回操作的撤销数据被覆盖
- 闪回不能跨越DDL,在闪回点和当前点之间,表结构变更过,会导致操作失败
注意
-
闪回开启
ARCHIVE LOG LIST; -- 开启归档日志 -- 若未开启 在MOUNT 状态执行 ALTER DATABASE ARCHIVELOG -
设置合理的闪回区间
DB_RECOVERY_FILE_DEST -- 指定闪回恢复区的位置 DB_RECOVERY_FILE_DEST_SIZE -- 指定闪回恢复区的可用空间大小 DB_FLASHBACK_RETENTION_TARGET --指定数据库可回退的时间,单位分钟,实际取决于闪回区的大小 -
检查是否开启闪回
SELECT FLASHBACK_ON FROM V$DATABASE; -
闪回日志保留时间
闪回日志保留时间须大于要恢复到的时间点; 建议保留 3天 (4320分钟)
SHOW PARAMETER FLASHBACK NAME TYPE VALUE db_flashback_retention_target integer 4320 -
若闪回保留3天,通常需要有最近3天的归档日志才能闪回到3天前
-
表是否开启了行移动s
ALTER TABLE TEMP ENABLE ROW MOVEMENT
\