新聞中心
數(shù)據(jù)庫閃回是一種數(shù)據(jù)庫恢復技術,它可以將數(shù)據(jù)庫快速還原到過去的某個時間點,以便數(shù)據(jù)丟失時快速恢復數(shù)據(jù)。閃回技術可以快速查看數(shù)據(jù)庫中的數(shù)據(jù)變化情況,以幫助數(shù)據(jù)庫管理員進行故障排查和安全審計。本文將介紹如何快速掌握數(shù)據(jù)庫閃回的查看技巧。

創(chuàng)新互聯(lián)專注于企業(yè)成都全網營銷推廣、網站重做改版、福山網站定制設計、自適應品牌網站建設、H5建站、成都做商城網站、集團公司官網建設、外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為福山等各大城市提供網站開發(fā)制作服務。
一、準備工作
在進行數(shù)據(jù)庫閃回查看之前,需要先進行準備工作。必須確定數(shù)據(jù)庫版本,Oracle數(shù)據(jù)庫版本必須是10g以上。需要確認是否有數(shù)據(jù)庫管理員權限,因為只有具有管理員權限的用戶才能執(zhí)行閃回操作。此外,還需要從備份中恢復數(shù)據(jù)庫,以便進行查看。
二、使用Flashback Query
Flashback Query是Oracle數(shù)據(jù)庫中用于查看數(shù)據(jù)歷史記錄的一種方法。它可以直接通過SQL語句查詢歷史數(shù)據(jù),而無需使用備份文件。使用Flashback Query時,必須在查詢語句前添加如下語句:
SELECT * FROM table_name as OF TIMESTAMP to_timestamp(‘2023-04-01 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’);
其中,table_name是要查詢的表名,to_timestamp是要查詢的時間戳。該語句將返回指定時間點之前的所有數(shù)據(jù)記錄。
三、使用Flashback Transaction Query
Flashback Transaction Query是另一種查看數(shù)據(jù)歷史記錄的方法。它可以在一定時間段內查看數(shù)據(jù)的所有變化情況,包括INSERT、UPDATE、DELETE等操作。使用Flashback Transaction Query時,必須在查詢語句前添加如下語句:
SELECT * FROM FLASHBACK_TRANSACTION_QUERY
WHERE XID IN (SELECT XID FROM FLASHBACK_TRANSACTION_QUERY
WHERE TIMESTAMP BETWEEN to_timestamp(‘2023-04-01 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’) AND to_timestamp(‘2023-04-02 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’))
ORDER BY TIMESTAMP;
該語句將返回指定時間段內所有數(shù)據(jù)變更的詳細記錄。
四、使用LogMiner
LogMiner是Oracle數(shù)據(jù)庫中用于查看歸檔日志和在線日志的工具。它可以幫助管理員快速查找數(shù)據(jù)變更記錄,從而進行必要的恢復操作。使用LogMiner時,必須先啟用歸檔模式,以便產生歸檔日志。LogMiner還需要經過一定的配置,以便正確地解析日志。具體操作可以參考Oracle的官方文檔。
五、使用DBMS_FLASHBACK包
DBMS_FLASHBACK包是Oracle數(shù)據(jù)庫中的一個內置包,它可以用于進行閃回操作。使用DBMS_FLASHBACK包時,必須在SQL語句中添加如下語句:
SELECT * FROM table_name flashblack_table
AS OF TIMESTAMP to_timestamp(‘2023-04-01 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’);
該語句將返回指定時間點之前的所有數(shù)據(jù)記錄,從而實現(xiàn)快速恢復操作。
六、注意事項
在使用數(shù)據(jù)庫閃回技術進行查看操作時,需要注意以下幾點:
1. 數(shù)據(jù)庫閃回操作需要在管理員權限下進行,否則無法執(zhí)行。
2. 數(shù)據(jù)庫閃回操作會修改數(shù)據(jù)庫狀態(tài),因此需要謹慎使用。
3. 數(shù)據(jù)庫閃回操作僅適用于具有歸檔功能的數(shù)據(jù)庫版本。
4. 數(shù)據(jù)庫閃回操作不適用于數(shù)據(jù)損壞的情況,此時需要使用其他的恢復方法。
通過本文的介紹,我們可以了解到如何快速掌握數(shù)據(jù)庫閃回的查看技巧。使用閃回技術可以幫助管理員快速查找數(shù)據(jù)變更記錄,從而進行必要的故障排查和安全審計。對于數(shù)據(jù)庫管理員來說,掌握閃回技術是非常重要的一項技能,也是數(shù)據(jù)庫實踐中不可或缺的一環(huán)。
相關問題拓展閱讀:
- Oracle閃回默認是關閉的,為什么在數(shù)據(jù)庫打開后不能啟用閃回功能?
- Oracle10g數(shù)據(jù)庫中閃回表特性剖析
Oracle閃回默認是關閉的,為什么在數(shù)據(jù)庫打開后不能啟用閃回功能?
首先關巖嫌巖閉數(shù)據(jù)庫: shutdown immediate;
在粗御開啟到mount狀態(tài):startup mount;
修者仔改閃回功能:alter database flashback on;
開啟數(shù)據(jù)庫:alter datebase open;
要在oracle數(shù)據(jù)庫處于侍滑mount狀態(tài)的時老改臘候才能啟用或者關閉archivelog功能。
先
startup monut;
再
alter database archivelog;
然后殲培
alter database open;
Oracle10g數(shù)據(jù)庫中閃回表特性剖析
Oracle i Database 推出了閃回查詢選項的概念 以便檢索過去某個時間點的數(shù)據(jù) 但它不能閃回 DDL 操作 如刪除表的操作 唯一的恢復方法是在另一個數(shù)據(jù)庫中使用表空間的時間點恢復 然后使用導出/導派基入或其他方法 在當前數(shù)據(jù)庫中重新創(chuàng)建表 這一過程需要 DBA 進行大量工作并且耗費寶貴的時間 更不用說還要使用另一個數(shù)據(jù)庫進行克隆 使用 Oracle Database g 中的閃回表特性 它使得被刪除表的恢復過程如同執(zhí)行幾條語句一樣簡單 讓我們來看該特性是如何工作的
刪除那個表!
首先 讓我們查看當前模式中的表
SQL> select * from tab;TNAMETAYPE CLUSTERID
RECYCLETEST TABLE
現(xiàn)在 我們意外地刪除了該表
SQL> drop table recycletest;Table dropped
現(xiàn)在讓我們來查看該表的狀態(tài)
SQL> select * from tab;TNAME TAYPE CLUSTERID BIN$ LhcpndanfgMAAAAAANPw==$ TABLE
表RECYCLETEST 已不存在 但是請注意出現(xiàn)新表BIN$ LhcpndanfgMAAAAAANPw==$ 這就是所發(fā)生的事情 被刪除的表 RECYCLETEST 并沒有完全消失 而是重命名為一個由系統(tǒng)定義的名稱 它存在于同一個表空間中 具有與原始表相同的結構 如果在該表上定義了索引或觸發(fā)器 則它們也被重命塵灶謹名 使用與表相同的命名規(guī)則 任何相關源(如過程)都失效 原始表的觸發(fā)器和索引被改為放置在重命名的表 BIN$ LhcpndanfgMAAAAAANPw==$ 上 保持被刪除表的完整對象結構
表及其相關對象被放置在一個稱為 回收站 的邏輯容器中 它類似于您 PC 機中的回收站 但是 對象并沒有從它們原先所在的表空間中刪除 它們仍然占用那里的空間 回收站只是一個列出被刪除對象目錄辯悶的邏輯結構 在 SQL*Plus 提示符處使用以下命令來查看其內容(您需要使用 SQL*Plus 來進行此操作)
SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAMEOBJECT TYPE DROP TIME RECYCLETESTBIN$ LhcpndanfgMAAAAAANPw==$ TABLE : : :
結果顯示了表的原始名稱 RECYCLETEST 并顯示了回收站中的新名稱 該名稱與我們看到的刪除后所創(chuàng)建的新表名稱相同 (注意 確切的名稱可能因平臺不同而不同 )為恢復該表 您所需要做的就是使用 FLASHBACK TABLE 命令
SQL> FLASHBACK TABLE RECYCLETEST TO BEFORE DROP;FLASHBACK PLETE SQL> SELECT * FROM TAB;TNAME TAYPE CLUSTERID RECYCLETESTTABLE
瞧!表毫不費力地恢復了 如果現(xiàn)在查看回收站 它將是空的 記住 將表放在回收站里并不在原始表空間中釋放空間 要釋放空間 您需要使用以下命令清空回收站
PURGE RECYCLEBIN;
但是如果您希望完全刪除該表而不需要使用閃回特性 該怎么辦?在這種情況下 可以使用以下命令永久刪除該表
DROP TABLE RECYCLETEST PURGE;
此命令不會將表重命名為回收站中的名稱 而是永久刪除該表 就象 g 之前的版本一樣
管理回收站
如果在該過程中沒有實際刪除表 — 因而沒有釋放表空間 — 那么當被刪除的對象占用了所有空間時 會發(fā)生什么事?
答案很簡單 這種情況根本不會出現(xiàn) 當表空間被回收站數(shù)據(jù)完全占滿 以至于必須擴展數(shù)據(jù)文件來容納更多數(shù)據(jù)時 可以說表空間處于 空間壓力 情況下 此時 對象以先進先出的方式從回收站中自動清除 在刪除表之前 相關對象(如索引)被刪除
同樣 空間壓力可能由特定表空間定義的用戶限額而引起 表空間可能有足夠的空余空間 但用戶可能將其在該表空間中所分配的部分用完了 在這種情況下 Oracle 自動清除該表空間中屬于該用戶的對象
此外 有幾種方法可以手動控制回收站 如果在刪除名為 TEST 的特定表之后需要從回收站中清除它 可以執(zhí)行
PURGE TABLE TEST;
或者使用其回收站中的名稱
PURGE TABLE BIN$ LhcpndanfgMAAAAAANPw==$ ;
此命令將從回收站中刪除表 TEST 及所有相關對象 如索引 約束等 從而節(jié)省了空間 但是 如果要從回收站中永久刪除索引 則可以使用以下命令來完成工作
purge index in_test _ ;
此命令將僅僅刪除索引 而將表的拷貝留在回收站中 有時在更高級別上進行清除可能會有用 例如 您可能希望清除表空間 USERS 的回收站中的所有對象 可以執(zhí)行
PURGE TABLESPACE USERS;
您也許希望只為該表空間中特定用戶清空回收站 在數(shù)據(jù)倉庫類型的環(huán)境中 用戶創(chuàng)建和刪除許多臨時表 此時這種方法可能會有用 您可以更改上述命令 限定只清除特定的用戶
PURGE TABLESPACE USERS USER SCOTT;
諸如 SCOTT 等用戶可以使用以下命令來清空自己的回收站
PURGE RECYCLEBIN;
DBA 可以使用以下命令清除任何表空間中的所有對象
PURGE DBA_RECYCLEBIN;
可以看到 可以通過多種不同方法來管理回收站 以滿足特定的需要
表版本和閃回功能
用戶可能會經常多次創(chuàng)建和刪除同一個表 如
CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;CREATE TABLE TEST (COL NUMBER);INSERT INTO TEST VALUES ( );mit;DROP TABLE TEST;
此時 如果您要對表 TEST 執(zhí)行閃回操作 那么列 COL 的值應該是什么?常規(guī)想法可能認為從回收站取回表的之一個版本 列 COL 的值是 實際上 取回的是表的第三個版本 而不是之一個 因此列 COL 的值為 而不是
此時您還可以取回被刪除表的其他版本 但是 表 TEST 的存在不允許出現(xiàn)這種情況 您有兩種選擇
使用重命名選項
FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST ;FLASHBACK TABLE TEST TO BEFORE DROP RENAME TO TEST ;
這些語句將表的之一個版本恢復到 TEST 將第二個版本恢復到 TEST TEST 和 TEST 中的列 COL 的值將分別是 和 或者 使用表的特定回收站名稱進行恢復 為此 首先要識別表的回收站名稱 然后執(zhí)行
FLASHBACK TABLE BIN$ LhcpnoanfgMAAAAAANPw==$ TO BEFORE DROP RENAME TO TEST ;FLASHBACK TABLE BIN$ LhcpnqanfgMAAAAAANPw==$ TO BEFORE DROP RENAME TO TEST ;
這些語句將恢復被刪除表的兩個版本
警告
取消刪除特性使表恢復其原始名稱 但是索引和觸發(fā)器等相關對象并沒有恢復原始名稱 它們仍然使用回收站的名稱 在表上定義的源(如視圖和過程)沒有重新編譯 仍然保持無效狀態(tài) 必須手動得到這些原有名稱并應用到閃回表
信息保留在名為 USER_RECYCLEBIN 的視圖中 在對表進行閃回操作前 請使用以下查詢來檢索原有名稱
SELECT OBJECT_NAME ORIGINAL_NAME TYPEFROM USER_RECYCLEBINWHERE BASE_OBJECT = (SELECT BASE_OBJECT FROM USER_RECYCLEBINWHERE ORIGINAL_NAME = RECYCLETEST )AND ORIGINAL_NAME != RECYCLETEST ;
OBJECT_NAMEORIGINAL_N TYPE BIN$ LhcpnianfgMAAAAAANPw==$ IN_RT_ INDEXBIN$ LhcpnganfgMAAAAAANPw==$ TR_RT TRIGGER
在表進行閃回操作后 表 RECYCLETEST 上的索引和觸發(fā)器將按照 OBJECT_NAME 列中所示進行命名 根據(jù)以上查詢 可以使用原始名稱重新命名對象 如下所示
ALTER INDEX BIN$ LhcpnianfgMAAAAAANPw==$ RENAME TO IN_RT_ ;ALTER TRIGGER BIN$ LhcpnganfgMAAAAAANPw==$ RENAME TO TR_RT;
lishixinzhi/Article/program/Oracle/202311/17794
如何查看數(shù)據(jù)庫開啟閃回的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于如何查看數(shù)據(jù)庫開啟閃回,快速掌握數(shù)據(jù)庫閃回查看技巧,Oracle閃回默認是關閉的,為什么在數(shù)據(jù)庫打開后不能啟用閃回功能?,Oracle10g數(shù)據(jù)庫中閃回表特性剖析的信息別忘了在本站進行查找喔。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網站系統(tǒng)開發(fā)經驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
分享標題:快速掌握數(shù)據(jù)庫閃回查看技巧(如何查看數(shù)據(jù)庫開啟閃回)
文章網址:http://www.dlmjj.cn/article/dhppjeo.html


咨詢
建站咨詢
