歸檔日誌名稱為空

yangtingkun發表於2007-06-01

查詢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有關。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-69295/,如需轉載,請註明出處,否則將追究法律責任。

相關文章