新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > 数据库综合 > 正文:实例解析:为何数据库归档日志名称为空

实例解析:为何数据库归档日志名称为空

新客网 XKER.COM 2007-08-29 来源: shuijing 收藏本文

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

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