备份控制文件

控制文件用于记录和维护数据库,当恢复数据库时,服务器进程和后台进程需要从控制文件中读取各种与备份相关的信息。如果控制文件损坏,则会导致这些信息丢失。尽管多元化的控制文件可以防止控制文件损坏,但因控制文件的重要性,所以应当定期的备份控制文件。当数据库配置发生变化时,一定要备份控制文件。

涉及到改变数据库配置的命令一般以 alter database 、ceate tablespace,alter tablespace ,drop tablespace 等命令。

第一 建立控制文件的副本。

SQL> alter database backup controlfile
  2  to 'F:\lib\control.ctl' reuse;

----resue 是当控制文件副本已经存在时,可以覆盖以前的副本。若不存在副本,则可以省去resue

数据库已更改。

     执行该语句时,oracle会将当前的控制文件的信息全部存放到控制文件的副本中,通过控制文件副本,一 可以执行基于控制文件的不完全恢复,二是可以生成控制文件的文本跟踪文件。注意:在open状态时,控制文件只能用alter databae命令生成,而不能用os命令直接复制。

二 备份到跟踪文件。

SQL> alter database backup controlfile to trace;

数据库已更改。此命令将控制文件中记录的信息备份到跟踪文件,然后可以使用跟踪文件创建控制文件。

1) 确认跟踪文件的位置。

SQL> show parameter user_dump_dest

NAME                                 TYPE        VALUE                         
------------------------------------ ----------- ------------------------------
user_dump_dest                       string      f:\app\yang\diag\rdbms\oracl\o
                                                 racl\trace                    

2)确定跟踪文件的名称。跟着文件的名称_ora_.TRC。其中sid为例程名即 oracle_SID的名称,spid 是服务器进程所对应操作系统的进程号。

SQL> select a.spid from v$process a,v$session b
  2  where a.addr=b.paddr and b.username='SYS';

SPID                                                                           
------------------------                                                       
572                                                                            

3)查看跟踪文件。oracl_ora_572 在这里我没有把注释去掉,以方便大家研究。

当将跟踪文件的注释内容和说明信息去掉,剩余部分就可以用来重新建立控制文件的全部内容。当控制文件出现介质损坏时,通过执行这部分语句就可以恢复损坏的控制文件了。

Trace file f:\app\yang\diag\rdbms\oracl\oracl\trace\oracl_ora_572.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Windows XP Version V5.1 Service Pack 3
CPU                 : 2 - type 586, 2 Physical Cores
Process Affinity    : 0x00000000
Memory (Avail/Total): Ph:902M/2046M, Ph+PgF:2348M/3938M, VA:1246M/2047M
Instance name: oracl
Redo thread mounted by this instance: 1
Oracle process number: 31
Windows thread id: 572, image: ORACLE.EXE (SHAD)

*** 2010-05-08 21:43:10.765
*** SESSION ID:(128.147) 2010-05-08 21:43:10.765
*** CLIENT ID:() 2010-05-08 21:43:10.765
*** SERVICE NAME:(SYS$USERS) 2010-05-08 21:43:10.765
*** MODULE NAME:(sqlplus.exe) 2010-05-08 21:43:10.765
*** ACTION NAME:() 2010-05-08 21:43:10.765
 
-- 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=%s_%t_%r.log
--
-- DB_UNIQUE_NAME="oracl"
--
-- LOG_ARCHIVE_CONFIG='SEND, RECEIVE, NODG_CONFIG'
-- LOG_ARCHIVE_MAX_PROCESSES=5
-- STANDBY_FILE_MANAGEMENT=MANUAL
-- STANDBY_ARCHIVE_DEST=%ORACLE_HOME%\RDBMS
-- FAL_CLIENT=''
-- FAL_SERVER=''
--
-- LOG_ARCHIVE_DEST_2='LOCATION=f:\app\yang\archive2'
-- LOG_ARCHIVE_DEST_2='OPTIONAL REOPEN=300 NODELAY'
-- LOG_ARCHIVE_DEST_2='ARCH NOAFFIRM NOEXPEDITE NOVERIFY SYNC'
-- LOG_ARCHIVE_DEST_2='REGISTER NOALTERNATE NODEPENDENCY'
-- LOG_ARCHIVE_DEST_2='NOMAX_FAILURE NOQUOTA_SIZE NOQUOTA_USED NODB_UNIQUE_NAME'
-- LOG_ARCHIVE_DEST_2='VALID_FOR=(PRIMARY_ROLE,ONLINE_LOGFILES)'
-- LOG_ARCHIVE_DEST_STATE_2=ENABLE
--
-- LOG_ARCHIVE_DEST_1='LOCATION=f:\app\yang\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 "ORACL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'F:\APP\YANG\ORADATA\ORACL\REDO01.LOG'  SIZE 50M,
  GROUP 2 'F:\APP\YANG\ORADATA\ORACL\REDO02.LOG'  SIZE 50M,
  GROUP 3 'F:\APP\YANG\ORADATA\ORACL\REDO03.LOG'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  'F:\APP\YANG\ORADATA\ORACL\SYSTEM01.DBF',
  'F:\APP\YANG\ORADATA\ORACL\SYSAUX01.DBF',
  'F:\APP\YANG\ORADATA\ORACL\UNDOTBS01.DBF',
  'F:\APP\YANG\ORADATA\ORACL\USERS01.DBF',
  'F:\APP\YANG\ORADATA\ORACL\EXAMPLE01.DBF'
