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

准备 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/