了解如何配置 Oracle Database 备份

将内部部署数据库备份到 OCI 对象存储桶。

在源数据库上安装 Oracle Database Backup Module

首先为 OCI 安装 Oracle Database Cloud 备份模块来备份到 OCI。

下载模块(请参见“开始之前”)并将其安装在数据库服务器上。
  1. 在源数据库服务器上安装该模块。
  2. 将目录更改为具有 JAR 文件的 oci_installer
  3. 安装 JAR 文件。
  4. 填写:
    • 区域 ID
    • 公共密钥指纹
    • 租户 OCID
    • 用户 OCID
    • 区间 OCID
    • 之前创建的存储桶名称
  5. 为以下项提供目录:
    • 图书馆
    • Wallet
    • 私有密钥文件
    java -jar oci_install.jar \ 
    -host https://objectstorage.us-langley-1.oraclegovcloud.com -pvtKeyFile /tmp/-01-31-22-38.pem \ 
    -pubFingerPrint 2k:cd:cv:71:6f:ab:6f:xz:ef:72:gh:cc \ 
    -uOCID ocid1.user.oc2..aaaaaabc \ 
    -tOCID ocid1.tenancy.oc2..aaaaadef \ 
    -walletDir $ORACLE_HOME/lib/oci_wallet \
    -libDir $ORACLE_HOME/lib -bucket bucket-20230131-1601-modbac \ -cOCID ocid1.compartment.oc2..aaaaaghi

    要捕获指纹、租户、用户 OCID 和政府特定的端点,请参见“浏览更多”。对于区间 OCID,请导航到身份和安全性,然后在身份区间下单击所需的区间并复制 OCID。

配置 RMAN 以支持云备份

安装所需的备份模块并配置 Recovery Manager (RMAN) 设置后,可以使用熟悉的 RMAN 命令创建备份。有关云备份的信息保存在数据库控制文件中以及恢复目录中(如果使用)。

在备份账户中的云存储位置之前,需要配置一些 RMAN 属性:

  • 设置备份的保留期(30 天)。
  • 设置名为 sbt_tape 的设备类型,该类型使用刚安装的库和配置文件。请注意,云中定义的任何存储块的名称都将以 onPremBackup_ 开头。
  • 正在打开加密功能。这适用于数据安全性,对于内部部署到云的备份方案是必需的。
  • 设置并行度,以便多个线程备份和恢复数据文件。这是为了实现性能。
  • 将备份优化设置为 ON ,以便 RMAN 在执行“新”备份之前不会向云或从云进行不必要的传输(例如,如果备份文件已经存在且没有任何更改,则不会处理此文件,从而节省时间)。
  • 为转到云端的文件设置压缩级别。
  • sbt_tape 设备配置为所有备份的默认值。
  • 使用以下工具将 RMAN 连接到本地数据库:
    RMAN> run {
    
    configure retention policy to recovery window of 30 days;
    
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT 'onPremBackup' PARMS 'SBT_LIBRARY=/u01/app/oracle/product/19c/dbhome_1/lib/libopc.so ENV=(OPC_PFILE=/u01/app/oracle/product/19c/dbhome_1/dbs/opcORCL.ora)';
    
    configure encryption for database on;
    
    configure device type 'sbt_tape' parallelism 1 backup type to backupset;
    
    configure backup optimization on;
    
    configure compression algorithm 'MEDIUM' as of release 'default' optimize for load true;
    
    configure default device type to sbt_tape;
    
    }

备份内部部署数据库

出于安全原因,备份到 OCI 需要使用加密。选项包括:透明数据加密 (TDE) 和/或密码加密。我们将使用口令加密。

对于备份和恢复,请从 shell 脚本或 RMAN 运行块运行此命令序列。
  1. 设置口令加密。
    RMAN> set encryption on identified by ‘password’ only;
  2. 运行备份命令。
    RMAN> backup as compressed backupset tag ‘onprem’ database plus archivelog;
  3. 注:

    创建备份时,文件块会放置在区间中用户定义的对象存储桶 db_backups 中,或者将使用系统生成的名为 oracle-data-storage-xxx 的容器。备份命令完成后,我们可以验证备份已迁移到云。
    使用 RMAN,键入列表备份摘要来验证备份文件。
    RMAN> create restore point gold preserve;
  4. 退出 RMAN。

在 OCI 云中验证备份

将备份验证到 Oracle Cloud Infrastructure Object Storage 。验证后,可以删除要测试的表,然后继续恢复。

  1. 打开 Oracle Cloud 控制台。
  2. 打开对象存储。
    • 从主菜单中,依次单击 storageObject storage
    • 在搜索栏中,输入“对象存储”,然后按 Enter
  3. 列表范围中,选择区间。
    这将显示备份的存储桶,其中包含用户生成的名称或系统生成的名称。
  4. 选择备份存储桶以查看备份集的 file_chunks

测试数据库还原和恢复

将数据库还原到删除数据库之前的时间点。

  1. 切换到 RMAN 会话。
    rman target /
  2. 关闭数据库。
    RMAN>Shutdown immediate;
  3. 启动挂载。
    RMAN>Startup mount
  4. 对密码进行解密。
    RMAN> set decryption identified by ‘Oracle_1’;
  5. 注:

    以下步骤将使整个数据库到达可以进行介质恢复的位置。这将使数据库脱机。如果数据库中有多个 PDB,且仅需在一个 PDB 中恢复数据,而将其他 PDB 保持联机状态,则可以使用这些步骤仅关闭 PDB、恢复 PDB 并将 PDB 恢复到还原点。使用此方法需要更长的时间,因此对于这些说明,我们将恢复整个数据库。
    恢复整个数据库。
    RMAN> run {
    restore database;
    
    Recover database to restore point gold;
    
    Alter database open reset logs;
    
        }

    注:

    可以使用 cronjob 安排此备份脚本在设置时间每天或每周运行,以自动执行备份过程。
  6. 通过对数据库运行查询命令来检查数据库。
    这将显示恢复的数据库。