番外:Oracle 中关于 Control File 的备份说明
查看告警日志文件: 1 [[email?protected] trace]$ pwd 2 /u01/app/oracle/diag/rdbms/prod1/PROD1/trace 3 [[email?protected] trace]$ tail -f 200 alert_PROD1.log 4 tail: cannot open ‘200’ for reading: No such file or directory 5 ==> alert_PROD1.log <== 6 ORACLE_BASE from environment = /u01/app/oracle 7 Tue May 21 19:44:50 2019 8 ALTER DATABASE MOUNT 9 Errors in file /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ckpt_5026.trc: 10 ORA-00208: number of control file names exceeds limit of 8 11 System state dump requested by (instance=1,osid=5026 (CKPT)),summary=[abnormal instance termination]. 12 System State dumped to trace file /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_diag_5014.trc 13 Dumping diagnostic data in directory=[cdmp_20190521194450],requested by (instance=1,summary=[abnormal instance termination]. 14 CKPT (ospid: 5026): terminating the instance due to error 208 15 Instance terminated by CKPT,pid = 5026 看下第10行:ORA-00208: number of control file names exceeds limit of 8 所以,控制文件多路复用最多为“八路军 -?铁流两万五千里,直向着一个坚定的方向!苦斗十年锻炼成一支不可战胜的力量。”! 再来看下官方文档?11g Release 2 (11.2)?Database Reference 对此参数的描述: CONTROL_FILES Range of values:1 to 8 filenames ? 3. 控制文件的备份 3.1 TRACE备份 需要知道的是,严格意义上来说,这不是控制文件的备份,而是根据当前控制文件生成了一份 trace 跟踪文件,该文件里面记录了数据库结构的基本信息,而且trace出来的文件是可以直接查看的。 3.1.1 TRACE默认备份 SQL> alter database backup controlfile to trace; Database altered. 默认情况下,放哪里了?可以根据日志文件查看到: 1 Tue May 21 20:07:53 2019 2 alter database backup controlfile to trace 3 Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_ora_6647.trc 4 Completed: alter database backup controlfile to trace 这个路径可以通过参数 dump 查询到: SQL> show parameter dump NAME TYPE VALUE --------------------- ------ ------------------------------------------- background_core_dump string partial background_dump_dest string /u01/app/oracle/diag/rdbms/prod1/PROD1/trace core_dump_dest string /u01/app/oracle/diag/rdbms/prod1/PROD1/cdump max_dump_file_size string unlimited shadow_core_dump string partial user_dump_dest string /u01/app/oracle/diag/rdbms/prod1/PROD1/trace 查看下里面的内容:trace出来的控制文件,可以编辑或查看,原控制文件是不可编辑或查看的。 *** 2019-05-21 20:07:53.396 -- 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_%r.dbf -- -- DB_UNIQUE_NAME="PROD1" -- -- LOG_ARCHIVE_CONFIG=‘SEND,RECEIVE,NODG_CONFIG‘ -- LOG_ARCHIVE_MAX_PROCESSES=4 -- STANDBY_FILE_MANAGEMENT=MANUAL -- STANDBY_ARCHIVE_DEST=?/dbs/arch -- FAL_CLIENT=‘‘ -- FAL_SERVER=‘‘ -- -- LOG_ARCHIVE_DEST_1=‘LOCATION=/u01/app/oracle/archive1‘ -- LOG_ARCHIVE_DEST_1=‘OPTIONAL REOPEN=300 NODELAY‘ -- LOG_ARCHIVE_DEST_1=‘ARCH NOAFFIRM NOEXPEDITE NOVERIFY SYNC‘ -- LOG_ARCHIVE_DEST_1=‘REGISTER NOALTERNATE NODEPENDENCY‘ -- LOG_ARCHIVE_DEST_1=‘NOMAX_FAILURE NOQUOTA_SIZE NOQUOTA_USED NODB_UNIQUE_NAME‘ -- LOG_ARCHIVE_DEST_1=‘VALID_FOR=(PRIMARY_ROLE,ONLINE_LOGFILES)‘ -- 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 Recovery Manager will be lost. -- Additional logs may be required for media recovery of offline -- Use this only if the current versions of all online logs are -- available. -- After mounting the created controlfile,the following SQL -- statement will place the database in the appropriate -- protection mode: -- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "PROD1" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ‘/u01/app/oracle/oradata/PROD1/redo01.log‘ SIZE 50M BLOCKSIZE 512,GROUP 2 ‘/u01/app/oracle/oradata/PROD1/redo02.log‘ SIZE 50M BLOCKSIZE 512,GROUP 3 ‘/u01/app/oracle/oradata/PROD1/redo03.log‘ SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE ‘/u01/app/oracle/oradata/PROD1/system01.dbf‘,‘/u01/app/oracle/oradata/PROD1/sysaux01.dbf‘,‘/u01/app/oracle/oradata/PROD1/undotbs01.dbf‘,‘/u01/app/oracle/oradata/PROD1/users01.dbf‘,‘/u01/app/oracle/oradata/PROD1/example01.dbf‘,‘/u01/app/oracle/oradata/PROD1/abc01.dbf‘,‘/u01/app/oracle/oradata/PROD1/abcd01.dbf‘,‘/u01/app/oracle/oradata/PROD1/tbs_c01.dbf‘,‘/u01/app/oracle/oradata/PROD1/aaa01.dbf‘,‘/u01/app/oracle/oradata/PROD1/aaa02.dbf‘ CHARACTER SET AL32UTF8 ; -- Commands to re-create incarnation table -- Below log names MUST be changed to existing filenames on -- disk. Any one log file from each branch can be used to -- re-create incarnation records. -- ALTER DATABASE REGISTER LOGFILE ‘/u01/app/oracle/archive1/1_1_762083164.dbf‘; -- ALTER DATABASE REGISTER LOGFILE ‘/u01/app/oracle/archive1/1_1_1001001677.dbf‘; -- 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 ‘/u01/app/oracle/oradata/PROD1/temp01.dbf‘ SIZE 30408704 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M; ALTER TABLESPACE TMP_ABC ADD TEMPFILE ‘/u01/app/oracle/oradata/PROD1/tmpabc01.dbf‘ SIZE 2097152 REUSE AUTOEXTEND OFF; -- End of tempfile additions. -- -- Set #2. RESETLOGS case -- -- The following commands will create a new control file and use it -- to open the database. -- Data used by Recovery Manager will be lost. -- The contents of online logs will be lost and all backups will -- be invalidated. Use this only if online logs are damaged. -- After mounting the created controlfile,the following SQL -- statement will place the database in the appropriate -- protection mode: -- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "PROD1" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ‘/u01/app/oracle/oradata/PROD1/redo01.log‘ SIZE 50M BLOCKSIZE 512, -- 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 ‘/u01/app/oracle/oradata/PROD1/temp01.dbf‘ SIZE 30408704 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M; ALTER TABLESPACE TMP_ABC ADD TEMPFILE ‘/u01/app/oracle/oradata/PROD1/tmpabc01.dbf‘ SIZE 2097152 REUSE AUTOEXTEND OFF; -- End of tempfile additions. --control file 里面涵盖两段重要内容:Set #1. NORESETLOGS case 和?Set #2. RESETLOGS case 后期可根据实际情况,通过对应代码段手工重建控制文件。本篇不涉及,请移至己亥清爽恢复系列查看。 3.1.2 TRACE指定路径备份 (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |