實戰經驗為何數據庫歸檔日志名稱為空
2024-07-21 02:41:14
供稿:網友
查詢V$ARCHIVED_LOG視圖的時候,發現歸檔日志的文件名稱全部為空。
數據庫為Oracle10203 RAC on Solaris,數據庫使用了ASM作為底層存儲。數據庫開始將歸檔日志存放在ASM上,后來將歸檔放到本地硬盤后,居然發現V$ARCHIVED_LOG視圖中的歸檔名稱變成了空。
SQL> set pages 100 lines 120
SQL> SELECT DISTINCT DECODE(NAME, NULL, 'NULL', NAME) FROM V$ARCHIVED_LOG;
DECODE(NAME,NULL,'NULL',NAME)
--------------------------------------------------------------
NULL
SQL> SHOW PARAMETER LOG_ARCHIVE_DEST_1
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=/data1/archivelog
log_archive_dest_10 string
將數據庫的歸檔目錄改回到ASM上,馬上就可以看到新的歸檔日志的名稱: SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=+DISK/testrac/' SCOPE = MEMORY SID = 'testrac1';
系統已更改。 SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=+DISK/testrac/' SCOPE = MEMORY SID = 'testrac2'; 系統已更改。 SQL> ALTER SYSTEM ARCHIVE LOG CURRENT; 系統已更改。 SQL> SELECT NAME, COUNT(*) FROM V$ARCHIVED_LOG GROUP BY NAME;
NAME COUNT(*)
------------------------------------------------------------ ----------
250
+DISK/testrac/2_208_618591128.dbf 1
+DISK/testrac/1_292_618591128.dbf 1 關閉數據庫,使剛才的歸檔參數的修改失效,歸檔路徑恢復到本地,再次查詢: SQL> SELECT NAME, COUNT(*) FROM V$ARCHIVED_LOG GROUP BY NAME;
NAME COUNT(*)
------------------------------------------------------------ ----------
250
/data1/archivelog/2_209_618591128.dbf 1
/data1/archivelog/1_293_618591128.dbf 1
+DISK/testrac/2_208_618591128.dbf 1
+DISK/testrac/1_292_618591128.dbf 1 目前仍然可以看到所有的歸檔日志名稱,下面嘗試用rman刪除所有的歸檔日志。 SQL> SELECT NAME, COUNT(*) FROM V$ARCHIVED_LOG GROUP BY NAME;
NAME COUNT(*)
------------------------------------------------------------ ----------
256
通過rman刪除后,歸檔日志名稱再次變成空值。
這個問題在metalink上也沒有找到類似的描述,個人懷疑和ASM有關。