Oracle數(shù)據(jù)庫(kù)閃回功能詳解和相關(guān)命令總結(jié)
前言
今日看了Oracle原廠老師講的數(shù)據(jù)庫(kù)閃回技術(shù)的公開(kāi)課,感覺(jué)受益匪淺。整理了一下關(guān)于數(shù)據(jù)庫(kù)閃回功能的一些知識(shí)和相關(guān)測(cè)試,在此做下分享。
什么是閃回?
Oracle數(shù)據(jù)庫(kù)閃回技術(shù)是一組獨(dú)特而豐富的數(shù)據(jù)恢復(fù)解決方案,通過(guò)有選擇地、有效地消除錯(cuò)誤的影響,可以逆轉(zhuǎn)人為錯(cuò)誤。
查看數(shù)據(jù)的過(guò)去狀態(tài)
可沿時(shí)間軸向前或向后閃回
協(xié)助用戶進(jìn)行錯(cuò)誤分析和恢復(fù)
簡(jiǎn)單的命令行操作(或者DBMS_FLASHBACK包)
閃回時(shí)間與數(shù)據(jù)庫(kù)大小無(wú)關(guān)
閃回支持不同級(jí)別的恢復(fù),包括行、事務(wù)、表和整個(gè)數(shù)據(jù)庫(kù):
- Flashback Database
- Flashback Table
- Flashback Drop
- Flashback Transaction
- Flashback Transaction Query
- Flashback Query
- Flashback Version Query
基于UNDO的閃回:閃回查詢、閃回版本查詢、閃回表
閃回查詢技術(shù)
閃回查詢某精確時(shí)間點(diǎn) 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;
閃回版本查詢技術(shù)
查看某一時(shí)間段內(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)建時(shí)的SCN
- VERSIONS_STARTTIME:數(shù)據(jù)版本被創(chuàng)建時(shí)的時(shí)間戳
- VERSIONS_ENDSCN:數(shù)據(jù)版本消逝時(shí)的SCN
- VERSIONS_ENDTIME:數(shù)據(jù)版本消逝時(shí)的時(shí)間戳
- VERSIONS_XID:數(shù)據(jù)版本被創(chuàng)建時(shí)的事務(wù)號(hào)
- VERSIONS_OPERATION: 數(shù)據(jù)版本創(chuàng)建時(shí)的事務(wù)類型
閃回表技術(shù)
可以將表恢復(fù)到過(guò)去的指定時(shí)間點(diǎn)
開(kāi)啟行移動(dòng)功能 alter table table_name enable row movement; 閃回表到指定時(shí)間點(diǎn) 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號(hào) flashback table table_name to scn 3823947923;
FDA閃回?cái)?shù)據(jù)歸檔技術(shù)
因?yàn)閡ndo有保留時(shí)間限制,可以被覆蓋,時(shí)間久遠(yuǎn)的數(shù)據(jù)無(wú)法通過(guò)undo進(jìn)行閃回,此時(shí)可以利用閃回?cái)?shù)據(jù)歸檔技術(shù),根據(jù)時(shí)間限制將undo數(shù)據(jù)持久化在其他表空間上,不受undo的時(shí)間限制
閃回?cái)?shù)據(jù)歸檔步驟:
- 創(chuàng)建一個(gè)供閃回?cái)?shù)據(jù)庫(kù)使用的表空間在該表空間
- 創(chuàng)建閃回?cái)?shù)據(jù)歸檔,時(shí)間期限自定義
- 創(chuàng)建一個(gè)用戶并授予DBA的角色
- 授予用戶操作的必要權(quán)限登錄
- 創(chuàng)建一個(gè)表啟用閃回?cái)?shù)據(jù)歸檔
- 執(zhí)行查詢來(lái)確定歸檔創(chuàng)建的對(duì)象
先創(chuàng)建普通表空間 然后在表空間中創(chuàng)建FDA CREATE FLASHBACK ARCHIVE DEFAULT fla1 TABLESPACE tbs1QUOTA 10G RETENTION 1 YEAR;
基于Recyclebin(回收站)的閃回刪除技術(shù)
閃回刪除技術(shù):
針對(duì)非system 表空間
適用于通過(guò)drop 操作和非purge 的方式刪除的對(duì)象可以在recyclebin使用閃回刪除操作還原刪除的對(duì)象(包括相關(guān)索引,約束,觸發(fā)器)
回收站(recycle bin)
通過(guò)數(shù)據(jù)字典視圖快速查看:USER_RECYCLEBIN 和DBA_RECYCLEBIN。
刪除的表在回收站中被重新命名
閃回被刪除的表 flashback table table_name to before drop;
基于閃回?cái)?shù)據(jù)庫(kù)日志的閃回?cái)?shù)據(jù)庫(kù)技術(shù)
需開(kāi)啟數(shù)據(jù)庫(kù)閃回日志
查看數(shù)據(jù)庫(kù)是否開(kāi)啟閃回日志
select flashback_on from v$database;
開(kāi)啟閃回日志之前必須要設(shè)置閃回恢復(fù)區(qū)的路徑和大小
show parameter recover
總結(jié)
到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)閃回功能詳解和相關(guān)命令總結(jié)的文章就介紹到這了,更多相關(guān)Oracle閃回功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于sql腳本導(dǎo)入Oracle時(shí)重復(fù)生成check約束的問(wèn)題解決
這篇文章主要給大家介紹了關(guān)于sql腳本導(dǎo)入Oracle時(shí)重復(fù)生成check約束的問(wèn)題解決方法,文中給出了詳細(xì)的檢查步驟,對(duì)大家理解和解決這個(gè)問(wèn)題具有很好的幫助,需要的朋友們下面來(lái)一起看看吧。2017-05-05oracle中創(chuàng)建序列及序列補(bǔ)零實(shí)例詳解
這篇文章主要介紹了oracle中創(chuàng)建序列及序列補(bǔ)零實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03oracle錯(cuò)誤ORA-00054資源正忙解決辦法
ORA-00054是Oracle數(shù)據(jù)庫(kù)中的一個(gè)常見(jiàn)錯(cuò)誤,表示用戶試圖在正在被鎖定的資源上執(zhí)行不允許的操作,導(dǎo)致資源處于忙碌狀態(tài),下面這篇文章主要給大家介紹了關(guān)于oracle錯(cuò)誤ORA-00054資源正忙的解決辦法,需要的朋友可以參考下2024-01-01Oracle 批處理自動(dòng)備份bat腳本語(yǔ)句的步驟詳解
這篇文章主要介紹了Oracle 批處理自動(dòng)備份bat腳本語(yǔ)句的步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Oracle數(shù)據(jù)庫(kù)中的用戶授權(quán)、取消權(quán)限方式
Oracle數(shù)據(jù)庫(kù)中的用戶授權(quán)分為系統(tǒng)權(quán)限和對(duì)象權(quán)限,系統(tǒng)權(quán)限允許用戶執(zhí)行特定的系統(tǒng)級(jí)操作,如創(chuàng)建表或啟動(dòng)事務(wù),對(duì)象權(quán)限針對(duì)特定數(shù)據(jù)庫(kù)對(duì)象,如表、視圖或過(guò)程,包括SELECT、INSERT、UPDATE和DELETE等,角色是一組權(quán)限的集合,可以簡(jiǎn)化權(quán)限管理2024-12-12Oracle?19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯(cuò)誤問(wèn)題分析
這篇文章主要介紹了Oracle?19c的參數(shù)sec_case_sensitive_logon與ORA-01017錯(cuò)誤,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04