ORACLE_OCP多租户之CDB与PDB的备份恢复和闪回

ORACLE_OCP多租户之CDB与PDB的备份恢复和闪回

  • 文章目标:
    • 执行CDB和PDB备份
    • 使用RMAN备份插入或未插入的PDB
    • 从基本文件丢失中恢复CDB
    • 从PDB数据文件丢失中恢复PDB
    • 执行闪回数据库
    • 复制PDB
    • 验证CDB和PDB

一、目标

  • 独立备份CDB和应用程序:
    • CDB级别的ARCHIVELOG模式(尽在CDB级别)
    • CDB备份和PDB备份
    • CDB和PDB级别的热备份
  • 恢复不同级别的CDB或PDB :
    • CDB的实例级恢复
    • 完整的介质恢复:
      • CDB或PDB临时文件
      • 控制文件/重做日志文件/根数据文件丢失在已挂载CDB状态下
      • PDB数据文件:打开的PDB中非SYSTEM数据文件丢失
      • PDB数据文件:挂载的CDB中数据文件丢失
    • 不完全的介质恢复:CDB以挂载或PDB已关闭状态
    • 闪回数据库:已挂载的CDB状态下

二、RMAN中的新语法和子句

$ export ORACLE_SID=cdb1
$ rman TARGET / <--------|----> $ rman TARGET jim@pdb1

  • DATABASE关键字在所有PDB和根容器上运行.

    RMAN> BACKUP DATABASE;
    RMAN> RECOVER DATABASE;

  • 备份单个PDB.

    RMAN> BACKUP PLUGGABLE DATABASE hr_pdb, sales_pdb;
    RMAN> RECOVER PLUGGABLE DATABASE hr_pdb;

  • 使用CDB$ROOT关键字备份,还原,恢复根容器

    RMAN> BACKUP PLUGGABLE DATABASE “CDB$ROOT”;

  • 使用PDB名称限定PDB的表空间.

    RMAN> BACKUP TABLESPACE sales_pdb:tbs2;
    RMAN> RESTORE TABLESPACE system;

三、CDB备份:CDB全备

  • 备份所有PDB数据文件和根文件

    RMAN> CONNECT TARGET /
    RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
    RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

在这里插入图片描述

四、CDB备份:用户管理的CDB热备份

  • 执行用户管理的CDB热备份.

    SQL> CONNECT / AS SYSDBA
    SQL> ALTER DATABASE BEGIN BACKUP;
    SQL> !cp datafiles /backup_dir
    SQL> ALTER DATABASE END BACKUP;

在这里插入图片描述

五、CDB备份:部分CDB备份

  • 备份根容器或单个PDB.

    RMAN> CONNECT TARGET /
    RMAN> BACKUP PLUGGABLE DATABASE “CDB$ROOT”, sales_pdb;
    RMAN> BACKUP PLUGGABLE DATABASE hr_pdb PLUS ARCHIVELOG;

在这里插入图片描述

六、PDB备份:PDB全备

  • 使用RMAN进行PDB全备:

    RMAN> CONNECT TARGET /
    RMAN> BACKUP PLUGGABLE DATABASE sales_pdb;

    RMAN> BACKUP PLUGGABLE DATABASE sales_pdb, hr_pdb;

在这里插入图片描述

  • 执行用户管理的PDB热备:

    SQL> ALTER PLUGGABLE DATABASE sales_pdb BEGIN BACKUP;
    SQL> !cp pdb_datafiles /backup_dir
    SQL> ALTER PLUGGABLE DATABASE sales_pdb END BACKUP;

七、PDB备份:部分PDB备份

RMAN> CONNECT TARGET /
RMAN> REPORT SCHEMA;
RMAN> BACKUP TABLESPACE sales_pdb:tbs2;
RMAN> BACKUP TABLESPACE hr_pdb:system,
sales_pdb:sysaux;
RMAN> BACKUP TABLESPACE sysaux, hr_pdb:sysaux;

在这里插入图片描述

八、恢复

  • 实例恢复: CDB level only
  • CDB打开时丢失的临时文件,自动重新创建
  • 文件丢失或损坏后完成介质恢复
    • CDB mounted: 方法同非CDB的方法
      • Redo log files, control files
      • 根容器的SYSTEM表空间和PDB数据文件,UNDO数据文件
    • PDB opened:除SYSTEM以外的任何PDB数据文件
    • Tablespace OFFLINE:任何其他PDB或CDB数据文件
  • 文件丢失或损坏后介质的不完全恢复
    • CDB mounted: 整个的CDB回到一个时间点上
    • PDB closed: 整个的PDB回到一个时间点上
    • TSPITR用于除SYSTEM,UNDO,SYSAUX以外的任何表空间
  • Block recovery(块恢复): 没有任何变化和非CDB一样
  • Flashback database: CDB mounted

