Chinaunix首页 | 论坛 | 博客
  • 博客访问: 621928
  • 博文数量: 28
  • 博客积分: 6060
  • 博客等级: 准将
  • 技术积分: 1948
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-03 08:55
文章分类

全部博文(28)

文章存档

2011年(3)

2009年(9)

2008年(16)

我的朋友

分类: Oracle

2008-11-13 16:32:08

   最近不小心看到alter system check datafiles。突然想不起来起啥作用。根据字面翻译来说,是对数据文件进行一个check。但表面上你是看不到比较有用的信息。
  

SQL> alter system check datafiles;

System altered.

   查看alert日志也没有发现比较有用的信息。所以还是需要查阅下sql reference。

基本语法是:

alter system check datafiles global|local;

   设计用来在rac环境对数据文件访问进行检测。当磁盘被多个机器共享访问时,有可能个别文件只能被当个机器访问,而其它机器不能访问。一般是由于配置或者操作系统的问题。

  假定有个数据文件标示为offline,而且为rac环境。当你想online该数据文件时,你发现其中一个节点不能访问数据文件所在磁盘,这时这个实例不能够验证该数据文件。然后在另外一个实例中,控制文件会将该文件标示为online。但是数据文件仍然不能正常访问,并加载入SGA。此时alter system check datafiles命令可以用来纠正这个问题,使数据文件能够正常访问,将触发实例重新识别并验证这个数据文件。然后使数据库能够正常工作。

另外发现查询v$recover_file这类视图时,容易出现异常错误,原以为是自己输入有问题,核实几遍过后,发现没有问题。example:

SQL> select file#,online,online_error from v$recover_file;
select file#,online,online_error from v$recover_file
             *
ERROR at line 1:
ORA-00936: missing expression

上面视图中online字段在10.2.0.1中被obosolete了,所以不能直接指定该字段,只能通过

select * from v$recover_file;

或者

select FILE# , "ONLINE" , ONLINE_STATUS, ERROR , CHANGE# , TIME from v$recover_File;

来避免不必要的报错信息。

总之:本文达到两个目的:

1、了解alter system check datafiles的基本作用。

2、如何避免某些视图在高版本中字段obosolete,如何查看视图信息的问题即可。

随手记录!

阅读(2465) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~