Oracle數(shù)據(jù)庫閃回功能詳解和相關命令總結(jié)
前言
今日看了Oracle原廠老師講的數(shù)據(jù)庫閃回技術的公開課,感覺受益匪淺。整理了一下關于數(shù)據(jù)庫閃回功能的一些知識和相關測試,在此做下分享。
什么是閃回?
Oracle數(shù)據(jù)庫閃回技術是一組獨特而豐富的數(shù)據(jù)恢復解決方案,通過有選擇地、有效地消除錯誤的影響,可以逆轉(zhuǎn)人為錯誤。
查看數(shù)據(jù)的過去狀態(tài)
可沿時間軸向前或向后閃回
協(xié)助用戶進行錯誤分析和恢復
簡單的命令行操作(或者DBMS_FLASHBACK包)
閃回時間與數(shù)據(jù)庫大小無關
閃回支持不同級別的恢復,包括行、事務、表和整個數(shù)據(jù)庫:
- Flashback Database
- Flashback Table
- Flashback Drop
- Flashback Transaction
- Flashback Transaction Query
- Flashback Query
- Flashback Version Query
基于UNDO的閃回:閃回查詢、閃回版本查詢、閃回表
閃回查詢技術
閃回查詢某精確時間點 select * from table_name AS OF TIMESTAMP TO_TIMESTAMP('2023-02-23 13:14:00', 'YYYY-MM-DD HH24:MI:SS'); 閃回查詢到多久之前(例如 一分鐘前) select * from table_name AS OF TIMESTAMP sysdate-1/24/60; 閃回查詢到指定scn select * from table_name as of scn 55124124;
閃回版本查詢技術
查看某一時間段內(nèi)數(shù)據(jù)的變化
SELECT versions_startscn, versions_starttime, versions_endscn, versions_endtime, versions_xid, versions_operation, last_name, salary FROM employees VERSIONS BETWEEN TIMESTAMPTO_TIMESTAMP('2023-03-08 14:00:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2023-03-08 17:00:00', 'YYYY-MM-DD HH24:MI:SS') WHERE first_name = 'John';
字段含義
- VERSIONS_STARTSCN:數(shù)據(jù)版本被創(chuàng)建時的SCN
- VERSIONS_STARTTIME:數(shù)據(jù)版本被創(chuàng)建時的時間戳
- VERSIONS_ENDSCN:數(shù)據(jù)版本消逝時的SCN
- VERSIONS_ENDTIME:數(shù)據(jù)版本消逝時的時間戳
- VERSIONS_XID:數(shù)據(jù)版本被創(chuàng)建時的事務號
- VERSIONS_OPERATION: 數(shù)據(jù)版本創(chuàng)建時的事務類型
閃回表技術
可以將表恢復到過去的指定時間點
開啟行移動功能 alter table table_name enable row movement; 閃回表到指定時間點 flashback table table_name to timestamp to_timestamp('2023-02-23 13:14:00','yyyy-mm-dd hh24:mi:ss'); 閃回表到多久之前 flashback table table_name to timestamp to sysdate-1/24/60; 閃回表到指定scn號 flashback table table_name to scn 3823947923;
FDA閃回數(shù)據(jù)歸檔技術
因為undo有保留時間限制,可以被覆蓋,時間久遠的數(shù)據(jù)無法通過undo進行閃回,此時可以利用閃回數(shù)據(jù)歸檔技術,根據(jù)時間限制將undo數(shù)據(jù)持久化在其他表空間上,不受undo的時間限制
閃回數(shù)據(jù)歸檔步驟:
- 創(chuàng)建一個供閃回數(shù)據(jù)庫使用的表空間在該表空間
- 創(chuàng)建閃回數(shù)據(jù)歸檔,時間期限自定義
- 創(chuàng)建一個用戶并授予DBA的角色
- 授予用戶操作的必要權限登錄
- 創(chuàng)建一個表啟用閃回數(shù)據(jù)歸檔
- 執(zhí)行查詢來確定歸檔創(chuàng)建的對象
先創(chuàng)建普通表空間 然后在表空間中創(chuàng)建FDA CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1QUOTA 10G RETENTION 1 YEAR;
基于Recyclebin(回收站)的閃回刪除技術
閃回刪除技術:
針對非system 表空間
適用于通過drop 操作和非purge 的方式刪除的對象可以在recyclebin使用閃回刪除操作還原刪除的對象(包括相關索引,約束,觸發(fā)器)
回收站(recycle bin)
通過數(shù)據(jù)字典視圖快速查看:USER_RECYCLEBIN 和DBA_RECYCLEBIN。
刪除的表在回收站中被重新命名
閃回被刪除的表 flashback table table_name to before drop;
基于閃回數(shù)據(jù)庫日志的閃回數(shù)據(jù)庫技術
需開啟數(shù)據(jù)庫閃回日志
查看數(shù)據(jù)庫是否開啟閃回日志
select flashback_on from v$database;
開啟閃回日志之前必須要設置閃回恢復區(qū)的路徑和大小
show parameter recover
總結(jié)
到此這篇關于Oracle數(shù)據(jù)庫閃回功能詳解和相關命令總結(jié)的文章就介紹到這了,更多相關Oracle閃回功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于sql腳本導入Oracle時重復生成check約束的問題解決
這篇文章主要給大家介紹了關于sql腳本導入Oracle時重復生成check約束的問題解決方法,文中給出了詳細的檢查步驟,對大家理解和解決這個問題具有很好的幫助,需要的朋友們下面來一起看看吧。2017-05-05Oracle數(shù)據(jù)庫中的用戶授權、取消權限方式
Oracle數(shù)據(jù)庫中的用戶授權分為系統(tǒng)權限和對象權限,系統(tǒng)權限允許用戶執(zhí)行特定的系統(tǒng)級操作,如創(chuàng)建表或啟動事務,對象權限針對特定數(shù)據(jù)庫對象,如表、視圖或過程,包括SELECT、INSERT、UPDATE和DELETE等,角色是一組權限的集合,可以簡化權限管理2024-12-12Oracle?19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯誤問題分析
這篇文章主要介紹了Oracle?19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯誤,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04