【问题标题】:How to completely restore Oracle DB using RMAN如何使用 RMAN 完全恢复 Oracle DB
【发布时间】:2021-03-14 23:22:53
【问题描述】:

我有一个 oracle 19C 数据库,需要升级以用于测试应用程序。在我运行数据库升级脚本之前,我使用 RMAN 通过以下步骤进行备份:

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
BACKUP DATABASE PLUS ARCHIVELOG;

这是输出:

piece handle=C:\USERS\ADMINISTRATOR\DOWNLOADS\WINDOWS.X64_193000_DB_HOME\DATABASE\04VFR0AS_1_1   
tag=TAG20201118T115123 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 18-NOV-20

现在我想恢复我的备份,因为升级不成功,我使用了这些命令:

shutdown immediate;
startup mount;
restore database;
recover database;
alter database open;

还原和恢复过程均已成功完成,但我认为数据库并未完全还原到备份前的先前状态。例如,一些来自失败升级脚本的新创建的表和更改的表空间等仍然存在。如何将我的数据库恢复到尝试升级之前的状态?我希望所有新表对表空间、设置等的任何新更改都重置为以前的状态。我做错了什么?

【问题讨论】:

    标签: database oracle restore oracle19c rman


    【解决方案1】:

    您正在执行完整的还原和恢复,这将包括最新的存档日志,因此您最终将处于原来的位置。您想要做的是数据库时间点恢复https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/user-managed-flashback-dbpitr.html#GUID-2BF2BE5E-3D1B-4F0C-9F10-25D5342F6DB3。本质上,您需要使用recover 语句的until 子句。

    【讨论】:

      【解决方案2】:
      rman> shutdown immediate;
      rman> startup mount;
      rman> restore database;
      rman> run {
      set until SCN <specify_your_desired_SCN_here>;
      recover database;}
      rman> alter database open resetlogs;
      

      注意:要获取SCN,运行rman>list backup of database;

      【讨论】:

        猜你喜欢
        • 2013-05-29
        • 2012-07-29
        • 2020-02-25
        • 2011-01-13
        • 2020-02-25
        • 2014-07-15
        • 1970-01-01
        • 2020-03-15
        • 2010-09-09
        相关资源
        最近更新 更多