资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
技术文档模板(v 130810)作者王卫锋审核分类Oracle子类ASM更新时间2013-08-10关键字Oracle DataBase 11gR2摘要Oracle 11gR2,ASM,控制文件主要适用环境Oracle DataBase 11gR2版本说明版本号拟制/修改责任人拟制/修改日期修改内容/理由V130810王卫锋2013-08-10新建目录版本说明21系统和软硬件环境说明42 ASM控制文件损坏报错43备份spfile54查看controlfile的文件名55启动数据库实例到nomount56复制一个controlfile文件57查找新建的controlfile文件68使用新的控制文件69重启实例710启动其它节点的数据库实例71系统和软硬件环境说明硬件环境:x86服务器软件环境:RedHat Enterprise Linux 5.5,Oracle DataBase 11gR22 ASM控制文件损坏报错在一些情况下,可能需要增加控制文件的镜像文件,或者复制一个控制文件来替换原有的控制文件。比如一个控制文件损坏了,另外一个镜像的控制文件是好的,这种情况下可以按照下面的方法复制一个控制文件来替换原有的损坏的控制文件。在下面的例子中,假设控制文件+DATA/rac11g2/controlfile/current.260.815940667上发生了坏块,我们需要用没有问题的控制文件+RECO/rac11g2/controlfile/current.256.815940675来复制一个新的控制文件来替换已损坏的这个控制文件。Wed May 23 14:11:50 2013Read from controlfile member +DATA/rac11g2/controlfile/current.260.815940667 has found a corrupted block (blk# 4, seq# 0) Hexdump of (file 0, block 4) in trace file /u01/app/oracle/admin/racdb/bdump/racdb1_lmon_332342.trcCorrupt block relative dba: 0x00000004 (file 0, block 4)Bad check value found during control file block readData in bad block:type: 21 format: 2 rdba: 0x00000004last change scn: 0x0000.00000000 seq: 0x1 flg: 0x04spare1: 0x0 spare2: 0x0 spare3: 0x0consistency value in tail: 0x00001501check value in block header: 0xdccacomputed block checksum: 0x2下面是针对控制文件在ASM磁盘组中的情况,演示如何在ASM磁盘组上复制一个控制文件来替换原来的一个控制文件。主要用到了rman 的命令 restore controlfile to . from . 。下面的大部分命令都是连接到数据库实例上执行,但是asmcmd命令需要设置环境变量ORACLE_SID和ORACLE_HOME为ASM对应的值来执行。针对11.2,需要注意是用grid用户还是oracle用户来执行。3备份spfile首先备份一下数据库实例的spfile(不是ASM实例):SQLcreate pfile=/tmp/pfile from spfile;如果没有使用spfile,直接备份pfile即可。4查看controlfile的文件名确定数据库实例当前的controlfile的文件名:SQL select name from v$controlfile;NAME-+DATA/rac11g2/controlfile/current.260.815940667+RECO/rac11g2/controlfile/current.256.8159406755启动数据库实例到nomount首先停止使用这个控制文件的数据库实例(ASM 要保持启动)。如果是RAC,需要停止所有节点上使用这个控制文件的数据库实例。启动数据库实例到nomount。对于RAC系统,只需启动任何一个实例,比如实例1。注意连接的是数据库实例,不是ASM实例。一般使用oracle用户登录到sqlplus。$ su - oracle$ sqlplus / as sysdbaSQLstartup nomount;6复制一个controlfile文件使用RMAN来复制一个controlfile,源文件是+RECO/rac11g2/controlfile/current.256.815940675,目标是建立到磁盘组+DATA中。$ su - oracle$ rman target /RMAN restore controlfile to +DATA from +RECO/rac11g2/controlfile/current.256.815940675;Starting restore at 06-JUN-13using channel ORA_DISK_1channel ORA_DISK_1: copied control file copyFinished restore at 06-JUN-13如果需要复制多个控制文件,重复这步即可。注意,如果实例没有停止,那么执行上面的命令会报错:RMAN-00571: =RMAN-00569: = ERROR MESSAGE STACK FOLLOWS =RMAN-00571: =RMAN-03002: failure of restore command at 06/13/2013 20:53:12ORA-19607: +RECO/racdb/controlfile/current.256.783272801 is an active control fileORA-19600: input file is control file (+RECO/racdb/controlfile/current.256.783272801)ORA-19601: output file is control file (+DATA)7查找新建的controlfile文件利用asmcmd 找到新建的controlfile的名字:如果是11.2,一般会使用grid用户来执行asmcmd,如果是10g, 11.1,一般还是使用oracle用户。但是不论是哪个用户,都要确保ORACLE_SID设置为了ASM实例,并且保证ORACLE_HOME设置为了ASM实例所在的ORACLE_HOME。$ export ORACLE_SID=+ASM1 cd +DATA/rac11g2/controlfileASMCMD lsASMCurrent.260.815940667 =旧的current.268.817385067 =新的8使用新的控制文件设置数据库实例的初始化参数来使用新的控制文件:export ORACLE_SID=RAC11G22 alter system set control_files=+DATA/RAC11G2/CONTROLFILE/Current.268.817385067,RECO/RAC11G2/CONTROLFILE/Current.256.815940675 scope=spfile id=*;注意,如果有多个控制文件,它们要分别用括起来,否则执行上面的命令会报错。SQL show parameter control_filesNAME TYPE VALUE- - -control_files string +DATA/rac11g2/controlfile/current.260.815940667, shutdown immediateSQL startupSQL show parameter control_files;NAME TYPE VALUE- - -control_files string +DATA/rac11g2/controlfile/current.268.817385067, select name from gv$controlfile;NAME-+DATA/rac11g2/controlfile/current.268.817385067 =用了新的+RECO/rac11g2/controlfile
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号