作者 阿九【转载时请务必以超链接形式标明文章原始出处和作者信息】
使用dbms_backup_restore包恢复数据库学习
在数据库的极端恢复下,比如,没有spfile、控制文件、数据文件,且catalog库也不可用,也不知道DBID的情况下,只剩下备份集文件的时候,我们可以通过使用dbms_backup_restore包来恢复数据库,这个包在nomount下也能执行。
1、目的:
学习使用dbms_backup_restore包
2、试验设计:
2.1、先创建一张测试表,test_restore
QL> DESC test_restore; Name Null? Type ----------------------------------------- -------- ---------------------------- T_NUM NUMBER T_DATE VARCHAR2(17)
SQL> |
2.2、插入数据
SQL> insert into test_restore values(1,to_char(sysdate,'yyyymmdd hh24:mi:ss'));
1 row created.
SQL> commit;
Commit complete.
SQL> select * from test_restore;
T_NUM T_DATE ---------- ----------------- 1 20120414 22:49:12
SQL> |
2.3、备份数据库并清空 spfile文件、控制文件,数据文件后(数据库文件使用raw设备),使用dbms_backup_restore包来恢复数据库,检查表是否存在,数据是否存在。
3、试验过程
3.1、备份数据库
[oracle@clone_sigle oracle]$ rman target / [uniread] Loaded history (91 lines)
Recovery Manager: Release 10.2.0.4.0 - Production on 星期六 4月 14 22:57:42 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORCLAUX (DBID=2639214075)
RMAN> run{ 2> allocate channel disk1 device type disk format='/oracle/backup/backdb<oracleaux_%s_%T.bak'; 3> backup as compressed backupset database include current controlfile; 4> release channel disk1; 5> }
using target database control file instead of recovery catalog allocated channel: disk1 channel disk1: sid=1624 devtype=DISK
Starting backup at 14-4月 -12 channel disk1: starting compressed full datafile backupset channel disk1: specifying datafile(s) in backupset input datafile fno=00001 name=/dev/raw/raw1 input datafile fno=00002 name=/dev/raw/raw3 input datafile fno=00003 name=/dev/raw/raw2 input datafile fno=00004 name=/dev/raw/raw4 channel disk1: starting piece 1 at 14-4月 -12 channel disk1: finished piece 1 at 14-4月 -12 piece handle=/oracle/backup/backdb<oracleaux_4_20120414.bak tag=TAG20120414T232447 comment=NONE channel disk1: backup set complete, elapsed time: 00:00:45 channel disk1: starting compressed full datafile backupset channel disk1: specifying datafile(s) in backupset including current control file in backupset including current SPFILE in backupset channel disk1: starting piece 1 at 14-4月 -12 channel disk1: finished piece 1 at 14-4月 -12 piece handle=/oracle/backup/backdb<oracleaux_5_20120414.bak tag=TAG20120414T232447 comment=NONE channel disk1: backup set complete, elapsed time: 00:00:03 Finished backup at 14-4月 -12
released channel: disk1
RMAN> |
此备份包含了控制文件和spfile文件的自动备份。
3.2、关闭数据库并清空相关数据库文件
使用dd 命令清空raw设备上的数据
[oracle@clone_sigle oracle]$ |