JavaEE 学习专题JavaEE记录篇oracle

[Oracle] 实验六  闪回技术

2019-06-04  本文已影响1人  Topus

一.实验目的
掌握Oracle闪回技术的应用

二.实验内容
教材181页实训题(4)-(10)。第(5)题的时间设置为第二个事务提交的时间。第(6)题的时间范围为第一个事务提交的时刻到第四个事务提交的时刻。

三.实验过程

教材181页实训题(4)-(10)。第(5)题的时间设置为第二个事务提交的时间。第(6)题的时间范围为第一个事务提交的时刻到第四个事务提交的时刻。

(4)在数据库中执行下列操作

//设置时间格式
 ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
//开始时间
SET TIME ON;
//找了很多方法,需要先把数据库打开
 alter database open;
//建表
CREATE TABLE exercise (sno NUMBER PRIMARY KEY,sname CHAR(20));
//修改表
INSERT INTO exercise VALUES(200,’lisi’);
COMMIT;
INSERT INTO exercise VALUES(100,‘zhangsan’);
COMMIT;
INSERT INTO exercise VALUES(300,‘WANGWU’);
COMMIT;
UPDATE exercise SET sname = ‘newname’WHERE sno = 100;
COMMIT;
DELETE FROM exercise WHERE sno = 200;
COMMIT;
4.1.png 4.2.png

(5)利用闪回技术查询16:40:10时exercise中的数据(时间和书上的不一致)

 SELECT  * FROM exercise AS OF TIMESTAMP TO_TIMESTAMP('2019-6-3 8:30:08','YYYY-MM-DD HH24:MI:SS') ;
5.png

(6)利用闪回版本查询,查询16:35:10-16:42:10之间sno=100的记录版本信息

SELECT versions_xid XID,versions_startscn STARTSCN,
versions_endscn ENDSCN,versions_operation OPERATION, sname  FROM exercise 
VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2019-6-3 8:27:29','YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2019-6-3 8:30:24','YYYY-MM-DD HH24:MI:SS') where
sno=100;
6.png

(7)利用闪回表技术,将exercise表恢复到删除操作进行之前的状态(sys不支持执行闪回表操作,我这里切换到了sccott用户执行)

alter table  exercise enable row movement;
Flashback table exercise to TIMESTAMP TO_TIMESTAMP('2019-6-3 09:20:29','YYYY-MM-DD HH24:MI:SS') ;
7.png

(8)执行“DROP TABLE exercise”语句,然后利用闪回删除技术恢复exercise表

Flashback table exercise to before drop rename to exercise ;
8.png

(9)将数据库中的闪回日志保留时间设置为3天(4320分钟,此处需要切换回sysdba)

Alter system set db_flashback_retention_target = 4320;
9.png

(10)利用闪回数据库技术,将数据库恢复到创建表之前的状态

Flashback table exercise to TIMESTAMP TO_TIMESTAMP('2019-6-3 09:19:33','YYYY-MM-DD HH24:MI:SS') ;
10.png

四.实验总结


问题.png

切换到scott用户即可

上一篇下一篇

猜你喜欢

热点阅读