如何使用Oracle的恢复点快速恢复到全新数据库

摘要: 我们的目标是提供各种解决方案,通过提供数据库解决方案、自定义开发、动态数据中心、灵活计算,从而简化IT。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

适用对象: 

Oracle数据库—11gR2


问题: 


通常,在进行基准测试期间,需要先加载全新的数据库,然后才能开始新的运行。确保全新数据库正常运行的一个方法就是:在每次测试运行之前,重新创建整个数据库,但是根据数据库的大小,此方法可能会耗费很长时间或低效。


解决方案: 


本文介绍了如何使用Oracle的闪回功能,以快速将数据库恢复到运行工作负载之前就已存在的状态。更具体地说,本文介绍了如何使用“保证恢复点”。


恢复点: 

恢复点只不过是一个与时间辍或数据库SCN有关的名称而已。用户可以创建正常的恢复点或保证恢复点。二者之间的区别是:保证恢复点允许您闪回至恢复点,而无论DB_FLASHBACK_RETENTION_TARGET初始化参数是什么,即就是说,它始终可用(假定您的闪存恢复区域有足够的空间)。

 
SLN310475_en_US__1icon 提醒:本文中的闪回记录未打开。

保证恢复点:

前提条件:创建一个保证恢复点需要以下满足前提条件:
  • 用户必须具有SYSDBA系统权限
  • 必须已经创建闪存恢复区域
  • 数据库必须在ARCHIVELOG模式下

创建保证恢复点:

创建或迁移新数据库后,首先要创建保证恢复点,以便您可以在每次开始新的工作负载之前先闪回。步骤如下所示:
  1. $> su – oracle
  2. $> sqlplus / as sysdba;
  3. 查看 ARCHIVELOG 是否启用
    SQL> select log_mode from v$database;
    如果步骤 3 显示未启用 ARCHIVELOG,则继续,否则跳至下面的步骤 8。
  4. SQL> shutdown immediate;
  5. SQL> startup mount;
  6. SQL> alter database archivelog;
  7. SQL> alter database open;
  8. SQL> create restore point CLEAN_DB guarantee flashback database;
    其中,CLEAN_DB 是为保证恢复点提供的名称。
查看保证恢复点
SQL> select * from v$restore_point;

验证有关新创建的恢复点的信息。另外,记下 SCN# 以备参考,我们将其称为“参考 SCN#”


闪回保证恢复点

现在,为了将数据库恢复到保证恢复点,请执行以下步骤:
  1. $> su – oracle
  2. $> sqlplus / as sysdba;
  3. SQL> select current_scn from v$database;
  4. SQL> shutdown immediate;
  5. SQL> startup mount;
  6. SQL> select * from v$restore_point;
  7. SQL> flashback database to restore point CLEAN_DB;
  8. SQL> alter database open resetlogs;
  9. SQL> select current_scn from v$database;
将以上第9步中的SCN#与参考SCN#进行比较。

 
SLN310475_en_US__1icon 提醒:以上第 9 步中的 SCN# 不一定与参考 SCN# 完全相同,但是二者非常接近。

参考资料: 


文章属性
文章编号: 000146492
文章类型: Solution
上次修改时间: 21 2月 2021
版本:  3
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。