在Oracle資料庫中,如果我們使用用戶管理備份與恢復(User-Managed Backup and Recovery)方式去備份還原資料庫的話,如何獲取用戶管理備份與恢復的記錄資訊呢?例如,我要查看某個資料庫實體做用戶管理備份的記錄,一般使用下面腳本,似乎用戶管理備份比較“簡單”,目前我查了相關資料,只看到v$backup記錄了相關資訊,而且這個系統試圖只能查看最后一次用戶管理備份的記錄資訊,看不到相關歷史記錄資訊,可能是這種備份與還原方式較少使用的緣故,遠遠沒有RMAN備份方式的記錄資訊多,
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
set linesize 640;
set pagesize 60;
col change# for 999999999999999999;
select * from v$backup;
在測驗環境中,我使用用戶管理備份與恢復這種方式還原恢復了整個資料庫,然后我查看用戶管理備份的還原記錄資訊如下所示:
SQL> COL resetlogs_change# FOR 999999999999999;
SQL> SELECT incarnation#
2 ,resetlogs_change#
3 ,TO_CHAR(resetlogs_time, 'yyyy-mm-dd hh24:mi:ss') db_restored_time
4 ,resetlogs_change#
5 --,scn_to_timestamp(resetlogs_change#) db_recovery_till_time
6 FROM v$database_incarnation
7 WHERE resetlogs_change# !=
8 (SELECT MIN(resetlogs_change#) FROM v$database_incarnation
9 );
INCARNATION# RESETLOGS_CHANGE# DB_RESTORED_TIME RESETLOGS_CHANGE#
------------ ----------------- ------------------- -----------------
2 1018536 2022-03-24 14:17:37 1018536
3 15765877865306 2023-04-07 08:59:51 15765877865306
SQL> SELECT incarnation#
2 ,resetlogs_change#
3 ,TO_CHAR(resetlogs_time, 'yyyy-mm-dd hh24:mi:ss') db_restored_time
4 ,scn_to_timestamp(resetlogs_change#) db_recovery_till_time
5 FROM v$database_incarnation
6 WHERE resetlogs_change# !=
7 (SELECT MIN(resetlogs_change#) FROM v$database_incarnation
8 );
,scn_to_timestamp(resetlogs_change#) db_recovery_till_time
*
ERROR at line 4:
ORA-08181: specified number is not a valid system change number
ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1
SQL>
如上所示,雖然可以看到用戶管理備份與恢復的操作的時間點,但是查看還原恢復那個時間點是報ORA-08181錯誤(當然這個要看環境,有些情況下是不會報這個錯誤的),我是使用下面腳本恢復的,
recover database using backup controlfile until time '2023-03-29 15:59:05';
其實我們可以用下面腳本查詢用戶管理備份/還原的記錄,如下所示:
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
SQL> set linesize 640;
SQL> set pagesize 60;
SQL> col units for a30;
SQL> col item for a24;
SQL> col type for a16;
SQL> col units for a12;
SQL> col comments for a16;
SQL> col con_id for 999999;
SQL> select * from v$recovery_progress;
START_TIME TYPE ITEM UNITS SOFAR TOTAL TIMESTAMP COMMENTS CON_ID
------------------- ---------------- ------------------------ ------------ ---------- ---------- ------------------- ---------------- -------
2023-04-07 08:56:39 Media Recovery Log Files Files 9 9 0
2023-04-07 08:56:39 Media Recovery Active Apply Rate KB/sec 3196 3196 0
2023-04-07 08:56:39 Media Recovery Average Apply Rate KB/sec 3582 3582 0
2023-04-07 08:56:39 Media Recovery Maximum Apply Rate KB/sec 4531 4531 0
2023-04-07 08:56:39 Media Recovery Redo Applied Megabytes 664 664 0
2023-04-07 08:56:39 Media Recovery Recovery ID RCVID 0 0 RCVID: 0
2023-04-07 08:56:39 Media Recovery Last Applied Redo SCN+Time 0 0 2023-03-29 15:59:05 SCN: 15765877865 0
305
2023-04-07 08:56:39 Media Recovery Active Time Seconds 186 186 0
2023-04-07 08:56:39 Media Recovery Apply Time per Log Seconds 12 12 0
2023-04-07 08:56:39 Media Recovery Checkpoint Time per Log Seconds 8 8 0
2023-04-07 08:56:39 Media Recovery Elapsed Time Seconds 190 190 0
11 rows selected.
SQL>
掃描上面二維碼關注我
如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力!
本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/549797.html
標籤:Oracle
上一篇:Redis - 底層資料結構
