详述Oracle 多路复用的控制文件——增加一个控制文件副本

首先你要明白几个概念,多路复用就是他们是一样的,如果一个控制文件坏了,那么你可以把它删掉,然后再从好的那个哪复制一份,一定注意,整个过程 你的数据库实例是shutdown 状态(这样能保证拷贝的控制文件的一致性,否则假如你在open状态时,难免你的好的那一份控制文件会在你复制之后,有所改变,这样你的拷贝的那份就会和你现在的好的那个不一致了)。
如果你有多个多路复用的控制文件,那么只要你也坏了,那你实例就会open不起啦,准确的说能启动到nomount状态,也可以理解为这几个控制文件同时被数据库实例读取,所以说只要一个坏了,就有问题了。
如果你想要增加控制文件,必须先要在参数文件中添加你要增加的控制文件的路径,因为我们先读取的参数文件的内容,才会知道控制文件的位置,所以你必须在里面配置相关的路径。还要注意这个参数是静态参数,要加上scope=spfile   然后重启才有效。
具体过程:
一:先把数据库shut   immediate 
二:你应该先找到你的控制文件在哪里 有以下几个方法:
1)  SYS@ENMOEDU>  show  parameter  control             #查看带control关键字的参数    就能看出你的控制文件的位置和个数,最常用。

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string          /u01/app/oracle/oradata/ENMOEDU/control01.ctl,
 /u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl,
 /u01/app/oracle/oradata/control03.ctl
control_management_pack_access string DIAGNOSTIC+TUNING
2)我们知道,在参数文件中有控制文件的信息,所以你可以在参数文件中查看,
[ oracle@ENMOEDU ~]$ cd $ORACLE_HOME/dbs              #参数文件的位置
[ oracle@ENMOEDU dbs]$ ls 
hc_ENMOEDU.dat init.ora lkENMOEDU orapwenmoedu orapwENMOEDU snapcf_ENMOEDU.f     spfileENMOEDU.ora
但是spfile 是二进制的文件,你不能直接看到,所以你应该 先把它生成pfiled    SYS@ENMOEDU> create pfile from spfile;   注意这个在shutdown的模式也可以执行,因为这是关于参数文件的命令,

File created        没有指定pfile 的路径( create pfile='/u01/app/oracle/oradata/pfile' from spfile;)  那么默认会建在$ORACLE_HOME/dbs 中,然后你在此目录中找,却发现没有,没关系,其实initENMOEDU.ora   就是刚才你创建的pfile(记住吧),然后查看它 就可以看到  控制文件的信息
 [ oracle@ENMOEDU dbs]$ more initENMOEDU.ora
*.control_files='/u01/app/oracle/oradata/ENMOEDU/control01.ctl','/u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl','/u01/app/oracle/oradata/control03.ctl'
3)你还可以用下面的语句直接模糊查询
SYS@ENMOEDU> select * from v$parameter where name like '%control%';      
三:.当你知道了控制文件存在于那了,那么你就可以进行拷贝了,再次提醒,要在shutdown 状态啊。
[ oracle@ENMOEDU dbs]$ cp /u01/app/oracle/oradata/ENMOEDU/control01.ctl /u01/app/oracle/oradata/ENMOEDU/control04.ctl    
四:只拷贝一份是不够的,还需要在参数文件中添加上,新增加的控制文件的路径,那修改参数的方法有两种。
1)第2步中,创建的pfile文件中,添加路径,然后再创建成spfile即可。
[ oracle@ENMOEDU dbs]$ vi initENMOEDU.ora    
*.control_files='/u01/app/oracle/oradata/ENMOEDU/control01.ctl','/u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl', '/u01/app/oracle/fast_recovery_area/ENMOEDU/control04.ctl'
2)也可以直接修改静态参数   注意要选择这样修改参数,那你必须在拷贝之前做,因为这个命令要在open 状态,如果你先复制,然后再起库  可能导致 不一致 
SYS@ENMOEDU> alter system set control_files = '/u01/app/oracle/oradata/ENMOEDU/control01.ctl','/u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl','/u01/app/oracle/fast_recovery_area/ENMOEDU/control04.ctl' scope=spfile;      
五:起实例   即可
SYS@ENMOEDU> startup 
ORACLE instance started. 

Total System Global Area 422670336 bytes 
Fixed Size 1345380 bytes 
Variable Size 348129436 bytes 
Database Buffers 67108864 bytes 
Redo Buffers 6086656 bytes 
Database mounted. 
Database opened.
总结:控制文件 是非常重要的,它存着数据文件,日志文件的信息,也是多路复用的,而且同时用哪些一样的控制文件,其中一个坏了,就会出现问题,修复要在shutdown状态。

















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29654823/viewspace-1249453/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29654823/viewspace-1249453/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值