oracle数据存储底层恢复,ORACLE数据库的恢复(1)

ORACLE可能的数据恢复模式

概述

仅仅丢失一个普通用户数据文件的恢复

能恢复到上次Commit的状态

Shut down状态无关

shutdown immedate,恢复全部数据文件(不包括control和redo)

能恢复到上次Commit的状态(Shutdown Immediate)

Shutdown immediate

shutdown abort的情况,恢复全部控制文件和数据文件(不包括redo)

能恢复到上次Commit的状态

Shutdown abort

仅仅丢失一个普通用户数据文件的恢复B(脱机恢复)

能恢复到上次Commit的状态

不停数据库情况下恢复

Shut down状态无关

shutdown abort后,丢失全部文件(除了archive log和init.ora)即,丢失了全部数据文件、控制文件和redo log file

能恢复到ARCHIVE的状态,上次备份中redo中的数据丢失

Shutdown Abort

shutdown abort的情况,恢复一个控制文件(不包括数据文件和redo)

Copy其他的控制文件该名称

shutdown abort的情况,恢复全部控制文件(不包括数据文件和redo)

能恢复到ARCHIVE的状态

redo数据丢失

Shutdown abort${PageNumber}

仅仅丢失一个普通用户数据文件的恢复A(联机恢复)

(例如,丢失D:\BACKUPDB\USERS01.DBF)

准备工作, 通过下面的工作,如果完全恢复,应该可以看到;insert into test1 values(2);

SQL> conn lunar/lunar

SQL> select * from tab;

TESTBACKUP3 TABLE

SQL> create table test1 (a number);

SQL> insert into test1 values(1);

SQL> alter system switch logfile;

SQL> commit;

SQL> alter system switch logfile;

SQL> insert into test1 values(2);

SQL> commit;

SQL> alter system switch logfile;

SQL> conn internal

SQL> archive log list

数据库日志模式 存档模式

自动存档 启用

存档终点 d:\BACKUPDB\archive

最早的概要信息日志序列 3

下一个存档日志序列 5

当前日志序列 5

shutdown abort关闭例程,模拟数据文件丢失

SQL> shutdown abort

ORACLE 例程已经关闭。

Mount数据库

SQL> startup mount

数据库装载完毕。

使损坏的数据文件脱机

SQL> alter database datafile 'D:\BACKUPDB\USERS01.DBF' offline;

打开数据库

SQL> alter database open;

拷贝刚才热备的数据文件(USERS01.DBF)

恢复损坏的数据文件

SQL> recover datafile 'D:\BACKUPDB\USERS01.DBF';

ORA-00279: ?? 424116 (? 10/20/2002 20:42:04 ??) ???? 1 ????

ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC

ORA-00280: ?? 424116 ???? 1 ???? # 1 ???

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: ?? 424125 (? 10/20/2002 20:44:14 ??) ???? 1 ????

ORA-00289: ??: D:\BACKUPDB\ARCHIVE\BACKUPT001S00002.ARC

ORA-00280: ?? 424125 ???? 1 ???? # 2 ???

ORA-00278: ??????????? 'D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC'

⋯⋯⋯⋯⋯⋯⋯⋯..

已应用的日志。

完成介质恢复。${PageNumber}

shutdown immedate,恢复全部数据文件(不包括control和redo)

(把热备的数据文件拷贝回来,不包括control和redo)

SQL> conn internal

SQL> shutdown immediate;

复制全部热备的数据文件过来(完全恢复成功!)

mount数据库

SQL> startup mount

完全恢复数据库

SQL> recover database;

ORA-00279: change 424112 generated at 10/20/2002 20:40:52 needed for thread 1

ORA-00289: suggestion : D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC

ORA-00280: change 424112 for thread 1 is in sequence #1

Specify log: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: change 424125 generated at 10/20/2002 20:44:14 needed for thread 1

ORA-00289: suggestion : D:\BACKUPDB\ARCHIVE\BACKUPT001S00002.ARC

ORA-00280: change 424125 for thread 1 is in sequence #2

ORA-00278: log file 'D:\BACKUPDB\ARCHIVE\BACKUPT001S00001.ARC' no longer needed

for this recovery

⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..

Log applied.

Media recovery complete.

打开数据库

SQL> alter database open;

验证恢复结果:完全恢复

SQL> conn lunar/lunar

SQL> select * from test1;

完全恢复成功!

说明:

1. 复制全部热备的数据文件过来

2. mount数据库

3. 完全恢复数据库

4. 打开数据库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值