What You See Is What You Get Element

如何使用远程克隆将内部部署的 Oracle Database 12c 实例迁移到 Oracle 云

作者:Joel Pérez 和 Skant Gupta

本文介绍如何使用远程克隆方法将内部部署的 Oracle Database 12c 数据库中的可插拔数据库 (PDB) 复制到 Oracle 数据库云服务部署环境中数据库即服务 (DBaaS) 容器数据库 (CDB) 中的 PDB。

:仅当满足以下条件时才可以使用此方法:内部部署平台是小端;内部部署版本是 Oracle Database 12.1.0.2 或更高版本;内部部署数据库和 Oracle 数据库云服务数据库的数据库字符集和国家字符集相兼容。

要使用远程克隆方法将 Oracle Database 12c PDB 复制到 Oracle 数据库云服务部署环境中的 PDB,请执行以下任务:

  1. 在内部部署数据库主机上,调用 SQL *Plus,关闭内部部署 PDB,然后以只读模式重新打开 PDB,准备内部部署 PDB。
  2. 创建一个新的 Oracle 数据库云服务实例。
  3. 连接到 Oracle 数据库云服务计算节点,调用 SQL *Plus,并创建一个数据库链接以建立与内部部署数据库的连接。
  4. 在 Oracle 数据库云服务计算节点上,执行 CREATE PLUGGABLE DATABASE 命令克隆内部部署 PDB。
  5. 在 Oracle 数据库云服务计算节点上,执行 ALTER PLUGGABLE DATABASE OPEN 命令,打开新的 PDB。
  6. 或者,在内部部署数据库主机上,调用 SQL *Plus 并将内部部署 PDB 重新设置为读写模式。

以下几节将逐步演示将内部部署的 Oracle 数据库 PDB 远程克隆到 DBaaS CDB 的新 PDB 中所需的任务。

在本例中,内部部署数据库位于一台 Linux 主机上。

