****************************
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;