作者:Joel Pérez 和 Skant Gupta
本文介绍如何使用 Oracle 数据库的 Data Pump 特性的“可传输表空间”模式将整个数据库从内部部署主机迁移到 Oracle 数据库云服务数据库部署。
注:仅当满足以下条件时才可以使用此方法:内部部署平台是小端,内部部署数据库和 Oracle 数据库云服务数据库的数据库字符集相兼容。
可传输表空间方法通常比常规导出/导入方法的速度要快得多,因为只需将包含所有实际数据的数据文件复制到目标位置。您使用 Data Pump 仅将表空间对象的元数据传输到新数据库。
要使用 Data Pump 可传输表空间方法将内部部署的 Oracle 数据库实例迁移到 Oracle 数据库云服务上的数据库部署,请执行以下操作:
expdp
) 执行可传输表空间导出。impdp
) 并连接到数据库。以下几节中的示例演示使用 Data Pump 可传输表空间方法将 Oracle Database 11g 第 2 版的内部部署实例迁移到 Oracle 数据库云服务数据库所需的任务。不过,也可以使用类似的过程来迁移 Oracle Database 12c 第 1 版或 12c 第 2 版的内部部署实例中的表空间。
本示例执行 TBSP_DATA 和 TBSP_INDEX 表空间的迁移。
在本例中,内部部署数据库位于一台 Linux 主机上。
[oracle@cloud ~]$ mkdir -p /u01/app/dpump
[oracle@cloud ~]$ sqlplus SYSTEM SQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 1 01:49:18 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>
SQL> CREATE DIRECTORY prem_to_cloud AS '/u01/app/dpump'; Directory created.
SQL> SELECT tablespace_name, file_name FROM dba_data_files where tablespace_name = 'TBSP_DATA'; TABLESPACE_NAME ------------------------------ FILE_NAME -------------------------------------------------------------- TBSP_DATA /u01/app/oracle/oradata/ORA11G/tbspdata01.dbf SQL> SELECT tablespace_name, file_name FROM dba_data_files where tablespace_name = 'TBSP_INDEX'; TABLESPACE_NAME ------------------------------ FILE_NAME -------------------------------------------------------------- TBSP_DATA /u01/app/oracle/oradata/ORA11G/tbspindex01.dbf
SQL> ALTER TABLESPACE tbsp_data READ ONLY; Tablespace altered. SQL> ALTER TABLESPACE tbsp_index READ ONLY; Tablespace altered.
[oracle@cloud ~]$ expdp system TRANSPORT_TABLESPACES=tbsp_data,tbps_index TRANSPORT_FULL_CHECK=YES DIRECTORY=prem_to_cloud Export: Release 11.2.0.4.0 - Production on Sat Jun 3 23:30:03 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01": system/******** TRANSPORT_TABLESPACES=tbsp_data,tbps_index TRANSPORT_FULL_CHECK=YES DIRECTORY=prem_to_cloud
Cloud-Mig11g
。图 1. 创建新服务 (Cloud-Mig11g)
MIGORCL
。25
。rsa-key-20170111.pub
。图 2. 指定服务详细信息
图 3. 创建云数据库实例
几分钟后,云数据库实例已成功创建。
图 4. 云数据库已创建
图 5. 云数据库的主页面
图 6. 选择 Access Rules 项目
b.对于 ora_p2_dblistener 规则,从 Actions 菜单中选择 Enable。图 7. 启用 ora_p2_dblistener 规则
图 8. 使用 PuTTY 连接到机器
/u01
目录。根据要传输文件的大小选择适当的位置。[oracle@Cloud-Mig11g ~]$ mkdir -p /u01/app/on_premise [oracle@Cloud-Mig11g ~]$
scp
实用程序复制文件之前,确保提供对 Oracle 数据库云服务计算节点的访问权限的 SSH 私钥在您的内部部署主机上可用。scp
实用程序将转储文件和可传输集的所有数据文件传输到 Oracle 数据库云服务计算节点。[oracle@cloud ~]$ scp -i rsa-key-20170111.ssh /u01/app/dpump/expdat.dmp oracle@129.144.152.230:/u01/app/on_premise Enter passphrase for key 'rsa-key-20170111.ssh': expdat.dmp 100% 97MB 121.3KB/s 13:42 [oracle@cloud ~]$ scp -i rsa-key-20170111.ssh /u01/app/oracle/oradata/ORA11G/tbspdata01.dbf oracle@129.144.152.230:/u02/app/oracle/oradata/PROD Enter passphrase for key 'rsa-key-20170111.ssh': tbspdata01.dbf 100% 141MB 183.7KB/s 16:00 [oracle@cloud ~]$ scp -i rsa-key-20170111.ssh /u01/app/oracle/oradata/ORA11G/tbspindex01.dbf oracle@129.144.152.230:/u02/app/oracle/oradata/PROD Enter passphrase for key 'rsa-key-20170111.ssh': tbspindex01.dbf 100% 14MB 183.7KB/s 2:00 [oracle@cloud ~]$
SQL> ALTER TABLESPACE tbsp_data READ WRITE; Tablespace altered. SQL> ALTER TABLESPACE tbsp_index READ WRITE; Tablespace altered.
SQL> CREATE DIRECTORY on_cloud AS '/u01/app/on_premise'; Directory created.
SQL> CREATE USER test PROFILE default IDENTIFIED BY test TEMPORARY TABLESPACE temp ACCOUNT UNLOCK; User Created.
TRANSPORT_DATAFILES
选项将数据导入数据库。[oracle@Cloud-Mig11g PROD]$ impdp system DIRECTORY=on_cloud \ > TRANSPORT_DATAFILES='/u02/app/oracle/oradata/PROD/tbspdata01.dbf' \ >'/u02/app/oracle/oradata/ORCL/tbspindex01.dbf' Import: Release 11.2.0.4.0 - Production on Sat Jun 3 19:16:50 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning and Real Application Testing options Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded Source time zone version is 14 and target time zone version is 28. Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": system/******** DIRECTORY=on_cloud TRANSPORT_DATAFILES=/u02/app/oracle/oradata/PROD/ tbspdata 01.dbf,/u02/app/oracle/oradata/ORCL/tbspindex01.dbf
SQL> ALTER TABLESPACE tbsp_data READ WRITE; Tablespace altered. SQL> ALTER TABLESPACE tbsp_index READ WRITE; Tablespace altered.
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 用户组活动上发表演讲,最近刚在美国、阿联酋和印度的活动上发表了演讲。