准备内部部署 PDB

  1. 在内部部署数据库主机上,调用 SQL *Plus 并以 SYS 用户身份登录内部部署数据库。

    [oracle@cloud ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Sun Jun 4 11:47:11 2017
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    
    SQL>
    
  2. 关闭内部部署的 PDB_PREM PDB。

    SQL> ALTER PLUGGABLE DATABASE pdb_prem CLOSE;
    Pluggable database altered.
    
  3. 以只读模式打开内部部署的 PDB_PREM PDB。

    SQL> ALTER PLUGGABLE DATABASE pdb_prem OPEN READ ONLY;
    Pluggable database altered.
    

创建一个新的 Oracle 数据库云服务实例

  1. 登录您的 Oracle 云服务帐户,转至“Oracle 数据库云服务”页面,创建一个新服务:

    - 在 Service Name 中,输入 Cloud-Mig12c
    - 从 Service Level 列表中,选择 Oracle Database Cloud Service
    - 从 Metering Frequency 列表中,选择适合您环境的频率。
    - 从 Software Release 列表中,选择 Oracle Database 12c Release 2
    - 从 Software Edition 列表中,选择 Enterprise Edition
    - 从 Database Type 列表中,选择 Single Instance

    然后,单击 Next 继续。

    图 1 创建新服务

    图 1.创建新服务 (Cloud-Mig11g)

  2. 在 Service Details 屏幕上,执行以下操作:

    - 在 DB Name (SID) 中,输入 PRODDB
    - 设置您的管理密码并确认密码(这将是您的 sys 密码)。
    - 在 Usable Database Storage (GB) 中,输入 25
    - 从 Compute Shape 列表中,选择 OC3 -1 OCPU, 7.5 GB RAM(这是最低要求)。
    - 在 SSH Public Key 中,输入 rsa-key-20170111.pub

    然后,单击 Next 继续。

    图 2 指定服务详细信息

    图 2.指定服务详细信息

  3. 最后,检查配置并单击 Create 创建云数据库。

    图 3 创建主云数据库实例

    图 3.创建云数据库实例

    几分钟后,云数据库实例已成功创建。

    图 4 数据库已创建

    图 4.云数据库已创建

  4. 单击服务名称 (Cloud-Mig12c) 打开数据库的主页面。

    图 5 数据库主页面

    图 5.云数据库的主页面

  5. 在尝试连接到云端的数据库实例之前,您必须启用 dblistener 访问规则。执行以下操作:

    a.打开数据库服务,从菜单中选择 Access Rules

    图 6 选择 Access Rules

    图 6.选择 Access Rules 项目

    b.对于 ora_p2_dblistener 规则,从 Actions 菜单中选择 Enable

    图 7 启用 ora_p2_dblistener

    图 7.启用 ora_p2_dblistener 规则

连接到云数据库并创建数据库链接

  1. 打开 PuTTY 可执行文件的一个实例,使用 SSH 公钥连接到 Oracle 数据库云服务计算节点。

    图 8 使用 PuTTY 连接

    图 8.使用 PuTTY 连接到机器

  2. 在数据库云服务计算节点上,调用 SQL *Plus 并创建一个数据库链接以建立与内部部署数据库的连接。

    a.在内部部署数据库主机上,调用 SQL *Plus 并以 SYS 用户身份登录内部部署数据库。

    [oracle@Cloud-Mig12c ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Sun Jun 4 06:33:14 2017
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, Oracle Label Security, OLAP, Advanced Analytics
    and Real Application Testing options
    


    b.在 DBaaS PRODDB CDB 中创建一个数据库链接,以连接到内部部署的 PDB_PREM PDB。

    SQL> CREATE DATABASE LINK link_prem CONNECT TO system IDENTIFIED BY sys USING 'PDB_PREM';
    
    Database link created.
    

克隆内部部署的 PDB

  1. 在 Oracle 数据库云服务计算节点上,执行 CREATE PLUGGABLE DATABASE 命令克隆内部部署 PDB:

    a.为所克隆 PDB 的数据文件创建一个目录。

    [oracle@Cloud-Mig12c ~]$ mkdir -p /u02/app/oracle/oradata/PRODDB/PDB_PREM
    [oracle@Cloud-Mig12c ~]$
    


    b.在 DBaaS CDB 中创建新的 PDB2 PDB。

    SQL> CREATE PLUGGABLE DATABASE pdb2 FROM PDB_PREM@link_prem CREATE_FILE_DEST = '/u02/app/oracle/oradata/PRODDB/PDB_PREM' TEMPFILE REUSE;
    Pluggable database created.
    
  2. 在 Oracle 数据库云服务计算节点上,执行 ALTER PLUGGABLE DATABASE OPEN 命令,打开新的 PDB:

    a.在 tnsnames.ora 文件中配置网络服务名称之后,使用该名称连接到新的 PDB。

    [oracle@Cloud-Mig12c ~]$ sqlplus sys@pdb2 as sysdba
    
    SQL*Plus: Release 12.1.0.2.0 Production on Sun Jun 4 12:45:44 2017
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    Enter password:
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    SQL> SHOW con_name
    
    CON_NAME
    ------------------------------
    PDB2
    


    b.在 DBaaS CDB 中打开新的 PDB。

    SQL> ALTER PLUGGABLE DATABASE pdb2 OPEN;
    Pluggable database altered.
    SQL> CONNECT SYSTEM@PDB2
    Enter password:
    Connected.
    
  3. 或者,在内部部署数据库主机上,调用 SQL *Plus 并将内部部署 PDB 重新设置为读写模式。

    a.在内部部署数据库主机上,调用 SQL *Plus 并以 SYS 用户身份登录内部部署数据库。

    [oracle@cloud ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Sun Jun 4 11:47:11 2017
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    


    b.关闭内部部署的 PDB_PREM PDB。

    SQL> ALTER PLUGGABLE DATABASE pdb_prem CLOSE;
    Pluggable database altered.
    


    c.以读写模式打开内部部署的 PDB_PREM PDB。

    SQL> ALTER PLUGGABLE DATABASE pdb_prem OPEN;
    Pluggable database altered.
    

我们希望本文能为您提供一些帮助,欢迎继续阅读本专栏关于 Oracle 云的后续文章。

关于作者

Joel Pérez 是一位资深 DBA 和 Oracle ACE 总监,同时还是 Oracle 高可用性架构、Oracle 数据库云管理以及 Oracle Database 11g 和 12c 领域的 Oracle 认证大师。他在 Oracle 技术领域拥有超过 17 年的实践经验,致力于从事云、高可用性 (HA)、灾难恢复、升级、复制以及与 Oracle 数据库相关的大部分领域的设计和实施工作。目前,他在云和恩墨(北京)信息技术有限公司担任云技术、Oracle 高可用架构和高可用性领域的首席技术专家和架构师。

Skant Gupta 是 Oracle Database 12c 的 Oracle 认证云专家,Oracle Database 11g 中的 Oracle Real Application Clusters (Oracle RAC) 的 Oracle 认证专家以及 Oracle Database 10g、11g 和 12c 的 Oracle 认证专家。他目前任职于英国的 Vodafone Technology,此前曾在迪拜的 Etisalat 担任高级 DBA。他拥有六年的 Oracle 技术经验,主要致力于云、数据库和高可用性解决方案、Oracle WebLogic Suite 和 Oracle GoldenGate。他经常在全球各地的 Oracle 用户组活动上发表演讲,最近刚在美国、阿联酋和印度的活动上发表了演讲。