ORACLE RAC+ASM修改控制文件位置

   一:控制文件包含如下信息:
1:数据库名
2:数据库创建的时间戳
3:数据文件的名字和位置
4:redo log (联机重做日志文件)的名字和位置
5:当前日志的序列号
6:checkpoint 信息

7:RMAN 备份信息

1:通过查询  v$controlfile 表中的信息可以查到控制文件信息

SQL> select status, name from  v$controlfile;

STATUS  NAME                                                   
-------         ------------------------------------------------------- 
                 +DATA1/pay/controlfile/current.260.853089213     
2:使用参数 control_files可以查到控制文件
 
因为前面提到过,控制文件信息是在启动参数文件 spfile或者pfile中有定义,所以可以通过查看这个参数的形式查找控制文件:

SQL> show parameter control_files;

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string     +DATA1/pay/controlfile/current.260.853089213 


修改ASM里的控制文件位置,数据库在nomount启动到mount时会读取控制文件信息,控制文件位置在参数文件(spfile/pfile)里记录着。所以可以将数据库启动到nomount做操作。

1、关闭数据库所有实例,启动一个实例到nomount,用rman备份控制文件

命令1:restore controlfile to '+DATA1/pay/controlfile/current.260'  from '+DATA1/pay/controlfile/current.260';

命令2:restore controlfile to '+DATA1/pay/controlfile/controlfile02.ctl'    from '+DATA1/pay/controlfile/current.260.853089213';

这有两点需要注意:

1.1、用命令1备份,在+DATA1/pay/controlfile/目录下不会生成一个相同的文件,生成的文件名字会变。

1.2、用命令2备份,会生成+DATA1/pay/controlfile/controlfile02.ctl文件,但在相同目录下还会自动生成另外一个文件,后续虽然不使用但也删不掉,多了个文件不便于管理,不过没有仔细研究那个自动生成的文件。

所以建议用命令1,然后找到自动生成的文件。用如下命令修改控制文件位置

alter system set control_files='+DATA1/pay/controlfile/current.260','+DATA2/pay/controlfile/current.261','+DATA3/pay/controlfile/current.262' scope=spfile sid='*';

2、关闭当前实例,启动所有实例,

修改完成




你可能感兴趣的:(oracle,RAC10g)