九、实例故障

  • PDB实例恢复无法进行.
  • 实例故障后:
    • 连接到根容器
    • 打开根容器
    • 使用以下命令打开所有PDB :
      • Triggers

        SQL> STARTUP

      • SQL statement

        SQL> STARTUP
        SQL> ALTER PLUGGABLE
        2 DATABASE ALL OPEN;

在这里插入图片描述

十、NOARCHIVELOG Mode(非归档模式)

  • 如果数据库处于NOARCHIVELOG模式,并且数据文件丢失,请执行以下任务:
    • 如果实例尚未关闭,请关闭它。
    • 恢复整个CDB,包括所有数据文件和控制文件。
    • 启动实例并打开CDB和所有PDB。
  • 用户必须重新输入自上次备份以来所做的所有更改。

十一、介质故障:CDB或PDB临时文件恢复

  • 如果缺少一个临时文件,则需要临时空间执行的SQL语句可能会失败:与非CDB相似
    在这里插入图片描述
  • CDB打开时自动重新创建临时文件
  • 也可以手动创建

十二、介质故障:PDB临时文件恢复

  • 如果缺少临时文件之一,则需要临时空间才能执行的SQL语句可能会失败。
    在这里插入图片描述
  • 仅在CDB打开时自动重新创建临时文件
  • 也可以手动创建

十三、介质故障:控制文件丢失

  • 类似于非CDB:CDB nomounted CDB mounted
    在这里插入图片描述

    RMAN> CONNECT TARGET /
    RMAN> STARTUP NOMOUNT;
    RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
    RMAN> ALTER DATABASE MOUNT;
    RMAN> RECOVER DATABASE;
    RMAN> ALTER DATABASE OPEN RESETLOGS;
    RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

十四、介质故障:重做日志文件(REDO)丢失

在这里插入图片描述

  • 类似于非CDB恢复程序:
    • 连接到根容器。
    • 检查丢失文件的状态:ACTIVE,INACTIVE,CURRENT
    • 恢复方案与非CDB相同。

十五、介质故障:根容器的SYSTEM或UNDO数据文件

  • 类似于非CDB : CDB mounted
    在这里插入图片描述

    RMAN> STARTUP MOUNT;
    RMAN> RESTORE TABLESPACE undo1;
    RMAN> RECOVER TABLESPACE undo1;
    RMAN> ALTER DATABASE OPEN;
    RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

十六、介质故障:根容器SYSAUX数据文件

  • 类似于非CDB: tablespace OFFLINE
    在这里插入图片描述

    RMAN> ALTER TABLESPACE sysaux OFFLINE IMMEDIATE;
    RMAN> RESTORE TABLESPACE sysaux;
    RMAN> RECOVER TABLESPACE sysaux;
    RMAN> ALTER TABLESPACE sysaux ONLINE;

十七、介质故障:PDB SYSTEM数据文件

  • 如果PDB is opened, CDB只能mounted下恢复.
  • 如果PDB is closed, CDB可以在open状态下恢复
    • 还原和恢复PDB:

      RMAN> STARTUP MOUNT; — useless on closed PDB —
      RMAN> RESTORE PLUGGABLE DATABASE sales_pdb;
      RMAN> RECOVER PLUGGABLE DATABASE sales_pdb;
      RMAN> ALTER DATABASE OPEN; — useless on closed PDB —
      RMAN> ALTER PLUGGABLE DATABASE sales_pdb OPEN;

    • 还原和恢复丢失的表空间或数据文件:

      RMAN> RESTORE TABLESPACE sales_pdb:system;
      RMAN> RECOVER TABLESPACE sales_pdb:system;

在这里插入图片描述

十八、介质故障:PDB非系统数据文件

  • 与非CDB相似:在PDB中执行恢复。
    • 连接到PDB。
    • 将表空间置于脱机状态。
    • 其他PDB不受影响。

    SQL> CONNECT system@sales_pdb
    SQL> ALTER TABLESPACE tbs2 OFFLINE IMMEDIATE;
    RMAN> CONNECT TARGET /
    RMAN> RESTORE TABLESPACE sales_pdb:tbs2;
    RMAN> RECOVER TABLESPACE sales_pdb:tbs2;
    SQL> ALTER TABLESPACE tbs2 ONLINE;

在这里插入图片描述

十九、Data Recovery Advisor RMAN命令行界面

  • 列出故障.

    RMAN> LIST FAILURE DETAIL;

  • 取得顾问建议.

    RMAN> ADVISE FAILURE;

  • 预览恢复脚本.

    RMAN> REPAIR FAILURE PREVIEW;

  • 应用恢复脚本.

    RMAN> REPAIR FAILURE;

