`
chengyue2007
  • 浏览: 1488696 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

rman本库恢复性测试

 
阅读更多

在实际工作当中,有很多数据库是使用的unix平台,但又没有多余的相同平台的服务器做rman恢复性测试,rman备份是否可用就成了难题,但rman提供了相应的测试命令,可以在不损坏当前库的前提下验证数据库是否可用。
命令很简单,首先用preview字句来模拟需要什么备份

RMAN> run{
set until time “to_date(’2013-03-10:15:26:00′,’yyyy-dd-mm:hh24:mi:ss’)”;
restore database preview;
}

此命令只是让rman告诉你需要哪些文件来完成restore
然后用validate验证备份是否可用

RMAN> run{
set until time “to_date(’2013-03-10:15:26:00′,’yyyy-dd-mm:hh24:mi:ss’)”;
restore database validate;
}

上面命令会使用备份集来模拟restore过程,检查rman备份集是否有坏块,validate关键字还可以模拟archivedlog的resotre

RMAN> run
{
allocate channel c1 type disk;
restore archivelog from sequence xxx until sequence yyy validate;
}

下面做一个小实验验证

[oracle@rac1 ~]$ rman target /

Recovery Manager: Release 11.2.0.3.0 – Production on Sun Mar 10 15:21:43 2013

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: RACDB (DBID=794291024)

RMAN> backup check logical datafile 1;

Starting backup at 2013-03-10 15:23:05
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=142 instance=racdb1 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/racdb/datafile/system.259.796674269
channel ORA_DISK_1: starting piece 1 at 2013-03-10 15:24:03
channel ORA_DISK_1: finished piece 1 at 2013-03-10 15:25:13
piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1 tag=TAG20130310T152347 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:10
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 2013-03-10 15:25:22
channel ORA_DISK_1: finished piece 1 at 2013-03-10 15:25:25
piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/08o46cap_1_1 tag=TAG20130310T152347 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 2013-03-10 15:25:25

这里为了节省时间只备份一个数据文件

RMAN> run{
set until time “to_date(’2013-03-10:15:26:00′,’yyyy-dd-mm:hh24:mi:ss’)”;
restore datafile 1 preview;
}2> 3> 4>

executing command: SET until clause

Starting restore at 2013-03-10 15:30:15
using channel ORA_DISK_1

List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— ——————-
2 Full 588.20M DISK 00:01:14 2013-03-10 15:25:08
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20130310T152347
Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1
List of Datafiles in backup set 2
File LV Type Ckp SCN Ckp Time Name
—- — —- ———- ——————- —-
1 Full 1205371 2013-03-10 15:24:09 +DATA/racdb/datafile/system.259.796674269

archived logs generated after SCN 1205371 not found in repository
Media recovery start SCN is 1205371
Recovery must be done beyond SCN 1205371 to clear datafile fuzziness
Finished restore at 2013-03-10 15:32:20

可以看到用的rman备份文件为/u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1

[grid@rac1 dbs]$ du -sh *
18M 06o462ob_1_1
589M 07o46c8c_1_1
18M 08o46cap_1_1

RMAN> run{
allocate channel c1 type disk;
set until time “to_date(’2013-03-10:15:26:00′,’yyyy-dd-mm:hh24:mi:ss’)”;
restore datafile 1 validate;
}2> 3> 4> 5>

allocated channel: c1
channel c1: SID=14 instance=racdb1 device type=DISK

executing command: SET until clause

Starting restore at 2013-03-10 15:34:32
using channel ORA_DISK_1

channel ORA_DISK_1: starting validation of datafile backup set
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1
channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1 tag=TAG20130310T152347
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: validation complete, elapsed time: 00:03:15
Finished restore at 2013-03-10 15:38:15

上面输出证明此备份集是可用的,用dd命令模拟破坏rman备份

[root@rac1 ~]# dd if=/dev/zero of=/u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1 bs=1024 count=10 skip=51200
10+0 records in
10+0 records out
10240 bytes (10 kB) copied, 0.00018 seconds, 56.9 MB/s

下面验证preview和validate的结果

RMAN> run{
set until time “to_date(’2013-03-10:15:26:00′,’yyyy-dd-mm:hh24:mi:ss’)”;
restore datafile 1 preview;
}2> 3> 4>

executing command: SET until clause

Starting restore at 2013-03-10 15:42:06
using channel ORA_DISK_1

List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— ——————-
2 Full 588.20M DISK 00:01:14 2013-03-10 15:25:08
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20130310T152347
Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1
List of Datafiles in backup set 2
File LV Type Ckp SCN Ckp Time Name
—- — —- ———- ——————- —-
1 Full 1205371 2013-03-10 15:24:09 +DATA/racdb/datafile/system.259.796674269

archived logs generated after SCN 1205371 not found in repository
Media recovery start SCN is 1205371
Recovery must be done beyond SCN 1205371 to clear datafile fuzziness
Finished restore at 2013-03-10 15:42:21

RMAN>
RMAN> run{
allocate channel c1 type disk;
set until time “to_date(’2013-03-10:15:25:00′,’yyyy-dd-mm:hh24:mi:ss’)”;
restore datafile 1 validate;
}
2> 3> 4> 5>

allocated channel: c1
channel c1: SID=79 instance=racdb1 device type=DISK

executing command: SET until clause

Starting restore at 2013-03-10 15:43:27
using channel ORA_DISK_1

channel ORA_DISK_1: starting validation of datafile backup set
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1
channel ORA_DISK_1: ORA-19870: error while restoring backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1
ORA-19505: failed to identify file “/u01/app/oracle/product/11.2.0/db_1/dbs/07o46c8c_1_1″
ORA-27048: skgfifi: file header information is invalid

Additional information: 23

failover to previous backup

datafile 1 will be created automatically during restore operation
Finished restore at 2013-03-10 15:44:26

rman备份文件损坏,validate检查出备份不可用,preview只是从控制文件中检查用哪些备份,但不做检查。

小结:在没有测试环境的情况下,用以上命令可以检查备份情况,但最好还是完善数据库环境,实际演练rman恢复。

分享到:
评论

相关推荐

    完整Oracle rman备份恢复成功案例

    Oracle RMAN 备份恢复成功案例 Oracle RMAN(Recovery Manager)是一款强大的数据库备份恢复工具,能够保护数据库免受灾难影响,...但是,需要注意 RMAN 库的安全性,定期执行备份和恢复测试,确保备份数据的完整性。

    rman异构恢复.zip

    通过实践和模拟实验,你可以更好地掌握RMAN的用法,理解如何在不同的环境下有效地保护和恢复数据,确保业务连续性。这不仅涉及到备份脚本的编写,还包括了解备份策略、恢复步骤以及在复杂环境中的应用,比如RAC和...

    rac rman异机恢复

    通过以上步骤,可以从一个RAC环境中将备份恢复到单机环境中,这一过程对于灾难恢复、测试环境搭建等场景极为有用。在整个过程中需要注意的是,每一步都需要严格按照顺序进行,并且确保所有的配置都正确无误,这样...

    基于RMAN的Oracle数据库备份与恢复机制.pdf

    Oracle Recovery Manager(RMAN)是Oracle公司提供的一种专门备份工具,能够实现数据库定制备份、自动备份等功能,简化了备份和恢复操作,降低了手工备份的复杂性和风险,提高了备份操作的可靠性和可恢复性。...

    RMAN测试演练即讲解

    Oracle数据库的备份是确保数据安全的关键环节,物理备份与逻辑备份是其中的两种主要方法。RMAN(Recovery Manager)是Oracle数据库提供的...在实际使用中,务必遵循最佳实践,定期进行备份测试以验证恢复流程的有效性。

    ORACLE rman备份与恢复

    通过RMAN备份与恢复的测试,我们可以验证备份策略的有效性,确保在实际灾难情况下能够快速恢复数据库服务。测试涵盖了从备份配置、备份执行、到不同情况下的恢复步骤,全面评估了RMAN的功能和性能。 在实际操作中...

    Oracle RMAN异机不完全恢复

    本实验模拟了一种场景,在主机A上误删除了一个名为`test`的数据表,需要借助于RMAN工具在另一台机器B上完成对该表的不完全恢复。 #### 实验目的 本实验的主要目的是展示如何使用Oracle RMAN工具实现跨机器的不完全...

    rman异机恢复实践全图解析(PDF)

    7. **测试和验证**:完成恢复后,进行必要的测试以验证数据库的完整性和功能,确保所有业务应用可以正常运行。 异机恢复是一个复杂的过程,涉及到多个步骤和组件,需要谨慎处理以避免数据丢失。熟悉RMAN命令和恢复...

    RMAN 最权威的rman官方文档

    - **定期测试备份**:确保备份文件的有效性和完整性。 - **自动化脚本**:编写自动化脚本来执行常规任务,如定期备份等。 - **监控与报告**:建立监控机制,定期检查备份状态,并生成报告。 - **文档记录**:详细...

    RMAN - Getting Started

    7. **数据库克隆**:RMAN可用来创建数据库的物理或逻辑副本,用于测试或开发环境。 ### 开始使用RMAN 1. **安装与配置**:在Oracle环境中,RMAN是默认安装的。首次使用时,需要配置目标数据库连接信息和备份目的地...

    《Oracle datapump、exp和RMAN的对比测试报告》V2.0

    - **RMAN**作为全库备份的首选工具,提供了丰富的备份策略和高级功能,适用于需要高度可靠性和灵活性的场景。 综上所述,根据不同的业务需求和性能要求,可以选择最合适的工具来实现高效的数据备份和迁移。

    ORACLE 10G2 RMAN手册

    在任何数据驱动的业务环境中,数据的安全性和可恢复性都是至关重要的。RMAN为数据库管理员提供了高效且可靠的解决方案,确保在系统故障或数据丢失时能迅速恢复业务。 RMAN的主要功能包括: 1. **全库备份与部分...

    Oracle RMAN DUPLICATE教程

    通过 RMAN Duplicate,用户可以在不中断生产环境的情况下创建用于测试、开发或灾难恢复目的的数据库副本。 在 **Oracle 11g R2** 版本中,提供了两种主要的方式来创建 Duplicate Database: 1. **Active Database ...

    oracle 数据库rman备份恢复

    5. **恢复策略**:制定合适的恢复策略,如定期进行测试性恢复,确保在发生数据丢失时能够快速恢复业务。 通过上述内容的介绍,我们可以看到Oracle RMAN的强大功能及其在备份恢复过程中的重要作用。对于DBA来说,...

    rman的概述及其体系结构

    3. **恢复功能**:RMAN不仅能够执行标准的恢复操作,还支持克隆数据库和创建备用数据库,这在灾难恢复或测试环境中非常有用。它还可以进行镜像备份和备份集的创建,便于在磁盘和磁带上进行备份。 4. **检查和修复**...

    rman实践指南 for oracle

    RMAN的`CONFIGURE CONTROLFILE AUTOBACKUP ON`命令使得每次备份时都会自动备份控制文件,这有助于在恢复过程中确保控制文件的可用性。同时,RMAN也会在备份数据文件时自动备份spfile,这是Oracle数据库的参数文件,...

    Rman Recipes for Oracle Database 11g

    - **最佳实践**:提供了RMAN使用的最佳实践,包括如何制定合理的备份策略、如何测试恢复计划的有效性等。 - **常见问题解答**:收集并解答了RMAN使用过程中常见的问题,帮助读者避免常见的错误和陷阱。 ### 6. 作者...

    rman备份还原亲测成功

    在Oracle数据库管理中,RMAN(Recovery Manager)是一个强大的工具,主要用于数据库的备份与恢复操作。本教程基于Oracle 11g R2...记得定期测试备份的完整性和有效性,以确保在真正需要时能够迅速、准确地恢复数据库。

Global site tag (gtag.js) - Google Analytics