CHARACTER SET ZHS16GBK
;
-- 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 'F:\APP\YANG\ARCHIVE2\1_1_636026939.LOG';
-- ALTER DATABASE REGISTER LOGFILE 'F:\APP\YANG\ARCHIVE2\1_1_715961434.LOG';
-- 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 'F:\APP\YANG\ORADATA\ORACL\TEMP01.DBF'
     SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
-- End of tempfile additions.

好了,如何备份控制文件到此结束。至于具体的基于控制文件的不完全恢复,我会在后续的文章中给出具体的步骤。。。。

时间: 2024-09-19 09:06:29

备份控制文件的相关文章

Listen Software解决方案 “How To” 系列3:备份控制文件

备份|解决|控制 Listen Software解决方案 "How To" 系列3:备份控制文件       备份控制文件为二进制的版本:             ALTER DATABASE BACKUP CONTROLFILE TO   'd:\orant\control_backup'       备份控制文件为文本的版本:           ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

Oracle基于备份控制文件的恢复

通常在当前控制文件丢失,或者当前的控制文件与需要恢复的控制文件不一致的情况下,我们需要重新创建一个控制文件或者使用 unsingbackup controlfile方式来恢复控制文件.说简单点,只要是备份的控制文件与当前的控制文件不一致进行恢复数据库,就需要使用到 unsingbackup controlfile方式,而一旦使用了该方式,则需使用resetlgos选项来打开数据库. 一.基于备份控制文件的恢复注意事项(无论是否使用恢复目录catalog) 1.即使没有数据文件需要还原,当使用un

Oracle 基于备份控制文件的恢复(unsing backup controlfile)

    Oracle 基于备份控制文件的恢复(unsing backup controlfile)     有关RMAN的备份恢复与管理请参考     RMAN 概述及其体系结构     RMAN 配置.监控与管理     RMAN 备份详解     RMAN 还原与恢复     RMAN catalog 的创建和使用     基于catalog 创建RMAN存储脚本     基于catalog 的RMAN 备份与恢复     RMAN 备份路径困惑     使用RMAN实现异机备份恢复(WIN

探索ORACLE不完全恢复之--基于备份控制文件恢复

探索ORACLE不完全恢复之--基于备份控制文件恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com 基于备份控制文件(unsing backup controlfile)的恢复 主要适用于:基于备份控制文件的恢复只要适用于以下情况:表空间被意外删除:所有控制文件全部损坏.   1.关闭数据库执行一次全库冷备份: SQL> select file_name from dba_data_files;  

DBA工作备忘录之三:rman备份,未使用catalog,控制文件丢失的解决办法

备份|解决|控制 [Oracle] DBA工作备忘录之三:rman备份,未使用catalog,控制文件丢失的解决办法 作者:Fenng 日期:July 19 2004 情况描述客户报告数据库故障,新来的系统管理员误操作.删掉了一些文件.询问:删掉了那些文件?答曰:所有重要数据文件,所有控制文件.数据库原来是归档模式,用rman备份数据,rman 使用控制文件.幸运的是,最后一次rman full 备份是包括了控制文件在内.系统没有设定自动备份控制文件.现在状况是数据库无法启动. 不用说,客户的备

Oracle控制文件的备份方法

备份控制文件的原则是:在数据库物理结构发生变化后备份控制文件. 1.trace :用于控制文件重建 (生成的trace文件在udump) SQL> alter database backup controlfile to trace; Database altered. 以下是控制文件的备份: CREATE CONTROLFILE REUSE DATABASE "LX01" NORESETLOGS  ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS

11g中关于控制文件自动备份的改进

在之前做一个测试演示的时候,使用的是11gR2的库,在说rman的备份配置的时候有一个功能时控制文件的自动备份, CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF; 然后自己简单介绍了下,说controlfile autobackup功能还是蛮实用的,一般还是建议开启.之前自己在10g的环境中也测试过,印象中数据库级的一些操作,比如创建表空间,删除数据文件等等,都会重新生成对应的控制文件,然而在演示的时候,竟然还是掉了链子. 我们创建了一个表空间,没有自动备份控制文

Oracle恢复实验一:使用添加数据文件之前的控制文件

oracle|恢复|控制|数据 --------------------------------------------- 实验平台:windows + Oracle 10.1.0.2.0 Author:NinGoo  2005-03-26 --------------------------------------------   在备份控制文件之后,在数据库中又添加了数据文件,然后当前控制文件损坏,需要使用之前的备份控制文件来做恢复.   1.备份控制文件   SQL> alter data

ORACLE控制文件的重建

oracle|控制 数据库系统运行一段时间后有很多参数需要调整,有些参数可在$ORACLE_HOME/dbs/initXXX.ora文件中调整,而有些参数必须要在ORACLE的控制文件中调整.如ORACLE的缺省数据文件个数为30个,在系统需要扩表空间而数据文件个数不够时就需要进行调整. 一种方法是将所有数据全倒出来,重建库,再将数据倒进出.这种方法较麻烦. 二种方法是只重建控制文件,因为数据文件个数的限制参数存放在控制文件中. 以下是一种较好的重建控制文件的方法: 1. 备份数据库中的数据,以