为何数据库归档日志名称为空
http://tech.ddvip.com 2007年09月02日 社区交流
内容摘要:数据库为Oracle10203 RAC on Solaris,数据库使用了ASM作为底层存储。数据库开始将归档日志存放在ASM上,后来将归档放到本地硬盘后,居然发现V$ARCHIVED_LOG视图中的归档名称变成了空。
查询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有关。
责编:豆豆技术应用
- Oracle 10g 教程
- Oracle 故障处理
- Oracle 存储过程
- Oracle 备份恢复
- Oracle 性能调优
- Oracle 9i 教程
- Oracle 11g 教程
- Oracle 启动
- Oracle 命令
- Oracle 数据库管理
- Oracle 时间
- Oracle 密码
- Oracle 用户
- Oracle 常见错误
- Oracle 建数据表
- Oracle 索引
- Oracle 数据库连接
- Oracle 锁
- Oracle RAC 专题
- Oracle exp/imp 命令
- Oracle 表空间
- Oracle 查询
- Oracle 函数
- Oracle PL/SQL 专题
- 更多Oracle 专题>>>