AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 211434
Accepted
Jack Douglas
Jack Douglas
Asked: 2018-07-06 04:34:31 +0800 CST2018-07-06 04:34:31 +0800 CST 2018-07-06 04:34:31 +0800 CST

为什么在不考虑冗余的情况下将先前版本的备份标记为过时?

  • 772

在不完全恢复并打开 9i 数据库后,resetlogs我们运行了一个成功完成的完整备份。备份包含一个命令,用于在完成后删除过时的备份:

delete noprompt obsolete device type sbt;

RMAN 配置为使用 REDUNDANCY 2:

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

然而,旧版本的所有备份都立即标记为过时并删除,而不考虑冗余。

  1. 如果我们有一个RECOVERY WINDOW配置而不是,这种行为会有所不同REDUNDANCY 2吗?
  2. 这种行为在更高版本的 Oracle 中是否相同?

编辑:添加的输出LIST INCARNATION:

RMAN> list incarnation;

List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            CUR Reset SCN      Reset Time
------- ------- -------- ---------------- --- -------------- ----------
1       1       LIVE     3494832994       NO  1              19-JAN-04
2       2       LIVE     3494832994       NO  11966702870498 01-JAN-14
3       3       LIVE     3494832994       YES 12041003378277 04-JUL-18
oracle rman
  • 2 2 个回答
  • 1446 Views

