oracle只有oradata恢复,只有RMAN备份,恢复数据库

set ORACLE_SID=OSS

set ORAHOME=D:\ORACLE\ORA92

set ORABASE=D:\ORACLE

mkdir %ORABASE%\admin\%ORACLE_SID%\bdump

mkdir %ORABASE%\admin\%ORACLE_SID%\cdump

mkdir %ORABASE%\admin\%ORACLE_SID%\create

mkdir %ORABASE%\admin\%ORACLE_SID%\pfile

mkdir %ORABASE%\admin\%ORACLE_SID%\udump

mkdir %ORABASE%\ora92\database

mkdir %ORABASE%\oradata\%ORACLE_SID%

:: 建立Oracle服务

%ORAHOME%\bin\oradim.exe -new  -sid %ORACLE_SID% -startmode m

:: 创建密码文件

%ORAHOME%\bin\orapwd.exe file=%ORAHOME%\database\PWD%ORACLE_SID%.ora password=change_on_install

##################

#  1.恢复spfile  #

##################

以pfile启动到nomount

SQL> startup force nomount pfile='D:\oracle\admin\OSS\pfile\init.ora'

ORACLE 例程已经启动。

Total System Global Area  143728252 bytes

Fixed Size                   454268 bytes

Variable Size              88080384 bytes

Database Buffers           54525952 bytes

Redo Buffers                 667648 bytes

C:\Documents and Settings\Administrator>set ORACLE_SID=OSS

C:\Documents and Settings\Administrator>rman target / nocatalog

恢复管理器: 版本9.2.0.8.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

连接到目标数据库: OSS(未安装)

正在使用目标数据库控制文件替代恢复目录

从RMAN的备份文件中恢复SPFILE

RMAN> restore spfile from 'D:\oracle\oradata\rman\OSS_34.DBF';

启动 restore 于 27-10月-08

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 已找到的自动备份: D:\oracle\oradata\rman\OSS_34.DBF

通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成

完成 restore 于 27-10月-08

如果是多个备份片的备份集,一般在第一个备份片文件

RMAN> restore spfile from 'D:\oracle\oradata\rman\OSS_35_1.DBF';

启动 restore 于 27-10月-08

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 已找到的自动备份: D:\oracle\oradata\rman\OSS_35_1.DBF

通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成

完成 restore 于 27-10月-08

RMAN>

####################

#  2.恢复控制文件  #

####################

方法1:RMAN>restore controlfile from ‘/…备份文件..’

RMAN> restore controlfile from 'D:\oracle\oradata\rman\OSS_35_1.DBF';

启动 restore 于 27-10月-08

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在恢复控制文件

通道 ORA_DISK_1: 恢复完成

正在复制控制文件

输出文件名=D:\ORACLE\ORADATA\OSS\CONTROL02.CTL

输出文件名=D:\ORACLE\ORADATA\OSS\CONTROL03.CTL

完成 restore 于 27-10月-08

RMAN>

方法2:

declare

devtype varchar2(256);

done boolean;

begin

devtype := sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');

sys.dbms_backup_restore.restoreSetDatafile;

sys.dbms_backup_restore.restoreControlfileTo(cfname=>'D:\oracle\oradata\OSS\CONTROL02.CTL');

sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:\oracle\oradata\rman\OSS_35_1.DBF',params=>null);

sys.dbms_backup_restore.deviceDeallocate;

end;

验证是否恢复了控制文件

SQL> show parameter control_files

NAME                                 TYPE

------------------------------------ ----------------------

VALUE

------------------------------

control_files                        string

D:\oracle\oradata\oss\control0

2.ctl, D:\oracle\oradata\oss\c

ontrol03.ctl

SQL>

##################

# 3.mount数据库  #

##################

SQL> alter database mount;

数据库已更改。

当恢复控制文件后,可以查看备份集信息

C:\Documents and Settings\Administrator>rman target / nocatalog

恢复管理器: 版本9.2.0.8.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

连接到目标数据库: OSS (DBID=666923275)

正在使用目标数据库控制文件替代恢复目录