二十、介质故障:PITR

  • PDB PITR

    RMAN> ALTER PLUGGABLE DATABASE PDB1 CLOSE;
    RMAN> RUN {
    SET UNTIL SCN = 1851648 ;
    RESTORE pluggable DATABASE pdb2_1;
    RECOVER pluggable DATABASE pdb2_1
    AUXILIARY DESTINATION=’/u01/app/oracle/oradata’;
    ALTER PLUGGABLE DATABASE pdb2_1 OPEN RESETLOGS;
    }

  • PDB Tablespace PITR

    RMAN> RECOVER TABLESPACE PDB1:TEST_TBS
    2> UNTIL SCN 832972
    3> AUXILIARY DESTINATION ‘/tmp/CDB1/reco’;
    RMAN> ALTER TABLESPACE PDB1:TEST_TBS ONLINE;

二十一、Flashback CDB—CDB的闪回

在这里插入图片描述

SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP MOUNT
#如果CDB处于ARCHIVELOG模式,则无需重新启动它。
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER SYSTEM SET
2 DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;

  • 不闪回根目录将导致不会闪回整个CDB
  • 没有闪回到执行PDB的PITR之前的时间

二十二、Flashback CDB

  • 公共或本地用户被删除.
    • Flashback CDB: 建议以独占模式让CDB mounted。

      SQL> STARTUP MOUNT
      SQL> FLASHBACK DATABASE TO SCN 53943;

    • 要查看闪回是否成功:在“只读”中打开CDB和PDB。

      SQL> ALTER DATABASE OPEN READ ONLY;
      SQL> ALTER PLUGGABLE DATABASE ALL OPEN READ ONLY;

    • 完成:必要时再次闪回并使用RESETLOGS打开CDB。

      RMAN> SHUTDOWN IMMEDIATE
      RMAN> STARTUP MOUNT
      RMAN> FLASHBACK DATABASE TO SCN 10;
      RMAN> ALTER DATABASE OPEN RESETLOGS;
      RMAN> ALTER PLUGGABLE DATABASE ALL OPEN;

二十三、复制(Duplicating)可插拔数据库(PDB)

  • 单个可插拔数据库.

    RMAN> DUPLICATE DATABASE TO cdb1
    2> PLUGGABLE DATABASE pdb1;

  • 几个可插拔数据库.

    RMAN> DUPLICATE DATABASE TO cdb1
    PLUGGABLE DATABASE pdb1, pdb3;

  • 除一个数据库外的所有可插入数据库.

    RMAN> DUPLICATE DATABASE TO cdb1
    SKIP PLUGGABLE DATABASE pdb3;

  • 一个PDB和其他PDB的表空间.

    RMAN> DUPLICATE DATABASE TO cdb1
    PLUGGABLE DATABASE pdb1
    TABLESPACE pdb2:users;

二十四、坏块的检测

  • 使用RMAN VALIDATE命令调用数据库及其组件的主动健康检查:
    • 扫描指定的文件并验证其内容。

      • CDB:根容器和PDB的所有数据文件

        RMAN> VALIDATE DATABASE;

      • root:仅根目录的所有数据文件

        RMAN> VALIDATE DATABASE ROOT;

      • PDB:列出的PDB的所有数据文件

        RMAN> VALIDATE PLUGGABLE DATABASE pdb1, pdb2;

    • 确认数据文件存在坏块,并且找到其位于的位置

    • 检查损坏的数据块

二十五、特殊情况

  • 创建一个控制文件备份脚本:

    SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

  • 使用块更改跟踪日志进行快速增量备份:

    • At CDB level:块更改跟踪日志使用绝对路径数据文件。
  • PDB关闭与CDB热备份不兼容:

    SQL> ALTER DATABASE BEGIN BACKUP;
    SQL> ALTER PLUGGABLE DATABASE hr_pdb CLOSE;
    ALTER PLUGGABLE DATABASE pdb1_1 close
    *
    ERROR at line 1:
    ORA-01149: cannot shutdown - file 10 has online backup set
    ORA-01110: data file 10: '/D1/oradata/cdb1/pdb1_1/users01.dbf’

二十六、New Data Dictionary View and Column

  • New views
    • RC_PDBS
  • New column PLUGGABLE_DBID in V$ views and RC_xxx views
    • V$DATAFILE_COPY
    • V$BACKUP_DATAFILE
    • V$PROXY_DATAFILE
    • RC_DATAFILE_COPY
    • RC_BACKUP_DATAFILE
    • RC_PROXY_DATAFILE
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值