WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院数据库Oracle 为何数据库归档日志名称为空 阅读

为何数据库归档日志名称为空

 2007-09-02 12:39:27 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬灚瀚梺鍨儏閳ь剙绉归弻銊р偓闈涙啞閻h京鈧敻鍋婇崰鏍х暦閿燂拷
核心提示:查询V$ARCHIVED_LOG视图的时候,发现归档日志的文件名称全部为空,为何数据库归档日志名称为空, 数据库为Oracle10203 RAC on Solaris,数据库使用了ASM作为底层存储,归档日志名称再次变成空值, 这个问题在metalink上也没有找到类似的描述,数据库开始将归档日志存放在ASM上,后来将

查询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有关。

Tags:为何 数据库 归档

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接