[Oracle] 實驗六  閃回技術

一.實驗目的
掌握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;

(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') ;

(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;

(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') ;

(8)執行“DROP TABLE exercise”語句,然後利用閃回刪除技術恢復exercise表

Flashback table exercise to before drop rename to exercise ;

(9)將數據庫中的閃回日誌保留時間設置爲3天(4320分鐘,此處需要切換回sysdba)

Alter system set db_flashback_retention_target = 4320;

(10)利用閃回數據庫技術,將數據庫恢復到創建表之前的狀態

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

四.實驗總結



切換到scott用戶即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章