RMAN> list copy;

数据文件副本列表

关键字     文件 S 完成时间   Ckp SCN    Ckp 时间   名称

------- ---- - ---------- ---------- ---------- ----

4       5    A 24-10月-08 146655     24-10月-08 D:\ORACLE\ORADATA\RMAN\DF_5.DBF

已存档的日志副本列表

关键字     Thrd Seq     S 短时间     名称

------- ---- ------- - ---------- ----

18      1    5       A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00005.001

19      1    6       A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00006.001

20      1    7       A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00007.001

21      1    8       A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00008.001

22      1    9       A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00009.001

23      1    10      A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00010.001

24      1    11      A 24-10月-08 D:\ORACLE\ORADATA\ARCH\ARC00011.001

RMAN> list backup;

备份集列表

===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间

------- ---- -- ---------- ----------- ------------ ----------

19      Full    208M       DISK        00:00:34     27-10月-08

BP 关键字: 23   状态: AVAILABLE   标记:TAG20081027T221948

段名:D:\ORACLE\ORADATA\RMAN\OSS_34.DBF

包含的 SPFILE: 修改时间: 24-10月-08

备份集 19 中的数据文件列表

文件 LV 类型 Ckp SCN    Ckp 时间   名称

---- -- ---- ---------- ---------- ----

1       Full 175026     27-10月-08 D:\ORACLE\ORADATA\OSS\SYSTEM01.DBF

2       Full 175026     27-10月-08 D:\ORACLE\ORADATA\OSS\UNDOTBS01.DBF

3       Full 175026     27-10月-08 D:\ORACLE\ORADATA\OSS\INDX01.DBF

4       Full 175026     27-10月-08 D:\ORACLE\ORADATA\OSS\TOOLS01.DBF

5       Full 175026     27-10月-08 D:\ORACLE\ORADATA\OSS\USERS01.DBF

RMAN>

################

# 恢复数据文件 #

################

RMAN> restore database;

启动 restore 于 27-10月-08

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=10 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到D:\ORACLE\ORADATA\OSS\SYSTEM01.DBF

正将数据文件00002恢复到D:\ORACLE\ORADATA\OSS\UNDOTBS01.DBF

正将数据文件00003恢复到D:\ORACLE\ORADATA\OSS\INDX01.DBF

正将数据文件00004恢复到D:\ORACLE\ORADATA\OSS\TOOLS01.DBF

正将数据文件00005恢复到D:\ORACLE\ORADATA\OSS\USERS01.DBF

通道 ORA_DISK_1: 已恢复备份段 1

段 handle=D:\ORACLE\ORADATA\RMAN\OSS_34.DBF tag=TAG20081027T221948 params=NULL

通道 ORA_DISK_1: 恢复完成

完成 restore 于 27-10月-08

由于没有redo log日志文件所以我们不应用日志恢复:

RMAN> recover database noredo;

启动 recover 于 27-10月-08

使用通道 ORA_DISK_1

完成 recover 于 27-10月-08

到此,已经拥有了参数文件,控制文件,数据文件了

还差日志文件

################

# 恢复日志文件 #

################

SQL> alter system set "_allow_resetlogs_corruption"=TRUE scope=spfile;

alter system set "_allow_resetlogs_corruption"=TRUE scope=spfile

*

ERROR 位于第 1 行:

ORA-32001: ????? SPFILE, ????????? SPFILE

SQL> shutdown immediate;

ORA-01109: ??????

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup force mount;

ORACLE 例程已经启动。

Total System Global Area  143728252 bytes

Fixed Size                   454268 bytes

Variable Size              88080384 bytes

Database Buffers           54525952 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

SQL> alter system set "_allow_resetlogs_corruption"=TRUE scope=spfile;

系统已更改。

SQL> shutdown immediate;

ORA-01109: 数据库未打开

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup force

ORACLE 例程已经启动。

Total System Global Area  143728252 bytes

Fixed Size                   454268 bytes

Variable Size              88080384 bytes

Database Buffers           54525952 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;

数据库已更改。

至此,数据库恢复!

阅读(1156) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值