暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle自治事务处理云服务抢先体验3

凛冬未至 2018-10-09
808

接上文:

Oracle自治事务处理云服务抢先体验2


上一篇文章中我们介绍了通过DBMS_CLOUD包将OCI Object Storage上的文本文件导入到ATP中的实现方法。但在实际应用中,比如将本地数据库迁移到ADW/ATP时,可能需要将原数据库的dmp文件import到ADW/ATP中,这是DBMS_CLOUD包所不能处理的,那么就要用到impdp命令来进行数据的导入到ADW/ATP中。但是我们也知道,ADW/ATP中我们并不能直接访问数据库所在的服务器,所以我们需要一台可以运行import命令的机器来执行这个操作。

本文将介绍通过一台装有Instant Client的Oracle Linux x86-64的OCI实例,来连接到ADW/ATP,并将dmp文件impdp到ADW/ATP中。


下载并安装Instant Client到Oracle Linux实例中

访问下面的地址来下载最新版的Instant Client软件

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

选择下载最新版本的下列文件:

instantclient-basic-linux.x64-18.3.0.0.0dbru.zip

 instantclient-basiclite-linux.x64-18.3.0.0.0dbru.zip

instantclient-sqlplus-linux.x64-18.3.0.0.0dbru.zip

 instantclient-tools-linux.x64-18.3.0.0.0dbru.zip


将上面下载在文件上传到 Linux x86-64的OCI实例中


上传之后在Linux实例中解压所有zip文件

Unzip ‘instant*.zip’


当出现下面的问题时,输入【A】后按回车

replace instantclient_18_3/adrci?


解压成功后显示如下画面:


你可以进入解压后的文件夹来确认解压的文件夹及文件


创建一个Instant Client的工作目录

mkdir /opt/oracle


将前一步解压后的文件夹复制到工作目录下面:

cp –Rp /home/opc/InstantClient/instantclient_18_3 /opt/oracle


接下来安装libaio,注意这个包在有些linux发行版本中称为libaio1.

sudo yum install libaio

本机中因为已经安装该包,所以显示已经安装


下载并设定客户端信任文件

进入ADW/ATP的实例界面,点击“ServiceConsole”界面进入ATP数据库的控制台,在“Adminitration”中点击“Download Client Credentials”,下载客户端信任文件。


将下载后的客户端信任文件上传到Linux实例,并解压该文件。将解压后的文件夹拷贝到安全目录下面,比如/home/adwc_credentials。


编辑sqlnet.ora文件,将该文件中的[“?/network/admin]替换为拷贝后的工作目录(/home/adwc_credentials).

WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/adwc_credentials")))


SSL_SERVER_DN_MATCH=yes


设置如下环境变量,以使sqlplus能够连接到ADW/ATP实例:

export LD_LIBRARY_PATH=/opt/oracle/instantclient_18_3:$LD_LIBRARY_PATH

export PATH=/opt/oracle/instantclient_18_3:$PATH

export TNS_ADMIN=/home/adwc_credentials


然后使用sqlplus连接到ADW/ATP实例,admin为用户名,adw01_medium为tnsnames.ora文件中该实例的一个服务名。密码在之后输入,该密码为你创建ADW/ATP时设置的密码。


sqlplus admin@adw01_medium


至此,您已经成功的连接上了ADW/ATP实例。


导出本地数据库并将dmp文件上传到OCI对象存储

连接到本地数据库,这里使用DBCS的数据库模拟本地数据库。


确认本地的数据表和数据


为数据导出创建directory对象,并给用户赋予读写权限。

create or replace directory export_dir as '/home/oracle'; 

grant read, write on directory export_dir to testuser2;


执行数据导出命令以导出数据库。

expdp TESTUSER2/Oracle18#Oracle18#@OCIPDB1 \

exclude=index, cluster, indextype, materialized_view, materialized_view_log, materialized_zonemap, db_link \

data_options=group_partition_table_data \

parallel=16 \

schemas=TESTUSER2 \

directory=export_dir \

dumpfile=export%u.dmp \

logfile=exp.log


在ADW中,为了更快速和简单的移行数据,Oracle推荐使用下面的数据泵参数。

exclude=index, cluster, indextype, materialized_view, materialized_view_log, materialized_zonemap, db_link

data_options=group_partition_table_data

parallel=n

schemas=schema name

dumpfile=export%u.dmp


如下图所示本地数据库导出成功。


将所有导出的dmp文件上传到OCI对象存储桶中,详细请参照体验2中的相关描述。


创建对象存储认证令牌

如果没有创建对象存储认证令牌,请参照体验2中的方法创建。

然后在sqlplus中执行下面的示例代码,创建一个信任文件。

BEGIN

DBMS_CLOUD.CREATE_CREDENTIAL(

    credential_name => 'CRED_FOR_IMPORT',

    username => ‘XXXXX@XXXX',

    password => 'XXXXXXXXXX'

  );

END;

/

username为OCI对象存储所属用户名。

password为生成的认证令牌。


将dmp文件导入到ADW/ATP实例中

在linux实例中执行下面的示例代码,以导入dmp文件


impdp admin/************@adw01_medium \

directory=data_pump_dir \

credential=CRED_FOR_IMPORT \

dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/iwi123456/Bucket01/export01.dmp,https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/iwi123456/Bucket01/export02.dmp,https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/iwi123456/Bucket01/export03.dmp,https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/iwi123456/Bucket01/export04.dmp,https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/iwi123456/Bucket01/export05.dmp,https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/iwi123456/Bucket01/export06.dmp, \

full=y \

parallel=16 \

partition_options=merge \

transform=segment_attributes:n \

transform=dwcs_cvt_iots:y \

transform=constraint_use_default_index:y \

exclude=index, cluster, indextype, materialized_view, materialized_view_log, materialized_zonemap, db_link


dmp文件的路径为:

https://swiftobjectstorage.<region name>.oraclecloud.com/v1/<tenant name>/<bucket name>/dmp文件名


如下图所示,数据导入成功。


在sql developer中确认导入的数据表和数据


至此,完成了本地数据库迁移到ADW/ATP的基本操作。

从此以后,你就可以和烦人的数据库管理工作,比如备份,恢复,打补丁,性能调优等工作说再见了,删库跑路?不存在的。更高级的工作在等着你,幸福的人生从此开始,你还在等什么?赶紧将数据库迁移到Oracle自治事务处理云服务来吧。

文章转载自凛冬未至,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论