2 个回答

  • Voted
  1. Best Answer
    John K. N.
    2018-07-06T05:30:45+08:002018-07-06T05:30:45+08:00

    对于感兴趣的 RMAN 初学者

    RMAN 策略REDUNDANCY和RECOVERY WINDOW是互斥的。这意味着您可以设置一个或另一个。

    冗余策略

    设置REDUNDANCY 2将始终仅保留最后两个备份并删除(或标记为过时)任何其他以前的备份,这些备份不再需要使数据库恢复到一致状态。

    注意:
    如果在 FULL 和/或 LEVEL 0 备份之间有 LEVEL 1 和 ARCHIVELOG 备份,则应保留它们直到不再需要。

    附加信息

    根据 PDF 文件Oracle 数据库 - 备份和恢复参考,您的保留策略REDUNDANCY 2不应该删除旧备份:

    以下场景说明了冗余在增量备份策略中的工作原理。假设冗余级别为 1。周一中午运行 0 级数据库备份,周二和周三中午运行 1 级累积备份,周四中午运行 0 级备份。每次每日备份后立即运行DELETE OBSOLETE. 周三DELETE命令不会删除周二的 1 级备份,因为此备份不是冗余的:周二的 1 级备份可用于将周一的 0 级备份恢复到周二中午和周三中午之间的时间。但是,DELETE周四的命令会删除之前的 0 级和 1 级备份。

    上面的示例使用值 1,但清楚地表明完整备份的早期备份不会被删除,直到它们大于配置的值。

    回答您的问题

    1. 这取决于,....(参见 2. 和“可能的问题”)

    2. 根据文档retention policy,所有版本的设置似乎仍然相同:

      • Oracle 11c (11.1):配置
      • Oracle 11c (11.2):配置
      • Oracle 12c (12.1):配置
      • Oracle 12c (12.2):配置
      • Oracle 18c (18.x):配置

    可能的问题

    • 您在数据库实例的备份和恢复过程中遇到了错误。

    使用 Oracle 12c 进行复制

    因为 Oracle RDBMS 9i 几乎已经过时并且我们的环境几乎是最新的,所以我只能在 12c 环境中重新迭代/重现这些步骤。

    RMAN 配置

    RMAN 使用默认设置:

    RMAN> 全部显示;
    
    具有 db_unique_name ORACLE12JN 的数据库的 RMAN 配置参数是:
    将保留政策配置为冗余 2;
    配置备份优化关闭;# 默认
    将默认设备类型配置到磁盘;# 默认
    配置控制文件自动备份;# 默认
    将设备类型磁盘的控制文件自动备份格式配置为“%F”;# 默认
    配置设备类型磁盘并行 1 备份类型到备份;# 默认
    将设备类型磁盘的数据文件备份副本配置为 1;# 默认
    将设备类型磁盘的存档日志备份副本配置为 1;# 默认
    将 MAXSETSIZE 配置为无限;# 默认
    为数据库关闭配置加密;# 默认
    配置加密算法“AES128”;# 默认
    配置压缩算法“基本”作为发布“默认”优化负载真;# 默认
    配置 RMAN 输出保持 7 天;# 默认
    将归档日志删除策略配置为无;# 默认
    将快照控制文件名称配置为“C:\ORACLE_12\PRODUCT\12.2.0\DBHOME_1\DATABASE\SNCFORACLE12JN.ORA”;# 默认
    

    RMAN 备份

    通过发出一个简单的backup database;命令来执行 RMAN 备份:

    RMAN> 备份数据库;
    
    2018 年 7 月 17 日开始备份
    使用通道 ORA_DISK_1
    通道 ORA_DISK_1:开始完整的数据文件备份集
    通道 ORA_DISK_1:指定备份集中的数据文件
    输入数据文件文件号=00001 名称=C:\ORACLE_12\ORADATA\ORACLE12JN\SYSTEM01.DBF
    输入数据文件文件号=00005 名称=C:\ORACLE_12\ORADATA\ORACLE12JN\UNDOTBS01.DBF
    输入数据文件文件号=00003 名称=C:\ORACLE_12\ORADATA\ORACLE12JN\SYSAUX01.DBF
    输入数据文件文件号=00007 名称=C:\ORACLE_12\ORADATA\ORACLE12JN\USERS01.DBF
    通道 ORA_DISK_1:18 年 7 月 17 日开始的第 1 块
    通道 ORA_DISK_1:18 年 7 月 17 日完成的第 1 件
    件句柄=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T151608_FNVV0RH4_.BKP tag=TAG20180717T151608 注释=NONE
    通道 ORA_DISK_1:备份集完成,经过时间:00:00:15
    2018 年 7 月 17 日完成备份
    
    2018 年 7 月 17 日开始控制文件和 SPFILE 自动备份
    件句柄=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\AUTOBACKUP\2018_07_17\O1_MF_S_981731783_FNVV17QR_.BKP 注释=NONE
    2018 年 7 月 17 日完成控制文件和 SPFILE 自动备份
    

    验证备份、检查过时的备份和列出化身

    在执行了一段时间的备份后,我再次检查了 RMAN 目录:

    RMAN> 列出备份摘要;
    
    
    备份列表
    ================
    密钥 TY LV S 设备类型 完成时间 #Pieces #Copies 压缩标签
    ------- -- -- - ----------- ------- -------- - ------ ---------- ---
    3 BFA 磁盘 2018-07-16 10:03:01 1 1 无标签20180716T100301
    5 BFA 磁盘 2018-07-16 10:27:44 1 1 无标签20180716T102744
    7 BFA 磁盘 2018-07-16 10:49:50 1 1 无标签20180716T104950
    9 BFA 磁盘 2018-07-16 10:50:08 1 1 无标签20180716T105007
    11 BFA 磁盘 2018-07-16 10:50:22 1 1 无标签20180716T105022
    13 BFA 磁盘 2018-07-16 10:51:21 1 1 无标签20180716T105121
    15 BFA 磁盘 2018-07-16 13:06:13 1 1 无标签20180716T130612
    17 BFA 磁盘 2018-07-16 15:26:23 1 1 无标签20180716T152623
    19 BFA 磁盘 2018-07-16 15:57:07 1 1 无标签20180716T155707
    20 B 0 A 磁盘 2018-07-17 08:22:01 1 1 无标签20180717T082154
    21 BFA 磁盘 2018-07-17 08:22:02 1 1 无标签20180717T082202
    22 B 0 A 磁盘 2018-07-17 14:36:07 1 1 无标签20180717T143558
    23 BFA 磁盘 2018-07-17 14:36:14 1 1 无标签20180717T143614
    24 BFA 磁盘 2018-07-17 15:16:15 1 1 无标签20180717T151608
    25 BFA 磁盘 2018-07-17 15:16:23 1 1 无标签20180717T151623
    26 BAA 磁盘 2018-07-17 15:55:52 1 1 无标签20180717T155551
    27 BFA 磁盘 2018-07-17 15:55:53 1 1 无标签20180717T155553
    28 BFA 磁盘 2018-07-17 16:05:17 1 1 无标签20180717T160517
    

    验证周围没有过时的备份:

    RMAN> 报告过时;
    
    RMAN 保留策略将应用于命令
    RMAN 保留策略设置为冗余 2
    未找到过时的备份
    
    RMAN>
    

    并列出了当前的化身:

    RMAN> 列表化身;
    
    
    数据库化身列表
    DB Key Inc Key DB 名称 DB ID STATUS Reset SCN Reset Time
    -------- ------- -------- ---- --- --------- - ----------
    1 1 ORACLE12 2083073378 家长 1 2017-03-08 15:57:31
    2 2 ORACLE12 2083073378 当前 1490582 2018-07-16 09:27:03
    

    执行首次还原/恢复

    发出以下命令以将数据库恢复/恢复到一致状态:

    RMAN> 立即关闭
    
    数据库关闭
    数据库已卸载
    Oracle 实例关闭
    
    RMAN> 启动挂载;
    
    连接到目标数据库(未启动)
    Oracle 实例已启动
    数据库挂载
    
    总系统全局区域 1610612736 字节
    
    固定大小 8747368 字节
    可变大小 385877656 字节
    数据库缓冲区 1207959552 字节
    重做缓冲区 8028160 字节
    
    RMAN> 运行
    2> {
    3> 设置到时间'2018-07-17 14:36:14';
    4> 恢复数据库;
    5> 恢复数据库;
    6>}
    
    执行命令:SET until 子句
    
    2018-07-17 16:04:30 开始恢复
    分配通道:ORA_DISK_1
    通道 ORA_DISK_1:SID=12 设备类型=DISK
    
    通道 ORA_DISK_1:开始数据文件备份集恢复
    通道 ORA_DISK_1:指定要从备份集中恢复的数据文件
    通道 ORA_DISK_1:将数据文件 00001 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\SYSTEM01.DBF
    通道 ORA_DISK_1:将数据文件 00003 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\SYSAUX01.DBF
    通道 ORA_DISK_1:将数据文件 00005 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\UNDOTBS01.DBF
    通道 ORA_DISK_1:将数据文件 00007 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\USERS01.DBF
    通道 ORA_DISK_1:从备份片 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T143558_FNVROH49_.BKP 读取
    通道 ORA_DISK_1: 块句柄=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T143558_FNVROH49_.BKP tag=TAG20180717T143558
    通道 ORA_DISK_1:恢复的备份片 1
    通道 ORA_DISK_1:恢复完成,经过时间:00:00:07
    2018-07-17 16:04:38 完成恢复
    
    2018-07-17 16:04:38 开始恢复
    使用通道 ORA_DISK_1
    
    开始媒体恢复
    媒体恢复完成,经过时间:00:00:00
    
    2018-07-17 16:04:39 完成恢复
    
    RMAN> 改变数据库打开重置日志;
    
    已处理报表
    
    RMAN> 列表化身;
    
    
    数据库化身列表
    DB Key Inc Key DB 名称 DB ID STATUS Reset SCN Reset Time
    -------- ------- -------- ---- --- --------- - ----------
    1 1 ORACLE12 2083073378 家长 1 2017-03-08 15:57:31
    2 2 ORACLE12 2083073378 父 1490582 2018-07-16 09:27:03
    3 3 ORACLE12 2083073378 当前 1701490 2018-07-17 16:05:13
    
    RMAN> 列出备份摘要;
    
    
    备份列表
    ================
    密钥 TY LV S 设备类型 完成时间 #Pieces #Copies 压缩标签
    ------- -- -- - ----------- ------- -------- - ------ ---------- ---
    3 BFA 磁盘 2018-07-16 10:03:01 1 1 无标签20180716T100301
    5 BFA 磁盘 2018-07-16 10:27:44 1 1 无标签20180716T102744
    7 BFA 磁盘 2018-07-16 10:49:50 1 1 无标签20180716T104950
    9 BFA 磁盘 2018-07-16 10:50:08 1 1 无标签20180716T105007
    11 BFA 磁盘 2018-07-16 10:50:22 1 1 无标签20180716T105022
    13 BFA 磁盘 2018-07-16 10:51:21 1 1 无标签20180716T105121
    15 BFA 磁盘 2018-07-16 13:06:13 1 1 无标签20180716T130612
    17 BFA 磁盘 2018-07-16 15:26:23 1 1 无标签20180716T152623
    19 BFA 磁盘 2018-07-16 15:57:07 1 1 无标签20180716T155707
    20 B 0 A 磁盘 2018-07-17 08:22:01 1 1 无标签20180717T082154
    21 BFA 磁盘 2018-07-17 08:22:02 1 1 无标签20180717T082202
    22 B 0 A 磁盘 2018-07-17 14:36:07 1 1 无标签20180717T143558
    23 BFA 磁盘 2018-07-17 14:36:14 1 1 无标签20180717T143614
    24 BFA 磁盘 2018-07-17 15:16:15 1 1 无标签20180717T151608
    25 BFA 磁盘 2018-07-17 15:16:23 1 1 无标签20180717T151623
    26 BAA 磁盘 2018-07-17 15:55:52 1 1 无标签20180717T155551
    27 BFA 磁盘 2018-07-17 15:55:53 1 1 无标签20180717T155553
    28 BFA 磁盘 2018-07-17 16:05:17 1 1 无标签20180717T160517
    
    RMAN> 报告过时;
    
    RMAN 保留策略将应用于命令
    RMAN 保留策略设置为冗余 2
    未找到过时的备份
    

    还原成功,并且没有备份被标记为过时,即使在还原后化身已更改并且已ALTER DATABASE OPEN RESETLOGS发布。

    替代化身列表

    可以使用以下命令实现化身的替代表示:

    alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
    set pages 50
    set lines 230
    column Path format a20
    select INCARNATION#, RESETLOGS_CHANGE#, RESETLOGS_TIME, 
    PRIOR_INCARNATION#, STATUS, LEVEL, SYS_CONNECT_BY_PATH(INCARNATION#, ' -> ') Path 
    from v$database_incarnation 
    WHERE LEVEL >=1 START WITH INCARNATION# = '1' 
    CONNECT BY PRIOR INCARNATION# = PRIOR_INCARNATION# 
    order by Level, Path, RESETLOGS_TIME;
    

    输出:

    INCARNATION#RESETLOGS_CHANGE#RESETLOGS_TIME PRIOR_INCARNATION#状态等级路径
    ------------ ----- ----------- ---------------- -------- ---------- ----- ---
               1 1 2017-03-08 15:57:31 0 父母 1 -> 1
               2 1490582 2018-07-16 09:27:03 1 父母 2 -> 1 -> 2
               3 1701490 2018-07-17 16:05:13 2 当前 3 -> 1 -> 2 -> 3
    

    在数据库实例中查询本地目录的优点是将化身表示为要遵循的路径

    执行第二次还原/恢复

    发出以下命令以再次将数据库恢复/恢复到一致状态:

    RMAN> 立即关闭
    
    数据库关闭
    数据库已卸载
    Oracle 实例关闭
    
    RMAN> 启动挂载
    
    连接到目标数据库(未启动)
    Oracle 实例已启动
    数据库挂载
    
    总系统全局区域 1610612736 字节
    
    固定大小 8747368 字节
    可变大小 520095384 字节
    数据库缓冲区 1073741824 字节
    重做缓冲区 8028160 字节
    
    RMAN> 运行
    2> {
    3> 设置到时间'2018-07-17 08:22:01';
    4> 恢复数据库;
    5> 恢复数据库;
    6>}
    
    执行命令:SET until 子句
    
    2018-07-17 16:14:37 开始恢复
    分配通道:ORA_DISK_1
    通道 ORA_DISK_1: SID=11 设备类型=DISK
    RMAN-00571:============================================== ==============
    RMAN-00569:=============== 错误消息堆栈跟随 ===============
    RMAN-00571:============================================== ==============
    RMAN-03002:在 2018 年 7 月 17 日 16:14:37 恢复命令失败
    RMAN-20207:UNTIL TIME 或 RECOVERY WINDOW 早于 RESETLOGS 时间
    

    好的,我们在恢复路径中遇到了一个化身“碰撞”。我们目前处于化身 3,如下面的化身列表所示,我从上面复制了该列表:

    INCARNATION#RESETLOGS_CHANGE#RESETLOGS_TIME PRIOR_INCARNATION#状态等级路径
    ------------ ----- ----------- ---------------- -------- ---------- ----- ---
               1 1 2017-03-08 15:57:31 0 父母 1 -> 1
               2 1490582 2018-07-16 09:27:03 1 父母 2 -> 1 -> 2
               3 1701490 2018-07-17 16:05:13 2 当前 3 -> 1 -> 2 -> 3
    

    ...我们的目标是在化身 2 的 RESETLOGS 之后进行备份。让我们将化身重置为 2 并继续备份:

    RMAN> 将数据库重置为化身 2;
    
    数据库重置为化身 2
    
    RMAN>
    

    似乎工作。让我们再次重新启动还原/恢复:

    RMAN> 运行
    2> {
    3> 设置到时间'2018-07-17 08:22:01';
    4> 恢复数据库;
    5> 恢复数据库;
    6>}
    
    执行命令:SET until 子句
    
    2018-07-17 16:16:12 开始恢复
    使用通道 ORA_DISK_1
    
    通道 ORA_DISK_1:开始数据文件备份集恢复
    通道 ORA_DISK_1:指定要从备份集中恢复的数据文件
    通道 ORA_DISK_1:将数据文件 00001 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\SYSTEM01.DBF
    通道 ORA_DISK_1:将数据文件 00003 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\SYSAUX01.DBF
    通道 ORA_DISK_1:将数据文件 00005 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\UNDOTBS01.DBF
    通道 ORA_DISK_1:将数据文件 00007 恢复到 C:\ORACLE_12\ORADATA\ORACLE12JN\USERS01.DBF
    通道 ORA_DISK_1:从备份片 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T082154_FNV2R328_.BKP 读取
    通道 ORA_DISK_1: 块句柄=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T082154_FNV2R328_.BKP tag=TAG20180717T082154
    通道 ORA_DISK_1:恢复的备份片 1
    通道 ORA_DISK_1:恢复完成,经过时间:00:00:07
    于 2018-07-17 16:16:20 完成恢复
    
    2018-07-17 16:16:20 开始恢复
    使用通道 ORA_DISK_1
    
    开始媒体恢复
    
    具有序列 3 的线程 1 的归档日志已作为文件 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_3_FNVXC7R7_.ARC 在磁盘上
    归档日志文件名=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_3_FNVXC7R7_.ARC 线程=1 序列=3
    媒体恢复完成,经过时间:00:00:00
    于 2018-07-17 16:16:21 完成恢复
    
    RMAN> 改变数据库打开重置日志;
    
    已处理报表
    
    RMAN> 报告过时
    2>;
    
    RMAN 保留策略将应用于命令
    RMAN 保留策略设置为冗余 2
    未找到过时的备份
    
    RMAN>
    

    还原成功并且没有备份被标记为过时,即使在还原之后化身发生了变化并且ALTER DATABASE OPEN RESETLOGS再次发出了 。现在我们是一个更新的化身,仍然没有Obsolete Backups报告。

    第二次还原后的当前化身列表 (SQL)

    SQL> select INCARNATION#, RESETLOGS_CHANGE#, RESETLOGS_TIME, PRIOR_INCARNATION#, STATUS, LEVEL, SYS_CONNECT_BY_PATH(INCARNATION#, ' -> ') Path from v$database_incarnation WHERE LEVEL >=1 START WITH INCARNATION# = '1' CONNECT BY PRIOR INCARNATION# = PRIOR_INCARNATION# order by Level, Path, RESETLOGS_TIME;
    
    INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME      PRIOR_INCARNATION# STATUS       LEVEL PATH
    ------------ ----------------- ------------------- ------------------ ------- ---------- --------------------
               1                 1 2017-03-08 15:57:31                  0 PARENT           1  -> 1
               2           1490582 2018-07-16 09:27:03                  1 PARENT           2  -> 1 -> 2
               3           1701490 2018-07-17 16:05:13                  2 ORPHAN           3  -> 1 -> 2 -> 3
               4           1691865 2018-07-17 16:16:29                  2 CURRENT          3  -> 1 -> 2 -> 4
    
    

    Initiate Backup

    After restoring the second time let's backup the database again:

    RMAN> backup database;
    
    Starting backup at 2018-07-17 16:51:39
    using channel ORA_DISK_1
    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=C:\ORACLE_12\ORADATA\ORACLE12JN\SYSTEM01.DBF
    input datafile file number=00005 name=C:\ORACLE_12\ORADATA\ORACLE12JN\UNDOTBS01.DBF
    input datafile file number=00003 name=C:\ORACLE_12\ORADATA\ORACLE12JN\SYSAUX01.DBF
    input datafile file number=00007 name=C:\ORACLE_12\ORADATA\ORACLE12JN\USERS01.DBF
    channel ORA_DISK_1: starting piece 1 at 2018-07-17 16:51:39
    channel ORA_DISK_1: finished piece 1 at 2018-07-17 16:51:46
    piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T165139_FNW0MVRT_.BKP tag=TAG20180717T165139 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
    Finished backup at 2018-07-17 16:51:46
    
    Starting Control File and SPFILE Autobackup at 2018-07-17 16:51:46
    piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\AUTOBACKUP\2018_07_17\O1_MF_S_981737506_FNW0N31S_.BKP comment=NONE
    Finished Control File and SPFILE Autobackup at 2018-07-17 16:51:47
    
    RMAN>
    

    Check Obsolete

    We'll now check which (backup) files have become obsolete:

    RMAN> report obsolete
    2> ;
    
    RMAN retention policy will be applied to the command
    RMAN retention policy is set to redundancy 2
    Report of obsolete backups and copies
    Type                 Key    Completion Time    Filename/Handle
    -------------------- ------ ------------------ --------------------
    Backup Set           20     2018-07-17 08:22:01
      Backup Piece       20     2018-07-17 08:22:01 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T082154_FNV2R328_.BKP
    Backup Set           22     2018-07-17 14:36:07
      Backup Piece       22     2018-07-17 14:36:07 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T143558_FNVROH49_.BKP
    Backup Set           24     2018-07-17 15:16:15
      Backup Piece       24     2018-07-17 15:16:15 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T151608_FNVV0RH4_.BKP
    Archive Log          2      2018-07-17 15:55:51 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_3_FNVXC7R7_.ARC
    Backup Set           26     2018-07-17 15:55:52
      Backup Piece       26     2018-07-17 15:55:52 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_ANNNN_TAG20180717T155551_FNVXC84F_.BKP
    Archive Log          3      2018-07-17 16:05:13 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_4_FNVXWSDY_.ARC
    
    RMAN>
    

    Check Incarnations (SQL)

    SQL> select INCARNATION#, RESETLOGS_CHANGE#, RESETLOGS_TIME, PRIOR_INCARNATION#, STATUS, LEVEL, SYS_CONNECT_BY_PATH(INCARNATION#, ' -> ') Path from v$database_incarnation WHERE LEVEL >=1 START WITH INCARNATION# = '1' CONNECT BY PRIOR INCARNATION# = PRIOR_INCARNATION# order by Level, Path, RESETLOGS_TIME;
    
    INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME      PRIOR_INCARNATION# STATUS       LEVEL PATH
    ------------ ----------------- ------------------- ------------------ ------- ---------- --------------------
               1                 1 2017-03-08 15:57:31                  0 PARENT           1  -> 1
               2           1490582 2018-07-16 09:27:03                  1 PARENT           2  -> 1 -> 2
               3           1701490 2018-07-17 16:05:13                  2 ORPHAN           3  -> 1 -> 2 -> 3
               4           1691865 2018-07-17 16:16:29                  2 CURRENT          3  -> 1 -> 2 -> 4
    

    As can be seen the incarnation 3 is now orphaned, because its direct line of heritage in regards to the current state of the database is broken. After the first restore we went back in time an re-restored the database again which results in the incarnation path 1 -> 2 -> 4 being the direct line of current ancestors for the open database.

    Because the direct line for restoring the current database is along the incarnations of 1, 2, 4 there is no need for RMAN to keep the obsolete backups listed above. They can safely be deleted.

    Delete Obsolete

    Let's go ahead and delete the obsolete backups:

    RMAN> delete obsolete
    2> ;
    
    RMAN retention policy will be applied to the command
    RMAN retention policy is set to redundancy 2
    using channel ORA_DISK_1
    Deleting the following obsolete backups and copies:
    Type                 Key    Completion Time    Filename/Handle
    -------------------- ------ ------------------ --------------------
    Backup Set           20     2018-07-17 08:22:01
      Backup Piece       20     2018-07-17 08:22:01 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T082154_FNV2R328_.BKP
    Backup Set           22     2018-07-17 14:36:07
      Backup Piece       22     2018-07-17 14:36:07 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T143558_FNVROH49_.BKP
    Backup Set           24     2018-07-17 15:16:15
      Backup Piece       24     2018-07-17 15:16:15 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T151608_FNVV0RH4_.BKP
    Archive Log          2      2018-07-17 15:55:51 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_3_FNVXC7R7_.ARC
    Backup Set           26     2018-07-17 15:55:52
      Backup Piece       26     2018-07-17 15:55:52 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_ANNNN_TAG20180717T155551_FNVXC84F_.BKP
    Archive Log          3      2018-07-17 16:05:13 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_4_FNVXWSDY_.ARC
    Backup Set           30     2018-07-17 16:17:52
      Backup Piece       30     2018-07-17 16:17:52 C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T161743_FNVYN815_.BKP
    
    Do you really want to delete the above objects (enter YES or NO)? YES
    deleted backup piece
    backup piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T082154_FNV2R328_.BKP RECID=20 STAMP=981706915
    deleted backup piece
    backup piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNND0_TAG20180717T143558_FNVROH49_.BKP RECID=22 STAMP=981729359
    deleted backup piece
    backup piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T151608_FNVV0RH4_.BKP RECID=24 STAMP=981731768
    deleted archived log
    archived log file name=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_3_FNVXC7R7_.ARC RECID=2 STAMP=981734151
    deleted backup piece
    backup piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_ANNNN_TAG20180717T155551_FNVXC84F_.BKP RECID=26 STAMP=981734152
    deleted archived log
    archived log file name=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\ARCHIVELOG\2018_07_17\O1_MF_1_4_FNVXWSDY_.ARC RECID=3 STAMP=981734713
    deleted backup piece
    backup piece handle=C:\ORACLE_12\RECOVERY_AREA\ORACLE12JN\BACKUPSET\2018_07_17\O1_MF_NNNDF_TAG20180717T161743_FNVYN815_.BKP RECID=30 STAMP=981735464
    Deleted 7 objects
    

    List Backup Summary

    Now that we have deleted some backup files and RMAN has performed some internal cleaning, let's have a look at the backup summary:

    RMAN> list backup summary;
    
    
    List of Backups
    ===============
    Key     TY LV S Device Type Completion Time     #Pieces #Copies Compressed Tag
    ------- -- -- - ----------- ------------------- ------- ------- ---------- ---
    3       B  F  A DISK        2018-07-16 10:03:01 1       1       NO         TAG20180716T100301
    5       B  F  A DISK        2018-07-16 10:27:44 1       1       NO         TAG20180716T102744
    7       B  F  A DISK        2018-07-16 10:49:50 1       1       NO         TAG20180716T104950
    9       B  F  A DISK        2018-07-16 10:50:08 1       1       NO         TAG20180716T105007
    11      B  F  A DISK        2018-07-16 10:50:22 1       1       NO         TAG20180716T105022
    13      B  F  A DISK        2018-07-16 10:51:21 1       1       NO         TAG20180716T105121
    15      B  F  A DISK        2018-07-16 13:06:13 1       1       NO         TAG20180716T130612
    17      B  F  A DISK        2018-07-16 15:26:23 1       1       NO         TAG20180716T152623
    19      B  F  A DISK        2018-07-16 15:57:07 1       1       NO         TAG20180716T155707
    21      B  F  A DISK        2018-07-17 08:22:02 1       1       NO         TAG20180717T082202
    23      B  F  A DISK        2018-07-17 14:36:14 1       1       NO         TAG20180717T143614
    25      B  F  A DISK        2018-07-17 15:16:23 1       1       NO         TAG20180717T151623
    27      B  F  A DISK        2018-07-17 15:55:53 1       1       NO         TAG20180717T155553
    28      B  F  A DISK        2018-07-17 16:05:17 1       1       NO         TAG20180717T160517
    29      B  F  A DISK        2018-07-17 16:16:34 1       1       NO         TAG20180717T161634
    31      B  F  A DISK        2018-07-17 16:17:59 1       1       NO         TAG20180717T161759
    32      B  F  A DISK        2018-07-17 16:51:46 1       1       NO         TAG20180717T165139
    33      B  F  A DISK        2018-07-17 16:51:47 1       1       NO         TAG20180717T165146
    34      B  F  A DISK        2018-07-18 07:24:13 1       1       NO         TAG20180718T072405
    35      B  F  A DISK        2018-07-18 07:24:21 1       1       NO         TAG20180718T072421
    
    RMAN>
    

    As we can see we still have "at least" two complete backup that will allow us to restore the database two backups in the past. RMAN (in 12c) did not delete any other backups along the incarnation path or outside of the orphaned incarnation.

    Conclusion

    Regarding the deleted backups after your initial restore in 9i I believe there are two possible scenarios:

    1. You hit a bug.
    2. After the restore two (FULL) backups were initiated which resulted in the backups being deleted on tape.

    Reference Material

    • Doc ID 206862.1 (How does the RMAN Retention Policy Obsolete Incremental Backupsets and Archivelog Files)
      • Valid for Oracle 9i+
    • 4
  2. Marco
    2018-07-06T04:56:12+08:002018-07-06T04:56:12+08:00

    从我的头顶。化身设置为防止您恢复太旧的备份。这样他们就过时了。

    但是,您仍然可以使用它们来恢复,但在这种情况下,您需要自己将化身更改为“以前的”化身。同时,您的最新备份已过时。

    这种行为仍然相同。

    • 0

相关问题

  • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

  • ORDER BY 使用文本列的自定义优先级

  • 舒服的sqlplus界面?[关闭]

  • 如何在数据库中找到最新的 SQL 语句?

  • 如何使用正则表达式查询名称?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve