使用dbms_backup_restore包恢复数据库学习

本文介绍了在极端情况下,如何利用dbms_backup_restore包恢复Oracle数据库。当缺少spfile、控制文件和数据文件时,通过备份集文件进行恢复。首先创建测试表并备份数据库,然后清除关键文件,接着使用dbms_backup_restore恢复spfile、控制文件和数据文件,最后验证恢复成功。
摘要由CSDN通过智能技术生成

作者 阿九【转载时请务必以超链接形式标明文章原始出处和作者信息】



使用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]$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值