****************************
1.简介
****************************
数据读取控制文件时总是读取第一个控制文件,所以当第一个
控制文件损坏以后,读写操作都会出错;
而当第一个控制文件以外的其它控制文件出问题是,写操作都会失败,但是读正常.
****************************
2.备份
****************************
备份包括镜像备份、自动备份、手动备份
-----2.1 镜像备份
SQL> show parameter control_files;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      F:\APP\ADMINISTRATOR\ORADATA\O
                                                 RCL\CONTROL01.CTL, F:\APP\ADMI
                                                 NISTRATOR\ORADATA\ORCL\CONTROL
                                                 02.CTL, F:\APP\ADMINISTRATOR\O
                                                 RADATA\ORCL\CONTROL03.CTL
-----2.2 自动备份
--2.2.1 显示自动备份
使用RMAN设置configure controlfile autobackup on,
这样oracle会在下面两种情况下自动备份控制文件:
1.使用rman命令执行任何备份时导致控制文件内RMAN资料库被更新之后.
2.数据库物理结构发生变化
--案例1:备份任何内容都自动备份控制文件
--方法1:
RMAN> show controlfile autobackup;
使用目标数据库控制文件替代恢复目录
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> show controlfile autobackup;
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> backup tablespace users format='E:\backup\bak_%u';
启动 backup 于 2013-07-23 13:11:51
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=131 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 2013-07-23 13:11:52
通道 ORA_DISK_1: 已完成段 1 于 2013-07-23 13:11:53
段句柄=E:\BACKUP\BAK_7FOFFBSO 标记=TAG20130723T131152 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 2013-07-23 13:11:53
启动 Control File and SPFILE Autobackup 于 2013-07-23 13:11:53
段 handle=E:\BACKUP\BAK_C-1320546556-20130723-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 2013-07-23 13:11:56
--方法2:
run {
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'E:\backup\bak_%F';
allocate channel c1 device type disk format  'E:\backup\bak_%u';
allocate channel c2 device type disk format 'E:\backup\bak_%u';
backup tablespace users ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
--案例2:数据库物理结构发生变化
RMAN> list backup of  controlfile;
备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
219     Full    9.86M      DISK        00:00:02     2013-07-23 13:19:16
        BP 关键字: 224   状态: AVAILABLE  已压缩: NO  标记: TAG20130723T131914
段名:E:\BACKUP\BAK_C-1320546556-20130723-05
  包括的控制文件: Ckp SCN: 42135866     Ckp 时间: 2013-07-23 13:19:14
SQL> drop tablespace test including contents and datafiles;
表空间已删除。
RMAN> list backup of  controlfile;
备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
219     Full    9.86M      DISK        00:00:02     2013-07-23 13:19:16
        BP 关键字: 224   状态: AVAILABLE  已压缩: NO  标记: TAG20130723T131914
段名:E:\BACKUP\BAK_C-1320546556-20130723-05
  包括的控制文件: Ckp SCN: 42135866     Ckp 时间: 2013-07-23 13:19:14
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
220     Full    9.86M      DISK        00:00:03     2013-07-23 13:31:38
        BP 关键字: 225   状态: AVAILABLE  已压缩: NO  标记: TAG20130723T133135
段名:E:\BACKUP\BAK_C-1320546556-20130723-06
  包括的控制文件: Ckp SCN: 42136699     Ckp 时间: 2013-07-23 13:31:35 
/****
可以发现间隔一段时间后,数据库自动备份了控制文件
****/
--2.2.2 隐式自动备份
隐式自动备份即将configure controlfile autobackup off;
使用RMAN备份system表空间中第一个数据文件.
RMAN> list backup of datafile 1;
说明与资料档案库中的任何备份都不匹配
run {
configure controlfile autobackup off;
configure controlfile autobackup format for device type disk to 'E:\backup\bak_%F';
allocate channel c1 device type disk format  'E:\backup\bak_%u';
allocate channel c2 device type disk format 'E:\backup\bak_%u';
backup datafile 1 ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
RMAN> list backup of datafile 1;
备份集列表
===================
BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ -------------------
221     Full    1.67G      DISK        00:00:12     2013-07-23 13:38:56
        BP 关键字: 226   状态: AVAILABLE  已压缩: NO  标记: TAG20130723T133844
段名:E:\BACKUP\BAK_7SOFFDF4
  备份集 221 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间            名称
  ---- -- ---- ---------- ------------------- ----
  1       Full 42137384   2013-07-23 13:38:44 F:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
-----2.3 手动备份
---2.3.1 备份集备份
configure controfile autobackup off;
backup as backupset current controlfile;   --备份到系统默认位置
backup as backupset  current controlfile format 'e:\backup\bak_%U';  --备份到指定位置
--或
run {
configure controlfile autobackup off;
configure controlfile autobackup format for device type disk to 'E:\backup\bak_%F';
allocate channel c1 device type disk format  'E:\backup\bak_%u';
allocate channel c2 device type disk format 'E:\backup\bak_%u';
backup as backupset current controlfile ;
release channel c1;
release channel c2;
}
allocate channel for maintenance device type disk;
---2.3.2 镜像复制备份
backup as copy current controlfile format 'e:\backup\bak_%U';
list copy of controlfile;
----2.3.3重建脚本
第一步:备份控制文件
alter database backup controlfile to trace;
第二步:查看备份到追踪文件的控制文件
select value from v$diag_info where name='Default Trace File';
VALUE
--------------------------------------------------------------------------------
F:\APP\ADMINISTRATOR\diag\rdbms\orcl\orcl\trace\orcl_ora_721588.trc
select a.spid from v$process a, v$session b
where a.addr=b.paddr and b.username='SYS';
---内容如下:
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'
CHARACTER SET ZHS16GBK;