由于控制文件对于数据库的重要性很高,所以通常在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
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)