控制文件的恢复(四)
来源:互联网 发布:软件代码大全 编辑:程序博客网 时间:2024/05/18 02:10
一、控制文件无备份的恢复
如果控制文件没有任何备份,可以在实例的nomount状态下使用'create controlfile'创建新控制文件,但是必须包含4项基本信息:数据库名、在线日志路径和大小、在线可读/写数据文件路径、数据库字符集,
DB:Oracle 11g 11.2.0.3.0 X86_64,OS RHEL 6.3 X86_64,未使用Recovery Catalog
1.1破坏所有的控制文件
[oracle@ora Pictures]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control01.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00605029 s, 867 MB/s
[oracle@ora Pictures]$ dd if=/dev/zero of=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00575304 s, 911 MB/s
[oracle@ora Pictures]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control03.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00577951 s, 907 MB/s
1.2启动实例到nomount状态
SYS@orcl>startup force nomount;
ORACLE instance started.
Total System Global Area 1887350784 bytes
Fixed Size 2229464 bytes
Variable Size 1107299112 bytes
Database Buffers 771751936 bytes
Redo Buffers 6070272 bytes
1.3运行带noresetlogs的'create controlfile'命令创建控制文件
SYS@orcl>CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oracle/oradata/orcl/system01.dbf',
'/u01/app/oracle/oradata/orcl/sysaux01.dbf',
'/u01/app/oracle/oradata/orcl/undotbs01.dbf',
'/u01/app/oracle/oradata/orcl/users01.dbf',
'/u01/app/oracle/oradata/orcl/example01.dbf'
CHARACTER SET AL32UTF8 ;
Control file created.
1.4恢复数据库
SYS@orcl>recover database;
Media recovery complete.
1.5打开数据库
SYS@orcl>alter database open;
Database altered.
1.6添加临时数据文件
SYS@orcl>alter tablespace temp add tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' reuse;
Tablespace altered.
1.7执行catalog命令从快速恢复区找回备份和归档日志信息
RMAN> catalog db_recovery_file_dest;
searching for all files in the recovery area
List of Files Unknown to the Database
=====================================
File Name: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2013_01_05/o1_mf_1_1_8ghjh7lf_.arc
……省略……
File Name: /u01/app/oracle/fast_recovery_area/ORCL/autobackup/2013_01_05/o1_mf_s_803927973_8ghw174h_.bkp
/o1_mf_ncnnf_TAG20130103T163808_8gbjvnh7_.bkp
Do you really want to catalog the above files (enter YES or NO)?
二、使用控制文件快照恢复
使用rman备份任何文件时会在$ORACLE_HOME/dbs下生成名为snapcf_<db_name>.f的控制文件快照,它相当于控制文件的镜像复制,我们也可以利用快照进行恢复,例如:
2.1查看控制文件自动备份设置
RMAN> show controlfile autobackup;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
2.2备份users表空间
RMAN> backup tablespace users;
Starting backup at 05-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 05-JAN-13
channel ORA_DISK_1: finished piece 1 at 05-JAN-13
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_05/o1_mf_nnndf_TAG20130105T201014_8gj616h0_.bkp tag=TAG20130105T201014 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 05-JAN-13
2.3$ORACLE_HOME/dbs目录下生成快照
[oracle@ora dbs]$ pwd
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@ora dbs]$ ll
total 9864
-rw-rw----. 1 oracle oinstall 1544 Dec 29 18:34 hc_catadb.dat
-rw-rw----. 1 oracle oinstall 1544 Jan 5 20:06 hc_orcl.dat
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle oinstall 24 Jan 3 16:22 lkORCL
-rw-r-----. 1 oracle oinstall 1536 Jan 3 16:29 orapworcl
-rw-r-----. 1 oracle oinstall 10076160 Jan 5 20:10 snapcf_orcl.f
-rw-r-----. 1 oracle oinstall 3584 Jan 5 20:03 spfileorcl.ora
2.4破坏所有的控制文件
[oracle@ora dbs]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control01.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00584593 s, 897 MB/s
[oracle@ora dbs]$ dd if=/dev/zero of=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00583077 s, 899 MB/s
[oracle@ora dbs]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control03.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00625981 s, 838 MB/s
2.5启动实例到nomount状态
SYS@orcl>startup force nomount;
ORACLE instance started.
Total System Global Area 1887350784 bytes
Fixed Size 2229464 bytes
Variable Size 1107299112 bytes
Database Buffers 771751936 bytes
Redo Buffers 6070272 bytes
2.6利用快照还原控制文件
[oracle@ora dbs]$ cp $ORACLE_HOME/dbs/snapcf_orcl.f $ORACLE_BASE/oradata/orcl/control01.ctl
[oracle@ora dbs]$ cp $ORACLE_HOME/dbs/snapcf_orcl.f $ORACLE_BASE/oradata/orcl/control03.ctl
[oracle@ora dbs]$ cp $ORACLE_HOME/dbs/snapcf_orcl.f $ORACLE_BASE/fast_recovery_area/orcl/control02.ctl
2.7启动实例到mount状态
RMAN> mount database;
using target database control file instead of recovery catalog
database mounted
2.8恢复数据库
RMAN> recover database;
Starting recover at 05-JAN-13
Starting implicit crosscheck backup at 05-JAN-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
Crosschecked 1 objects
Finished implicit crosscheck backup at 05-JAN-13
Starting implicit crosscheck copy at 05-JAN-13
using channel ORA_DISK_1
Finished implicit crosscheck copy at 05-JAN-13
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 1 is already on disk as file /u01/app/oracle/oradata/orcl/redo01.log
archived log file name=/u01/app/oracle/oradata/orcl/redo01.log thread=1 sequence=1
media recovery complete, elapsed time: 00:00:02
Finished recover at 05-JAN-13
2.9以resetlogs打开数据库
SYS@orcl>alter database open resetlogs;
Database altered.
如果控制文件没有任何备份,可以在实例的nomount状态下使用'create controlfile'创建新控制文件,但是必须包含4项基本信息:数据库名、在线日志路径和大小、在线可读/写数据文件路径、数据库字符集,
DB:Oracle 11g 11.2.0.3.0 X86_64,OS RHEL 6.3 X86_64,未使用Recovery Catalog
1.1破坏所有的控制文件
[oracle@ora Pictures]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control01.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00605029 s, 867 MB/s
[oracle@ora Pictures]$ dd if=/dev/zero of=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00575304 s, 911 MB/s
[oracle@ora Pictures]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control03.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00577951 s, 907 MB/s
1.2启动实例到nomount状态
SYS@orcl>startup force nomount;
ORACLE instance started.
Total System Global Area 1887350784 bytes
Fixed Size 2229464 bytes
Variable Size 1107299112 bytes
Database Buffers 771751936 bytes
Redo Buffers 6070272 bytes
1.3运行带noresetlogs的'create controlfile'命令创建控制文件
SYS@orcl>CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/orcl/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oracle/oradata/orcl/system01.dbf',
'/u01/app/oracle/oradata/orcl/sysaux01.dbf',
'/u01/app/oracle/oradata/orcl/undotbs01.dbf',
'/u01/app/oracle/oradata/orcl/users01.dbf',
'/u01/app/oracle/oradata/orcl/example01.dbf'
CHARACTER SET AL32UTF8 ;
Control file created.
1.4恢复数据库
SYS@orcl>recover database;
Media recovery complete.
1.5打开数据库
SYS@orcl>alter database open;
Database altered.
1.6添加临时数据文件
SYS@orcl>alter tablespace temp add tempfile '/u01/app/oracle/oradata/orcl/temp01.dbf' reuse;
Tablespace altered.
1.7执行catalog命令从快速恢复区找回备份和归档日志信息
RMAN> catalog db_recovery_file_dest;
searching for all files in the recovery area
List of Files Unknown to the Database
=====================================
File Name: /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2013_01_05/o1_mf_1_1_8ghjh7lf_.arc
……省略……
File Name: /u01/app/oracle/fast_recovery_area/ORCL/autobackup/2013_01_05/o1_mf_s_803927973_8ghw174h_.bkp
/o1_mf_ncnnf_TAG20130103T163808_8gbjvnh7_.bkp
Do you really want to catalog the above files (enter YES or NO)?
二、使用控制文件快照恢复
使用rman备份任何文件时会在$ORACLE_HOME/dbs下生成名为snapcf_<db_name>.f的控制文件快照,它相当于控制文件的镜像复制,我们也可以利用快照进行恢复,例如:
2.1查看控制文件自动备份设置
RMAN> show controlfile autobackup;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
2.2备份users表空间
RMAN> backup tablespace users;
Starting backup at 05-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 05-JAN-13
channel ORA_DISK_1: finished piece 1 at 05-JAN-13
piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_05/o1_mf_nnndf_TAG20130105T201014_8gj616h0_.bkp tag=TAG20130105T201014 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 05-JAN-13
2.3$ORACLE_HOME/dbs目录下生成快照
[oracle@ora dbs]$ pwd
/u01/app/oracle/product/11.2.0/dbhome_1/dbs
[oracle@ora dbs]$ ll
total 9864
-rw-rw----. 1 oracle oinstall 1544 Dec 29 18:34 hc_catadb.dat
-rw-rw----. 1 oracle oinstall 1544 Jan 5 20:06 hc_orcl.dat
-rw-r--r--. 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r-----. 1 oracle oinstall 24 Jan 3 16:22 lkORCL
-rw-r-----. 1 oracle oinstall 1536 Jan 3 16:29 orapworcl
-rw-r-----. 1 oracle oinstall 10076160 Jan 5 20:10 snapcf_orcl.f
-rw-r-----. 1 oracle oinstall 3584 Jan 5 20:03 spfileorcl.ora
2.4破坏所有的控制文件
[oracle@ora dbs]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control01.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00584593 s, 897 MB/s
[oracle@ora dbs]$ dd if=/dev/zero of=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00583077 s, 899 MB/s
[oracle@ora dbs]$ dd if=/dev/zero of=/u01/app/oracle/oradata/orcl/control03.ctl bs=512K count=10;
10+0 records in
10+0 records out
5242880 bytes (5.2 MB) copied, 0.00625981 s, 838 MB/s
2.5启动实例到nomount状态
SYS@orcl>startup force nomount;
ORACLE instance started.
Total System Global Area 1887350784 bytes
Fixed Size 2229464 bytes
Variable Size 1107299112 bytes
Database Buffers 771751936 bytes
Redo Buffers 6070272 bytes
2.6利用快照还原控制文件
[oracle@ora dbs]$ cp $ORACLE_HOME/dbs/snapcf_orcl.f $ORACLE_BASE/oradata/orcl/control01.ctl
[oracle@ora dbs]$ cp $ORACLE_HOME/dbs/snapcf_orcl.f $ORACLE_BASE/oradata/orcl/control03.ctl
[oracle@ora dbs]$ cp $ORACLE_HOME/dbs/snapcf_orcl.f $ORACLE_BASE/fast_recovery_area/orcl/control02.ctl
2.7启动实例到mount状态
RMAN> mount database;
using target database control file instead of recovery catalog
database mounted
2.8恢复数据库
RMAN> recover database;
Starting recover at 05-JAN-13
Starting implicit crosscheck backup at 05-JAN-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
Crosschecked 1 objects
Finished implicit crosscheck backup at 05-JAN-13
Starting implicit crosscheck copy at 05-JAN-13
using channel ORA_DISK_1
Finished implicit crosscheck copy at 05-JAN-13
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 1 is already on disk as file /u01/app/oracle/oradata/orcl/redo01.log
archived log file name=/u01/app/oracle/oradata/orcl/redo01.log thread=1 sequence=1
media recovery complete, elapsed time: 00:00:02
Finished recover at 05-JAN-13
2.9以resetlogs打开数据库
SYS@orcl>alter database open resetlogs;
Database altered.
- 控制文件的恢复(四)
- 控制文件的恢复
- 控制文件的恢复
- Oracle 恢复测试-控制文件篇(四)
- 丢失控制文件的恢复
- 控制文件的恢复(二进制)
- 关于控制文件的恢复
- 控制文件损坏的恢复
- 控制文件的恢复(一)
- 控制文件的恢复(二)
- 控制文件的恢复(三)
- 控制文件的恢复(五)
- 恢复丢失的控制文件
- 与控制文件有关的恢复
- 损坏控制文件的恢复方法
- 损坏控制文件的恢复方法
- 控制文件丢失时数据库的恢复
- 51、丢失控制文件的恢复
- WMI技术介绍和应用——查询正在运行的线程信息
- 关于数据库number与integer类型的区别
- android adb install 安装常见错误列表
- 练习(2)
- C++ cout 颜色输出
- 控制文件的恢复(四)
- boost::unique_lock vs boost::lock_guard
- myeclipse快捷键大全
- 【Mysql基础】使用limit限制结果集的位置和大小
- UIScrollView self-study
- 设计师的经历
- Cuda continue
- Dependency Walker reports IESHIMS.DLL and WER.DLL missing?
- mysql 1064 错误 解决方案