`
sony-soft
  • 浏览: 1105091 次
文章分类
社区版块
存档分类
最新评论

不完全恢复之--基于时间恢复

 
阅读更多

探索ORACLE不完全恢复之--基于时间恢复

作者:吴伟龙 Name:Prodence Woo

QQ:286507175 msn:hapy-wuweilong@hotmail.com



基于时间(time)恢复

基于时间的恢复将数据库恢复到备份点与失败点之间的某个时间点。基于时间的恢复不仅在介质失败的时候使用,也可以在数据库正常运行的时候使用。例如:某个用户误删除了某个表的数据,这个时候我们可以通过基于时间的恢复来将删除的数据恢复出来,示例如下:

1、查看当前用户下的表,只有一张WWL001

21:07:31 SQL> select * from tab;

TNAME TABTYPE CLUSTERID

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

WWL001 TABLE

Elapsed: 00:00:00.06

我们通过WWL001来创建WWL002-WWL005 共四张表用来测试不完全恢复

21:08:28 SQL> create table wwl002 asselect * from wwl001;

Table created.

Elapsed: 00:00:00.17

21:08:55 SQL> create table wwl003 asselect * from wwl001;

Table created.

Elapsed: 00:00:00.04

21:09:00 SQL> create table wwl004 asselect * from wwl001;

Table created.

Elapsed: 00:00:00.03

21:09:06 SQL> create table wwl005 asselect * from wwl001;

Table created.

Elapsed: 00:00:00.05

如上表已经创建完成

2、我们在21:13:13开始删除表(请注意时间)

21:13:13 SQL> drop table wwl002 purge;

Table dropped.

Elapsed: 00:00:00.16

21:13:28 SQL> drop table wwl003 purge;

Table dropped.

Elapsed: 00:00:00.11

21:13:34 SQL> truncate table wwl004;

Table truncated.

Elapsed: 00:00:00.32

21:13:44 SQL> truncate table wwl005;

Table truncated.

Elapsed: 00:00:00.07

21:13:47 SQL>

因为我们是要做基于时间的恢复,那么我们只有将数据库恢复到21:13:13之前的这个时间段,才能把我们刚才创建的表找回来。

3、开始执行恢复,先将数据库启动到mount状态

21:14:40 SQL> conn / as sysdba

Connected.

21:14:44 SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

21:15:20 SQL> startup mount;

ORACLE instance started.

Total System Global Area 100663296 bytes

Fixed Size 1217884 bytes

Variable Size 88083108 bytes

Database Buffers 8388608 bytes

Redo Buffers 2973696 bytes

Database mounted.

21:15:46 SQL> e

4、开始执行restore到备份数据库的当前状态:

RMAN> restore database;

Starting restore at 12-JUL-12

using target database control file insteadof recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=47 devtype=DISK

channel ORA_DISK_1: starting datafilebackupset restore

channel ORA_DISK_1: specifying datafile(s)to restore from backup set

restoring datafile 00001 to/DBBak2/oradata/WWL/system01.dbf

restoring datafile 00002 to/DBBak2/oradata/WWL/undotbs01.dbf

restoring datafile 00003 to/DBBak2/oradata/WWL/sysaux01.dbf

restoring datafile 00004 to/DBBak2/oradata/WWL/users01.dbf

restoring datafile 00005 to/DBBak2/oradata/WWL/wwl01.dbf

restoring datafile 00006 to/DBBak2/oradata/WWL/wwl02.dbf

restoring datafile 00007 to/DBBak2/oradata/WWL/wwl03.dbf

channel ORA_DISK_1: reading from backuppiece /DBSoft/product/10.2.0/db_1/dbs/01nft4mu_1_1

channel ORA_DISK_1: restored backup piece1

piecehandle=/DBSoft/product/10.2.0/db_1/dbs/01nft4mu_1_1 tag=TAG20120712T095437

channel ORA_DISK_1: restore complete,elapsed time: 00:01:35

Finished restore at 12-JUL-12

RMAN> exit

5、执行基于时间点的恢复:

21:27:54 SQL> recover database untiltime ‘YYYY-mm-dd hh24:mi:ss’

21:27:54 SQL> recover database untiltime '2012-07-12 21:10:00';

ORA-00279: change 1436429 generated at07/12/2012 09:54:38 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_3_788372282.dbf

ORA-00280: change 1436429 for thread 1 isin sequence #3

21:30:09 Specify log:{<RET>=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: change 1440657 generated at 07/12/201214:00:52 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788450452.dbf

ORA-00280: change 1440657 for thread 1 isin sequence #1

ORA-00279: change 1440855 generated at07/12/2012 15:08:58 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788454538.dbf

ORA-00280: change 1440855 for thread 1 isin sequence #1

ORA-00279: change 1441316 generated at07/12/2012 15:19:50 needed for thread 1

ORA-00289: suggestion : /DBSoft/product/10.2.0/db_1/dbs/arch1_1_788455190.dbf

ORA-00280: change 1441316 for thread 1 isin sequence #1

ORA-00279: change 1442275 generated at07/12/2012 15:52:01 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788457121.dbf

ORA-00280: change 1442275 for thread 1 isin sequence #1

ORA-00279: change 1442953 generated at07/12/2012 16:25:06 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788459106.dbf

ORA-00280: change 1442953 for thread 1 is insequence #1

ORA-00279: change 1462958 generated at07/12/2012 16:28:16 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_2_788459106.dbf

ORA-00280: change 1462958 for thread 1 isin sequence #2

ORA-00278: log file '/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788459106.dbf'no longer needed for this recovery

ORA-00279: change 1462963 generated at07/12/2012 17:17:59 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788462279.dbf

ORA-00280: change 1462963 for thread 1 isin sequence #1

ORA-00279: change 1483784 generated at07/12/2012 17:54:25 needed for thread 1

ORA-00289: suggestion :/DBSoft/product/10.2.0/db_1/dbs/arch1_2_788462279.dbf

ORA-00280: change 1483784 for thread 1 isin sequence #2

ORA-00278: log file'/DBSoft/product/10.2.0/db_1/dbs/arch1_1_788462279.dbf' no longer needed forthis recovery

Log applied.

Media recovery complete.

21:30:29 SQL>

至此已经恢复完成。

6、因为做了不完全恢复,必须要做restlogs打开数据库。

21:30:29 SQL> alter database open restlogs;

alter database open restlogs

7、数据已经恢复完成,数据都回来了。

21:34:04 SQL> select * from wwl002;

ID NAME

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

1 wwl

2 prodence

3 woo

4 xgx

5 cms

Elapsed: 00:00:00.01

21:34:16 SQL> select * from wwl003;

ID NAME

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

1 wwl

2 prodence

3 woo

4 xgx

5 cms

Elapsed: 00:00:00.00

21:34:18 SQL> select * from wwl004;

ID NAME

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

1 wwl

2 prodence

3 woo

4 xgx

5 cms

Elapsed: 00:00:00.01

21:34:20 SQL> select * from wwl005;

ID NAME

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

1 wwl

2 prodence

3 woo

4 xgx

5 cms

Elapsed: 00:00:00.01

21:34:22 SQL>

分享到:
评论

相关推荐

    Oracle RMAN异机不完全恢复

    ### Oracle RMAN 异机不完全恢复 #### 实验背景 在实际的数据库管理工作中,可能会遇到因误操作导致的数据丢失或损坏的情况。在这种情况下,如何有效地利用备份数据完成数据库的恢复工作至关重要。本实验模拟了一...

    oracle数据库不完全恢复

    Oracle数据库的不完全恢复是一种特殊的...在进行基于用户管理的不完全恢复时,步骤包括关闭并备份数据库,恢复所有数据文件,但不恢复控制文件、重做日志、口令文件或参数文件,然后挂载数据库并进行数据文件的恢复。

    Oracle 12c备份恢复-RMAN工具技术手册

    Oracle 12c 备份恢复-RMAN 工具技术手册 本文档旨在提供 Oracle 12c 备份恢复的技术手册,主要介绍 RMAN 工具的概念、架构、备份类型和使用方法。 一、RMAN 概念 RMAN(Recovery Manager)是 Oracle 推荐的备份和...

    oracle 备份&恢复案例

    - 不完全介质恢复:在无法进行完全恢复或不需要完全恢复时使用,包括基于撤销、基于时间和基于修改的恢复。基于撤销的恢复允许DBA控制恢复到某个特定操作前的状态;基于时间和基于修改的恢复则允许恢复到特定的时间...

    oracle数据库恢复方案.pdf

    - **基于时间点的不完全恢复**:恢复到特定的时间点,需要先准备好相应的时间点信息,然后通过RMAN进行恢复。 **高级篇**涉及更复杂的恢复场景,如异机恢复和在线数据块恢复。 - **异机同目录恢复**:在新的机器上...

    informix 备份与恢复

    - **事务级别的恢复**: 可以精确地选择哪些事务需要恢复,哪些不需要。 - **灾难恢复**: 在严重故障导致系统无法正常启动的情况下,需要进行灾难恢复。 #### 四、Ontape与Onbar的具体使用 根据提供的部分内容,...

    基于matlab与Simulink的N-QAM的载波和符号定时恢复设计与实现

    基于matlab与Simulink的N-QAM的载波和符号定时恢复设计与实现,该模型使用Farrow滤波器实现的分数采样延迟来创建符号速率定时恢复子系统。这与决策辅助载波恢复PLL相结合。对于测试,包括具有连续可变载波频率误差和...

    Oracle数据库恢复实例.pdf

    不完全恢复包括基于撤销、基于时间和基于修改的恢复。 - 基于撤销的恢复:在某些情况下,必须控制恢复,DBA可以撤销指定点的操作。当某些日志组因介质故障而受损,无法用于恢复过程时,就会使用此方法。 - 基于...

    基于SQL Server的数据库恢复技术.pdf

    "基于SQL Server的数据库恢复技术" 在数据库管理中,数据库恢复技术是一个关键的环节,对于SQL Server来说,恢复技术更是至关重要。SQL Server作为一种关系型数据库管理系统,具有广泛的应用领域,然而随着数据量的...

    Oracle10g备份与恢复手册.pdf

    - 对于不同类型的数据损坏,有不同的完全恢复方法可用。 4. **不完全介质恢复** - 当完全介质恢复不可能或不需要时进行。 - 重构受损数据库,使其恢复到介质故障或用户错误之前的一个事务一致性状态。 - 不完全...

    Oracle数据库10g的备份与恢复特性-恢复管理器与闪回.pptx

    除此之外,RMAN还引入了其他增强功能,例如备份压缩,自动恢复损坏或丢失的备份,表空间时间点恢复,自动频道故障切换,以及基于备份节流的时间窗口等。这些改进使得数据库的备份和恢复过程更加全面、自动和可靠。 ...

    浅谈SQL Server中的事务日志(四)----在完整恢复模式下日志的角色.docx

    在该模式下,事务日志不仅仅用于确保事务的ACID属性,更重要的是能够支持数据恢复到日志记录范围内的任意时间点,这极大地减少了数据丢失的风险。 #### 完整恢复模式下的日志管理 在简单恢复模式下,日志管理相对...

    oracle10g课堂练习II(2)

    完全恢复与不完全恢复 5-7 完全恢复过程 5-8 不完全恢复过程 5-9 需要不完全恢复的情况 5-11 不完全恢复的类型 5-12 执行用户管理的不完全恢复 5-14 用户管理的基于时间的恢复:示例 5-16 用户管理的基于取消...

    ORACLE RMAN备份&恢复

    - **不完全介质恢复**:在完全恢复不可行或不需要时使用。它包括基于撤销、基于时间和基于修改的恢复。 - **基于撤销恢复**:在某些情况下,恢复需要被控制,以撤销指定点后的操作。当无法使用某些日志组进行恢复...

    12c rman 恢复表

    在Oracle 12c之前,当用户因为执行DROP、TRUNCATE等DDL操作而导致数据丢失时,通常采用以下几种方法进行数据恢复:数据库时间点不完全恢复、基于表空间的时间点恢复(TSPITR)以及闪回技术。这些方法虽然能够有效地...

    基于Oracle数据库的医院信息系统数据备份与恢复策略.pdf

    完全恢复能将数据库恢复到最新的状态,不丢失任何数据,而不完全恢复则将数据库恢复到某个时间点。恢复策略的选择取决于实际需求和已有的备份类型。 3. 数据备份策略 医院数据库的备份策略应考虑其高可用性和安全性...

    一汽大众诊断仪vas6150B恢复安装

    一汽大众诊断仪vas6150B的恢复安装涉及一系列详细步骤,这些步骤包括PC系统的恢复、软件的安装与配置,以及对诊断仪进行一致性测试确保...对于不熟悉计算机硬件和软件恢复流程的用户,建议在专业人员的指导下进行操作。

Global site tag (gtag.js) - Google Analytics