Welcome 微信登录

首页 / 数据库 / MySQL / Oracle控制文件多路复用时要注意的问题

由于控制文件对于数据库的重要性很高,所以通常在dbca建库以后,都会对控制文件多路复用。如,在Oracle10g中,默认控制文件有3份,内容完全一致,通常位于$ORACLE_BASE/oradata/SID/下面,名字为control01.ctl,control02.ctl,control03.ctl,而到了11g,默认只有2个份,一个位于$ORACLE_BASE/oradata/SID/下面,名字为control01.ctl,另一份位于$ORACLE_BASE/fast_recovery_area/SID/下面,名字为control02.ctl。当然了,我说的都是默认安装的情况下,完全可以通过在pfile中自定义不同的路径。有时候,可能会碰到某些库只有1个控制文件,没有镜像,即没有对控制文件多路复用,显然这是不太好的,需要为数据库增加控制文件的镜像文件,下面来做个测试----------------------------华丽丽的分割线----------------------------Oracle控制文件的多路复用 http://www.linuxidc.com/Linux/2013-11/92572.htmOracle 单实例 从32位 迁移到 64位 方法  http://www.linuxidc.com/Linux/2012-03/55759.htm在CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htmOracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htmOracle导入导出expdp IMPDP详解 http://www.linuxidc.com/Linux/2014-04/99932.htmOracle 10g expdp导出报错ORA-4031的解决方法 http://www.linuxidc.com/Linux/2014-04/99842.htm----------------------------华丽丽的分割线---------------------------- --启动数据库,查看当前控制文件信息SQL> startupORACLE instance started. Total System Global Area  835104768 bytesFixed Size                  2232960 bytesVariable Size             507514240 bytesDatabase Buffers          322961408 bytesRedo Buffers                2396160 bytesDatabase mounted.Database opened.SQL> show parameter control_file NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time        integer     7control_files                        string      /u01/app/oracle/oradata/zlm11g                                                 /control01.ctl, /u01/app/oracl                                                 e/fast_recovery_area/zlm11g/co                                                 ntrol02.ctl 默认装完库以后,已经有2个控制文件,其中,control02.ctl是镜像 --查看control_file参数是否可以在线修改SQL> col name for a20SQL> select name,issys_modifiable from v$parameter where name="control_files"; NAME                 ISSYS_MOD-------------------- ---------control_files        FALSE 显然,FALSE表示无法在线修改该参数,那么多路复用控制文件就意味着要重启数据库了 --创建pfileSQL> create pfile from spfile; File created. --关闭数据库并修改pfile,增加控制文件镜像(在control_files参数后面添加镜像的位置、文件名)SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> ! zlm11g.__db_cache_size=322961408zlm11g.__java_pool_size=4194304zlm11g.__large_pool_size=4194304zlm11g.__oracle_base="/u01/app/oracle"#ORACLE_BASE set from environmentzlm11g.__pga_aggregate_target=335544320zlm11g.__sga_target=503316480zlm11g.__shared_io_pool_size=0zlm11g.__shared_pool_size=163577856zlm11g.__streams_pool_size=0*.audit_file_dest="/u01/app/oracle/admin/zlm11g/adump"*.audit_trail="db"*.compatible="11.2.0.0.0"*.control_files="/u01/app/oracle/oradata/zlm11g/control01.ctl","/u01/app/oracle/fast_recovery_area/zlm11g/control02.ctl","/u01/control03.ctl"--红色部分为新增的控制文件镜像*.db_block_size=8192zlm11g.db_create_file_dest="/u01/app/oracle/oradata/zlm11g/"*.db_domain=""*.db_name="zlm11g"*.db_recovery_file_dest="/u01/app/oracle/fast_recovery_area"*.db_recovery_file_dest_size=4322230272*.diagnostic_dest="/u01/app/oracle"*.dispatchers="(PROTOCOL=TCP) (SERVICE=zlm11gXDB)"*.log_archive_format="%t_%s_%r.dbf"*.memory_target=838860800*.memory_target=838860800*.open_cursors=300"/u01/app/oracle/product/11.2.0/db_1/dbs/initzlm11g.ora" 27L, 1048C written --在OS级别复制一份控制文件镜像[oracle@zlm ~]$ cp $ORACLE_BASE/oradata/zlm11g/control01.ctl /u01/control03.ctl
[oracle@zlm ~]$ cd /u01[oracle@zlm u01]$ lsapp  bak  control03.ctl  dave.trc  expdp  rman.log  rman.trc[oracle@zlm u01]$ exitexit --用pfile启动数据库SQL> startup pfile=$ORACLE_HOME/dbs/initzlm11g.oraORACLE instance started. Total System Global Area  835104768 bytesFixed Size                  2232960 bytesVariable Size             507514240 bytesDatabase Buffers          322961408 bytesRedo Buffers                2396160 bytesDatabase mounted.Database opened.SQL> show parameter control_files NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------control_files                        string      /u01/app/oracle/oradata/zlm11g                                                 /control01.ctl, /u01/app/oracl                                                 e/fast_recovery_area/zlm11g/co                                                 ntrol02.ctl, /u01/control03.ct 新增的镜像控制文件已经生效,现在有3个控制文件了,一个原始文件,2路复用 --创建新的spfile                                                 lSQL> create spfile from pfile; File created. --关库并用spfile重新启动SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started. Total System Global Area  835104768 bytesFixed Size                  2232960 bytesVariable Size             507514240 bytesDatabase Buffers          322961408 bytesRedo Buffers                2396160 bytesDatabase mounted.Database opened.SQL> show parameter control_files NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------control_files                        string      /u01/app/oracle/oradata/zlm11g                                                 /control01.ctl, /u01/app/oracl                                                 e/fast_recovery_area/zlm11g/co                                                 ntrol02.ctl, /u01/control03.ct 至此,已经完成了对控制文件的复用,从2份增加到了3份,注意,是必须停库的。下面尝试用另一种方式来增加控制文件镜像,采用spfile动态修改+备份控制文件的方式,看是否可行                                       --修改spfile,添加第4个控制文件SQL> alter system set control_files="/u01/app/oracle/oradata/zlm11g/control01.ctl,/u01/oracle/fast_recovery_area/zlm11g/control02.ctl,/u01/control03.ctl,/u01/control04.ctl" scope=spfile; System altered. --备份当前控制文件并生成镜像文件SQL> alter database backup controlfile to "/u01/control04.ctl"; Database altered. SQL> alter database backup controlfile to trace as "/u01/control.bak"; Database altered. 注意这两条命令的区别,前面的语句生成的是binary的控制文件,而后面的语句是生成可读的trace文件(通常用于重建控制文件) 更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-11/109687p2.htm
  • 1
  • 2
  • 3
  • 下一页
ORA-28547 故障处理一例ORA-30009: CONNECT BY 操作内存不足相关资讯      Oracle控制文件  多路复用 
  • Oracle数据库丢失控制文件的恢复四  (08月09日)
  • Oracle如何设置多路复用control   (06/05/2014 20:20:41)
  • Oracle控制文件损坏  (01/25/2014 13:42:32)
  • Oracle控制文件多路复用  (09/17/2014 17:33:00)
  • Oracle控制文件的备份、恢复以及多  (04/10/2014 15:15:06)
  • Oracle控制文件的多路复用  (11/10/2013 19:06:11)
本文评论 查看全部评论 (0)
表情: 姓名: 字数