使用 Cloud Protect 将内部部署数据库添加到 Recovery Service

Cloud Protect Fleet Agent 将内部部署数据库注册到 Recovery Service 以创建受保护数据库。

在 SQLcl 中,运行 rcv add database 命令以自动检测数据库客户机并生成配置 (JSON) 文件。该配置文件包括将数据库添加到恢复服务所需的参数。然后,再次运行 rcv add database 命令以及配置文件,将数据库注册到 Recovery Service 并创建受保护的数据库。Oracle 建议您按照此自动方法将数据库添加到恢复服务。

另一种方法是手动连接到每个数据库(具有 SYSBACKUP 权限),然后使用 rcv add database 命令分别添加每个数据库。

注意:

Cloud Protect 将 Oracle 定义的 Bronze 保护策略指定为所有数据库的默认策略。在添加数据库之前,可以在配置文件中更改默认策略。

使用以下步骤将内部部署数据库添加到恢复服务。

  1. 以 Oracle 软件所有者用户 (oracle) 的身份登录数据库。验证是否已设置 ORACLE_HOME 环境变量。

    在此示例中,ORACLE_HOME 环境变量指向安装了 Oracle 数据库客户机的目录。

    echo $ORACLE_HOME
    /u01/app/oracle/product/19.0.0.0/dbhome_1
  2. oracle 用户身份启动 SQLcl。
    在 Oracle RAC 环境中,仅在第一个计算节点上启动 SQLcl。
    oracle@host$ /opt/oracle/sqlcl/bin/sql /nolog
    SQL>
  3. 运行 rcv add database 命令以及这些 options 以自动检测数据库并生成配置文件。
    • -auto_discover
    • -generate_config_only
    • -compartment_id <COMPARTMENT_OCID>
    • -recovery_service_subnets <SUBNET_OCID>
    SQL> rcv add database -auto_discover -generate_config_only -compartment_id <COMPARTMENT_OCID> -recovery_service_subnets <SUBNET_OCID>
    在此样例输出中,rcv add database 命令生成 add_database.json 配置文件,其中包含创建受保护数据库所需的区间 ID 和恢复服务子网 ID 值。Bronze 策略分配为缺省保护策略。
    2025-08-15 09:22:16: Created config JSON /u01/app/oracle/rcv/add_database.json
    2025-08-15 09:22:16: You can onboard a database by running 'rcv add database -config /u01/app/oracle/rcv/add_database.json'
    add_database.json 配置文件的样例内容。
    
    [
        {
            "dbUniqueName": "DB1",
            "displayName": "DB1",
            "compartmentId": "ocid1.compartment.oc1..aaa...",
            "protectionPolicy": "ocid1.recoveryservicepolicy.region1..aaa...",
            "sbtLibrary": "/u01/app/oracle/product/19.24.0.0/dbhome_2/lib/libra.so",
            "oracleHome": "/u01/app/oracle/product/19.24.0.0/dbhome_2",
            "oracleSid": "DB1",
            "recoveryServiceSubnets": [
                "ocid1.subnet.oc1.phx.aaa..."
            ]
        },
        {
            "dbUniqueName": "DB2",
            "displayName": "DB2",
            "compartmentId": "ocid1.compartment.oc1..aaaaaa...",
            "protectionPolicy": "ocid1.recoveryservicepolicy.region1..aaa...",
            "sbtLibrary": "/u01/app/oracle/product/19.27.0.0/dbhome_1/lib/libra.so",
            "oracleHome": "/u01/app/oracle/product/19.27.0.0/dbhome_1",
            "oracleSid": "DB2",
            "recoveryServiceSubnets": [
                "ocid1.subnet.oc1.phx.aaa..."
            ]
        },
        {
            "dbUniqueName": "DB3",
            "displayName": "DB3",
            "compartmentId": "ocid1.compartment.oc1..aaa...",
            "protectionPolicy": "ocid1.recoveryservicepolicy.region1..aaa...",
            "sbtLibrary": "/u01/app/oracle/product/19.26.0.0/dbhome_3/lib/libra.so",
            "oracleHome": "/u01/app/oracle/product/19.26.0.0/dbhome_3",
            "oracleSid": "DB3",
            "recoveryServiceSubnets": [
                "ocid1.subnet.oc1.phx.aaa..."
            ]
        }
    ]
    SQL>
  4. (可选)编辑配置文件以根据需要修改分配的值。
    edit /u01/app/oracle/rcv/add_database.json
  5. 再次运行 rcv add database 命令并指定配置文件。
    SQL> rcv add database -config <confgiration file location> 
    在此示例中,指定 add_database.json 配置文件的路径。
    SQL> rcv add database -config /u01/app/oracle/rcv/add_database.json 
    Cloud Protect Fleet Agent 在内部执行以下步骤:
    • 验证将数据库添加到恢复服务的先决条件。
    • 如果 SYSBACKUP 用户不存在,则创建 SYSBACKUP 用户和密码。

      注意:

      Cloud Protect Fleet Agent 需要 SYSBACKUP 用户和密码才能与数据库建立命名连接。使用此命令以 SYSBACKUP 用户身份连接到数据库:

      /opt/oracle/sqlcl/bin/sql -name <DB_UNIQUE_NAME>_rcv_conn

      DB_UNIQUE_NAME 是数据库的全局唯一名称。

    • VPC 用户帐户生成随机密码。需要 VPC 用户身份证明来验证对 RMAN 恢复目录的数据库访问。
    • 调用恢复服务 API 以创建受保护的数据库资源。
    • 在受保护数据库进入活动生命周期状态之前,每 10 分钟调用一次 API。
    • 提取受保护的数据库网络连接详细信息并更新配置文件。
    • 使用 RMAN 在 Recovery Appliance 的 Recovery Service 中注册数据库
    • 使用 Cloud Protect 配置受保护数据库。
    • Cloud Protect 可维护数据保护。
  6. (建议)启用 Real-time data protection
    1. 使用 SQLcl 以具有 SYSBACKUP 权限的用户身份登录数据库。
      oracle@host$ /opt/oracle/sqlcl/bin/sql -name <DB_UNIQUE_NAME>_rcv_conn

      在此示例中,连接到数据库 c1db1

      oracle@host$ /opt/oracle/sqlcl/bin/sql -name c1db1_rcv_conn
    2. 运行 rcv realtime_redo 命令。
      SQL> rcv add realtime_redo
      查看数据库 c1db1 的样例输出。
      2025-08-15 10:33:48: Log file: /u01/app/oracle/rcv/dbs/c1db1/log/add_realtime_redo_c1db1.20250815.103348.log
      SQL>
    3. 重新启动数据库以使更改生效。