如何使用 Data Pump 将内部部署的 Oracle 数据库实例迁移到 Oracle 云行业动态

首页 行业动态 如何使用 Data Pump 将内部部署的 Oracle 数据库实例迁移到 Oracle 云

如何使用 Data Pump 将内部部署的 Oracle 数据库实例迁移到 Oracle 云

2018-06-26 22:41:44


详情:

本文介绍如何使用 Oracle Database 的 Data Pump 特性的常规导出和导入功能将内部部署的源数据库、表空间、模式或表迁移到 Oracle 数据库云服务数据库部署。无论内部部署数据库的字节序格式和数据库字符集如何,都可以使用此方法。

要完成迁移,请执行以下步骤:

  1. 在内部部署数据库主机上,调用 Data Pump Export (expdp) 并导出内部部署数据库。

  2. 创建一个新的 Oracle 数据库云服务。

  3. 连接到 Oracle 数据库云服务计算节点,然后使用安全的复制实用程序将转储文件传输到 Oracle 数据库云服务计算节点。

  4. 在 Oracle 数据库云服务计算节点上,调用 Data Pump Import (impdp) 并将数据导入到数据库。

  5. 验证数据已成功导入后,删除转储文件。

以下几节介绍一个完整过程的示例。该示例演示了模式导出和导入。不过,可以使用同样的过程导出和导入完整的数据库、表空间或表。

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

导出内部部署数据库

在内部部署数据库主机上执行以下步骤,导出模式:

  1. 在内部部署数据库主机上,创建一个用于内部部署数据库导出文件的操作系统目录:

    [oracle@cloud ~]$ mkdir -p /u01/app/dbpump
  2. 在内部部署数据库主机上,调用 SQL *Plus 并以 SYS 用户身份登录内部部署数据库。

    [oracle@cloud ~]$ sqlplus sys@PDB_PREM as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Sun May 21 16:05:26 2017
    Copyright (c) 1982, 2014, Oracle. All rights reserved.
    Enter Password:
    Connected to:
    Oracle Database12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the partitioning, OLAP, Advanced Analytics and Real Application Testing options
  3. 在内部部署数据库中创建一个引用操作系统目录的目录对象。

    SQL> create directory prem_to_cloud as '/u01/app/dpdump';Directory created
  4. 退出 SQL*Plus。

  5. 在内部部署数据库主机上,以 SYSTEM 用户身份或者以具有 DATAPUMP_EXP_FULL_DATABASE 角色的其他用户身份调用 Data Pump Export 实用程序,导出内部部署模式。根据提示输入用户的密码。

    [oracle@cloud ]$ expdp system@PDB_PREM full=y directory=prem_to_cloudExport: Release 12.1.0.2.0 - Production on Sun May 21 16:05:26 2017
    Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.
    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
    ...

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

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

    - 在 Service Name 中,输入 Cloud-Mig
    - 从 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 创建新服务 (Cloud-Mig)

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

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

    - 在 DB Name (SID) 中,输入 MIGORCL
    - 设置您的管理密码并确认密码(这将是您的 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-Mig) 打开数据库的主页面。

    图 5 云数据库的主页面

    图 5. 云数据库的主页面

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

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

    图 6 云数据库

    图 6. 选择 Access Rules 项目

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

    图 7 启用监听器

    图 7. 启用 ora_p2_dblistener 规则

连接到云数据库、传输转储文件并导入数据

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

    图 8 使用 PuTTY 连接

    图 8. 使用 PuTTY 连接到数据库云服务计算节点

  2. 在 Oracle 数据库云服务计算节点上,检查可插拔数据库 (PDB) 和 pmon 进程:

    [oracle@Cloud-Mig ~]$ ps -ef|grep pmonoracle    311 32724 0 10:31 pts/1    00:00:00 grep pmon
    oracle   7695     1 0 07:57 ?        00:00:00 ora_pmon_MIGORCL
    [oracle@Cloud-Mig ~]$ sqlplus sys as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Sun May 21 10:31:42 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, Oracle Label Security, OLAP, Advanced Analytics 
    and Real Application Testing options
    SQL> show pdbs
       CON_ID   CON_NAME     OPEN MODE      RESTRICTED
    ----------  ----------   -----------    ------------
         2      PDB$SEED     READ ONLY      NO
         3      PDB1         READ WRITE     NO
  3. 使用安全的复制实用程序将转储文件传输到 Oracle 数据库云服务计算节点。

    在本例中,转储文件会复制到 /u01 目录。根据要传输文件的大小选择适当的位置。

    a.在 Oracle 数据库云服务计算节点上,为转储文件创建一个目录:

    [oracle@Cloud-Mig admin]$ mkdir -p /u01/app/dump



    b.在使用 scp 命令复制导出的转储文件之前,确保提供对 Oracle 数据库云服务计算节点的访问权限的 SSH 私钥在您的内部部署主机上可用。

    c.在内部部署数据库主机上,使用 scp 命令将转储文件传输到 Oracle 数据库云服务计算节点:

    [oracle@cloud dpdump]$ lsexpdat.dmp   export.log
    
    [oracle@cloud dpdump]$ scp -i /home/oracle/rsa-key-20170111.ssh expdat.dmp oracle@129.157.129.107:/u01/app/dumpEnter passphrase for key '/home/oracle/rsa-key-20170111.ssh':
    expdat.dmp               4%  2704KB 856.1KB/s   01:12 ETA
  4. 在 Oracle 数据库云服务计算节点上,将数据导入到数据库中:

    a.在 Oracle 数据库云服务计算节点上,调用 SQL *Plus 并以 SYSTEM 用户身份登录数据库。

    [oracle@Cloud-Mig admin]$ sqlplus sys@pdprem2 as sysdbaSQL*Plus: Release 12.1.0.2.0 Production on Sun May 21 11:56:53 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, Oracle Label Security, OLAP, Advanced Analytics and Real Application Testing options



    b.在 Oracle 数据库云服务数据库中,创建一个目录对象。

    SQL> create directory cloud_mig as '/u01/app/dpump';Directory created.



    c.如果它们不存在,则为将要导入的对象创建表空间。

    d.退出 SQL*Plus。

    e.在 Oracle 数据库云服务计算节点上,调用 Data Pump Import 实用程序并连接到数据库。将数据导入到数据库中。

    [oracle@Cloud-Mig admin] $ impdb system@pdbprem2 full=y directory=cloud_migImport: Release 12.1.0.1.0 - Production on Sun May 21 12:24:39 2017
    Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
    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
    ...
  5. 验证数据已成功导入后,您可以删除 expdat.dmp 文件。至此,整个过程已完成。

我们希望本文能为您提供一些帮助,欢迎继续阅读本专栏关于 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 用户组活动上发表演讲,最近刚在美国、阿联酋和印度的活动上发表了演讲。


相关 教程

12c OCM升级培训

12c OCM升级培训

11g OCM于2019年12月31日退役,12c OCM成为目前最新、最高版本的Oracle DBA认证。含金量无出其右。}

11g OCP培训

11g OCP培训

11g OCP培训}

OCJP认证培训

OCJP认证培训

OCJP认证培训}

网上报名 免费试学+报名即可领取免费资料

收缩

QQ在线客服

  • 刘老师
  • 在线咨询
  • 麦老师
  • 在线咨询
  • 黄老师
  • 在线咨询
在线免费试课
获取免费课程视频资料