准备云中的服务以接受迁移的数据

准备 Oracle Cloud Infrastructure 账户以接受迁移的数据,方法是在账户中添加源数据库的公钥,创建存储桶以存储数据,在您的区域中预配兼容数据库,以及将源数据库的 wallet 复制到云中的新数据库。

将公共密钥添加到 Oracle Cloud Infrastructure 账户概要信息

将您在源数据库上创建的 wallet 公钥添加到您的 Oracle Cloud Infrastructure 账户。公钥将用于访问 Oracle Cloud Infrastructure Object Storage 。

  1. 转到 Oracle Cloud Infrastructure 控制台,然后单击配置文件图标。
  2. 依次选择用户设置、资源和 API 密钥。
  3. 单击 Add Public Key ,然后选择 Paste Public Key 。
  4. 将公钥文本粘贴到字段中。单击添加。
    这是您在源数据库上创建 wallet 时保存的公共密钥,包括页眉和页脚语句。
  5. 记下上载的公钥的指纹。您稍后将需要它。

在对象存储中创建存储桶

存储桶用于存储和组织数据。您创建的存储桶是备份到 Oracle Cloud Infrastructure Object Storage 的数据的容器。

  1. 在 Oracle Cloud Infrastructure 控制台中,在核心基础设施下,单击对象存储。
  2. 从页面左侧的“区间”列表中选择区间。
    在区间中部署资源。
  3. 单击创建存储桶。
  4. 命名存储桶。
    系统生成反映当前年份、月份、日期和时间(例如 bucket-20210210-1359 )的默认存储桶名称。将默认值更改为任何其他存储桶名称时,应使用字母、数字、短划线、下划线和句点。请避免输入机密信息。例如,将存储桶命名为 atp-upload 。
  5. 使用时段属性的默认值。
    例如,选择标准存储层。标准是主要默认存储层,用于存储需要快速立即访问的数据。
  6. 单击创建存储桶。

在 Oracle Cloud Infrastructure 中预配数据库

在 Oracle Cloud Infrastructure 中预配兼容的数据库。数据库可以是裸金属或虚拟机,但版本必须至少与源数据库相同。

云中的容器数据库 (container database,CDB) 或系统标识符 (system identifier,SID) 名称必须与源数据库 CDB 或 SID 名称相同。根据数据库系统的类型和预配的节点数,预配数据库系统可能需要一小时以上。

在开始之前,区间必须使用专用子网设置虚拟云网络 (VCN) 才能预配数据库系统。要访问数据库,必须在 VCN 的公共子网中预配堡垒主机(使其具有公共 IP),或者您需要通过 VPN 或 Oracle Cloud Infrastructure FastConnect 直接访问专用网络。在数据库专用子网上创建一个安全列表规则,用于从公共子网 CIDR 块访问数据库端口 (1521)。

  1. 在 Oracle Cloud Infrastructure 控制台中,单击数据库,然后单击裸金属、VM 和 Exadata 。
  2. 单击创建数据库系统。
  3. 选择数据库系统所在的区间。
  4. 命名数据库系统。
  5. 选择可用性域。
  6. 选择配置类型。
  7. 选择与数据库要求匹配的计算配置。
  8. 选择多核心配置的节点数。
    如果选择多个节点,则 "Logical Volume Manager"(逻辑卷管理器)存储选项不可用。
  9. 选择存储管理选项:Oracle Grid Infrastructure (OGI) 或 Logical Volume Manager (LVM) 。OGI 允许无缝管理跨多个节点的存储,并建议提供弹性。仅在使用 Oracle Grid Infrastructure 时才提供版本 11 g 。
  10. 配置存储:选择此数据库所需的存储量。
  11. 上载 SSH 公共密钥以进行访问。
  12. 选择许可证类型:使用通用储值所含许可证;如果您拥有 Oracle Database 许可证,请选择自带许可证。
  13. 选择数据库系统的 VCN 和子网。
  14. 选择主机名前缀。
  15. 单击下一步。
  16. 输入与源 CDB 名称或源数据库 SID 对应的数据库名称。
    源数据库名称和目标数据库名称必须匹配,才能使还原阶段无缝工作。
  17. 选择数据库版本。
    目标数据库版本必须等于或高于源数据库版本。

    目标数据库可以是更高的补丁程序级别。如果是更高版本,则在迁移之前需要升级。

  18. 设置与口令要求匹配的 SYS 用户的口令。
  19. 单击创建。

将 Wallet 复制到目标数据库

使用 IP 地址在堡垒主机和目标数据库主机之间打开 SSH 隧道,将 wallet 复制到目标数据库主机上的 /home/oracle/ 目录。

  1. 获取堡垒主机的公共 IP 地址。
    1. 在控制台中,单击计算实例。
    2. 单击堡垒主机。公共 IP 地址将显示在堡垒主机详细信息中。
  2. 获取数据库系统节点的专用 IP 地址。
    对于多节点数据库系统,请获取主节点的 IP 地址。
    1. 在控制台中,依次单击数据库和裸金属、VM 和 Exadata
    2. 选择数据库系统。
    3. 在左侧菜单上,单击节点。
    4. 转至专用 IP 地址和 DNS 名称以获得该 IP 地址或节点列表中的主机名。
  3. 使用 IP 地址,在堡垒主机和数据库主机之间打开 SSH 隧道,然后将 wallet 复制到目标数据库主机上的 /home/oracle/ 目录。
    该文件必须由用户 oracle 拥有。
    #copy files over to target DB host through Bastion Host
    BASTION_IP=192.0.2.1 # public IP
    DB_HOST=10.0.1.11 # private IP
    
    scp -o ProxyCommand="ssh -W %h:%p opc@${BASTION_IP}" wallet.zip opc@${DB_HOST}:~/
    ssh -J opc@${BASTION_IP} opc@${DB_HOST} 'sudo chown oracle:oinstall wallet.zip; sudo mv wallet.zip /home/oracle/'
  4. 备份当前 wallet,然后在目标数据库中安装 wallet。
    mv $ORACLE_HOME/data/wallet $ORACLE_HOME/data/wallet_bck
    mkdir -p $ORACLE_HOME/data/wallet
    unzip wallet.zip -d $ORACLE_HOME/data/wallet/