




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle重建控制文件oracle数据库通过控制文件保持数据库的完整性,一旦控制文件被破坏数据库将无法启动,因此建议采用多路控制文件或者备份控制文件的方法。控制文件是数据库建立的时候自动生成的二进制文件,只能通过实例进行修改,如果手动修改的话会造成控制文件与物理信息不符合,从而导致数据库不能正常工作。控制文件主要包括下面内容:1.控制文件所属数据库的名字,一个控制文件只能属一个数据库2.数据库创建时间3.数据文件的名称,位置,联机,脱机状态信息4.所有表空间信息5.当前日志序列号6.最近检查点信息其中,数据库名称,标识和创建时间在数据库创建时写入;数据文件和重做日志名称和位置在增加,重命名或者删除的时候更新;表空间信息在增加或者删除表空间的时候进行更新。在初始化参数文件中control_files参数主要来描述控制文件的文件名跟物理路径,如下所示:control_files=(/u01/app/oracle/oradata/orcl/control01.ctl)该参数只设置一个,也可以设置多个,如下所示:control_files=(u01/app/oracle/oradata/orcl/control01.ctl u01/app/oracle/oradata/orcl/control02.ctl, u01/app/oracle/oradata/orcl/control03.ctl)这个方法叫做多路控制文件,oracle可以利用这个方法恢复被破坏的控制文件,oracle最多允许设置8个多路控制文件。这种做法主要防止冗余错误。必须所有的多路控制文件都完整正确数据库才能正常启动,只要丢失一个或者一个内容不正确数据库就不能顺利启动。假设数据库有8个控制文件,如果其中某一个、或七个同时坏掉,此时,oracle是起不来的。在nomount的状态下就会报错。排除这个错误的方法是,到pfile文件里修改control file的选项,只要8个里,其中有一个是完好的,oracle便能正常启动。【说明】【oracle在mount状态启动时,控制文件只会读取一个,其余七个只是镜像复制】对控制文件的管理原则:1.明确控制文件的名称很存储路径参数设置错误将无法打开数据库,数据库打开以后,实例将同时写入所有的控制文件但是只会读取第一个控制文件的内容。2.为数据库创建多路控制文件a.多路控制文件内容必须完全一样,oracle实例同时将内容写入到control_files变量所设置的控制文件中。b.初始化参数control_files中列出的第一个文件是数据库运行期间唯一可读取的控制文件。c.创建,恢复和备份控制文件必须在数据库关闭的状态下运行,这样才能保证操作过程中控制文件不被修改。d.数据库运行期间如果一个控制文件变为不可用,那么实例将不再运行,应该终止这个实例,并对破坏的控制文件进行修复。3.将多路控制文件放在不同的硬盘上4.采用操作系统镜像方式备份控制文件5.手工方式备份控制文件应该及时备份特别是发生了如下的操作的时候:添加删除重命名数据文件添加删除表空间,改变表空间读写状态添加删除重做日志文件如果手工备份不及时的话,就会产生备份的控制文件与正在使用的控制文件不一致,那么利用备份的控制文件启动数据库时会破坏数据库的一致性完整性,甚至不能启动数据库,因此手工备份控制文件要注意及时备份。创建多路控制文件利用spfile文件创建多路控制文件1.利用SYS帐号登陆SQL*PLUS,查询一下控制文件信息视图SQLselect name from v$controlfile;结果显示为:NAME-/u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control02.ctl/u01/app/oracle/oradata/orcl/control03.ctl这里列出了控制文件的名称以及位置2.更改spfile中控制文件的信息,增加一个新的控制文件SQLalter system set control_files=/u01/app/oracle/oradata/orcl/control01.ctl,/u01/app/oracle/oradata/orcl/control02.ctl scope=spfile结果显示为:系统已经更改。【scope必须是spfile,不能为both,不然会报ORA-02095的错。原因为oracle在启动时,会同时读写各个控制文件,而更改过后的控制文件参数也会再下次启动时生效】3.关闭数据库4.在操作系统中将已有的控制文件复制,修改名称保存到刚才增加控制文件的指定位置。(这步必须做的,否则数据库无法启动)5.重新启动控制文件,使控制文件改变生效。利用pfile创建多路控制文件1.关闭数据库2.在操作系统中将原有的控制文件复制一份保存到不同的位置上去,比如说将原有的/u01/app/oracle/oradata/orcl/control01.ctl控制文件复制一份保存到oracle/oradata目录下去。3.用文本编辑器打开pfile进行编辑,一般是在ORACLE_BASEadminpfile里面,把新添加的控制文件信息添加进去。4.重新启动数据库,使控制文件生效。注意在9i中,默认的控制文件是spfile,所以修改了pfile以后启动要:SQLstartup pfile=ORACLE_BASEadminpfileinit.ora其他方法:还可以手动创建spfile,或者可以把原先spfile改名一下。原因:oracle启动时会先找spfile,spfile有情况下,才会找pfile,当然,如果pfile也有问题,那就只能是自己建一个pfile了。管理控制文件备份控制文件1.命令:alter database backup controlfile to /u01/app/oracle/oradata/controlfile.bkp;命令给出的路径一定要实现就建好,否则系统会报错。控制文件丢失或者出错的时候就可以在初始化参数文件中把control_files参数指向备份后的路径,或者是把备份后的控制文件复制到原来的控制文件的位置覆盖掉。2.使用命令:alter database backup controlfile to trace;在ORACLE_BASEadminudump里面生成跟踪文件(使用show parameter user_dump语句可以可以获取跟踪文件存放目录),其中就有创建文件的SQL脚本,可以利用脚本来重建新的控制文件。Oracle提供两种方式备份控制文件:1.生成可以重建控制文件的脚本2.备份二进制的控制文件我们看一下如何获得可以重建控制文件的脚本.Oracle提供如下命令:alter database backup controlfile to trace; 实际操作:oraclestandby tools$ sqlplus / as sysdbaSQL*Plus: Release 9.2.0.4.0 - Production on Sat Oct 16 08:56:13 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - ProductionSQL alter database backup controlfile to trace;Database altered.SQL gettrcnameTRACE_FILE_NAME-/opt/oracle/admin/primary/udump/primary_ora_2135.trc trace文件内容: oraclestandby tools$ more /opt/oracle/admin/primary/udump/primary_ora_2135.trc/opt/oracle/admin/primary/udump/primary_ora_2135.trcOracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning optionJServer Release 9.2.0.4.0 - ProductionORACLE_HOME = /opt/oracle/product/9.2.0System name: LinuxNode name: standbyRelease: 2.4.21-4.ELVersion: #1 Fri Oct 3 18:13:58 EDT 2003Machine: i686Instance name: primaryRedo thread mounted by this instance: 1Oracle process number: 12Unix process pid: 2135, image: oraclestandby (TNS V1-V3)* SESSION ID:(11.6) 2004-10-16 09:00:03.830* 2004-10-16 09:00:03.830# The following are current System-scope REDO Log Archival related# parameters and can be included in the database initialization file.# LOG_ARCHIVE_DEST=# LOG_ARCHIVE_DUPLEX_DEST=# LOG_ARCHIVE_FORMAT=%t_%s.dbf# REMOTE_ARCHIVE_ENABLE=TRUE# LOG_ARCHIVE_START=TRUE# LOG_ARCHIVE_MAX_PROCESSES=2# STANDBY_FILE_MANAGEMENT=MANUAL# STANDBY_ARCHIVE_DEST=?/dbs/arch# FAL_CLIENT=# FAL_SERVER=# LOG_ARCHIVE_DEST_1=LOCATION=/opt/oracle/oradata/primary/archive# LOG_ARCHIVE_DEST_1=OPTIONAL REOPEN=300 NODELAY# LOG_ARCHIVE_DEST_1=ARCH NOAFFIRM SYNC# LOG_ARCHIVE_DEST_1=REGISTER NOALTERNATE NODEPENDENCY# LOG_ARCHIVE_DEST_1=NOMAX_FAILURE NOQUOTA_SIZE NOQUOTA_USED# LOG_ARCHIVE_DEST_STATE_1=ENABLE# Below are two sets of SQL statements, each of which creates a new# control file and uses it to open the database. The first set opens# the database with the NORESETLOGS option and should be used only if# the current versions of all online logs are available. The second# set opens the database with the RESETLOGS option and should be used# if online logs are unavailable.# The appropriate set of statements can be copied from the trace into# a script file, edited as necessary, and executed when there is a# need to re-create the control file.# Set #1. NORESETLOGS case# The following commands will create a new control file and use it# to open the database.# Data used by the recovery manager will be lost. Additional logs may# be required for media recovery of offline data files. Use this# only if the current version of all online logs are available.STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE PRIMARY NORESETLOGS ARCHIVELOG- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226LOGFILE GROUP 1 /opt/oracle/oradata/primary/redo01.log SIZE 10M, GROUP 2 /opt/oracle/oradata/primary/redo02.log SIZE 10M, GROUP 3 /opt/oracle/oradata/primary/redo03.log SIZE 10M- STANDBY LOGFILEDATAFILE /opt/oracle/oradata/primary/system01.dbf, /opt/oracle/oradata/primary/undotbs01.dbf, /opt/oracle/oradata/primary/users01.dbfCHARACTER SET ZHS16GBK;# Recovery is required if any of the datafiles are restored backups,# or if the last shutdown was not normal or immediate.RECOVER DATABASE# All logs need archiving and a log switch is needed.ALTER SYSTEM ARCHIVE LOG ALL;# Database can now be opened normally.ALTER DATABASE OPEN;# Commands to add tempfiles to temporary tablespaces.# Online tempfiles have complete space information.# Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE /opt/oracle/oradata/primary/temp01.dbf SIZE 41943040 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;# End of tempfile additions.# Set #2. RESETLOGS case# The following commands will create a new control file and use it# to open the database.# The contents of online logs will be lost and all backups will# be invalidated. Use this only if online logs are damaged.STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE PRIMARY RESETLOGS ARCHIVELOG- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226LOGFILE GROUP 1 /opt/oracle/oradata/primary/redo01.log SIZE 10M, GROUP 2 /opt/oracle/oradata/primary/redo02.log SIZE 10M, GROUP 3 /opt/oracle/oradata/primary/redo03.log SIZE 10M- STANDBY LOGFILEDATAFILE /opt/oracle/oradata/primary/system01.dbf, /opt/oracle/oradata/primary/undotbs01.dbf, /opt/oracle/oradata/primary/users01.dbfCHARACTER SET ZHS16GBK;# Recovery is required if any of the datafiles are restored backups,# or if the last shutdown was not normal or immediate.RECOVER DATABASE USING BACKUP CONTROLFILE# Database can now be opened zeroing the online logs.ALTER DATABASE OPEN RESETLOGS;# Commands to add tempfiles to temporary tablespaces.# Online tempfiles have complete space information.# Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE /opt/oracle/oradata/primary/temp01.dbf SIZE 41943040 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;# End of tempfile additions.# 编辑这个trace文件,我们就可以获得创建控制文件的脚本.根据数据库不同状况,你可以选择是使用RESETLOGS/NORESETLOGS来重建控制文件.我们获得以下脚本:oraclestandby tools$ cat createctlf.sql STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE PRIMARY NORESETLOGS ARCHIVELOG- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 226LOGFILE GROUP 1 /opt/oracle/oradata/primary/redo01.log SIZE 10M, GROUP 2 /opt/oracle/oradata/primary/redo02.log SIZE 10M, GROUP 3 /opt/oracle/oradata/primary/redo03.log SIZE 10M- STANDBY LOGFILEDATAFILE /opt/oracle/oradata/primary/system01.dbf, /opt/oracle/oradata/primary/undotbs01.dbf, /opt/oracle/oradata/primary/users01.dbfCHARACTER SET ZHS16GBK;RECOVER DATABASEALTER SYSTEM ARCHIVE LOG ALL;ALTER DATABASE OPEN;ALTER TABLESPACE TEMP ADD TEMPFILE /opt/oracle/oradata/primary/temp01.dbf SIZE 41943040 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M; 运行这个脚本即可重建控制文件:oraclestandby tools$ sqlplus / as sysdbaSQL*Plus: Release 9.2.0.4.0 - Production on Sat Oct 16 09:20:24 2004Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to an idle instance.SQL set echo onSQL createctlfSQL STARTUP NOMOUNTORACLE instance started.Total System Global Area 135337420 bytesFixed Size 452044 bytesVariable Size 109051904 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesSQL CREATE CONTROLFILE RE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行营销面试题目及答案
- 银行行长竞聘试题及答案
- 银行信贷考试题库及答案
- 园林技术专业试题及答案
- 稽查专业考试题库及答案
- 湖南省邵阳市2025-2026学年高一上学期9月拔尖联考(创新班)数学试卷(含答案)
- 河北省张家口市宣化区2024-2025学年七年级下学期7月期末考试数学试卷(人教版)(含答案)
- 幕墙栏杆压顶施工方案
- 福建省泉州市安溪县2024-2025学年高一上学期11月期中生物试卷(含答案)
- 彭州围堰施工方案公示
- 2025外科招聘面试题及答案
- 2025年半导体制造用胶膜市场调查报告
- 家长学校亲子沟通课件
- 廉政档案管理办法医院
- 超声科主任竞聘演讲稿
- 工地工伤预防培训
- 辽宁省2022-2024年中考满分作文134篇
- (完整)夏季防暑降温教育培训试题及答案
- 复卷机安全操作规程
- 马克思介绍课件
- 工会的考试试题及答案
评论
0/150
提交评论