使用 Oracle Data Pump 将数据库迁移到 AWS 的 RDS Oracle 数据库
- 2019-11-20
本文字数:2182 字
阅读完需:约 7 分钟
如何将Oracle数据库从数据中心迁移到AWS云上是DBA经常遇到的问题,迁移Oracle数据库有多种方式:
(1)使用AWS DMS服务迁移
(2)使用Oracle SQL Developer迁移
(3)使用Oracle Data Pump迁移
(4)使用Oracle Export/Import迁移
(5)使用Oracle SQL Loader迁移
如果需要了解不同的迁移方法,可以参考 博客《Oracle数据库迁移到AWS云的方案》 。
### 2.使用Oracle Data Pump迁移
本文主要讨论使用Oracle Data Pump将Oracle数据库迁移到RDS数据库。示例数据库的信息如图。
![](https://s3.cn-north-1.amazonaws.com.cn/images-bjs/0929-1.png)下面是模拟在数据中心的Oracle11g源数据库中创建用户和表,并将源数据库迁移到AWS云中RDS Oracle 11g数据库的全过程。
#### 步骤一:初始化源数据库并使用Data Pump导出
(1)使用SQL Plus登录源Oracle数据库
sqlplus / as sysdba
(2)创建用户test
create user test identified by welcome1;
(3)为新创建用户grant权限(实际使用请给用户grant合适的权限)
grant dba to test;
(4)为用户test创建表
create table test.aa(id varchar(20) not null primary key,name varchar2(30));
(5)为表插入数据并commit
SQL> insert into test.aa values(‘1111′,’1111name’);
1 row created.
SQL> insert into test.aa values(‘2222′,’2222name’);
1 row created.
SQL> commit;
Commit complete.
(6)在源数据库所在的Linux上逐级创建下面文件目录
mkdir /home/oracle/datapump/datafiles
(7)在SQLPlus中创建数据库Directory
create directory dpump_dir as ‘/home/oracle/datapump/datafiles’;
grant read,write on directory dpump_dir to test;
(8)使用expdp命令导出test用户的所有表
expdp test1/welcome123 directory=dpump_dir dumpfile=test.dmp
expdp test1/welcome123 directory=dpump_dir dumpfile=test1.dmp
#### 步骤二:使用SQL Plus连接RDS数据库,并创建数据库目录对象
(1)在源数据库上配置RDS数据库的tnsnames
cd $ORACLE_HOME/network/admin
vi tnsnames.ora
输入tnsnames的内容如下:
ORARDS=(description=(address_list=(address = (protocol = TCP)(host = RDS_HOST_NAME)(port = RDS_PORT)) )(connect_data =(SID=RDS_SID)))
(2)使用SQLPLUS连接远程RDS数据库
sqlplus oracle/welcome1@ORARDS
(3)使用tnsping检查RDS连接信息
如果连接有错误,可以使用下面命令查看通讯是否正常
tnsping “(description=(address_list=(address = (protocol = TCP)(host = RDS_HOST_NAME)(port = RDS_PORT)))(connect_data =(SID= RDS_SID)))”
tnsping应该返回“OK (xx msec)”类似文字。
如果tnsping不通请检查RDS对应的security group,RDS的security group中应当允许当前服务器通过TCP协议访问RDS数据库的端口。
(4)创建目标RDS的directory对象
exec rdsadmin.rdsadmin_util.create_directory(‘dpump_dir1’);
创建成功后退出连接RDS的SQL Plus客户端。
**步骤三:将源数据库Data Pump导出的文件上传到RDS数据库**
(1)连接源数据库并创建database link
create database link to_rds connect to oracle identified by welcome1 using ‘(description=(address_list=(address = (protocol = TCP)(host = RDS_HOST_NAME)(port = RDS_PORT)))(connect_data =(SID=RDS_SID)))’;
(2)运行DBMS_FILE_TRANSFER包将数据传输到RDS服务器的目录
BEGIN
DBMS_FILE_TRANSFER.PUT_FILE(
source_directory_object => ‘dpump_dir1’,
source_file_name => ‘test.dmp’,
destination_directory_object => ‘dpump_dir1’,
destination_file_name => ‘test.dmp’,
destination_database => ‘to_rds’
);
END;
**步骤四:通过impdp命令将远程的RDS数据库文件导入**
(1)在源数据库服务器上运行impdp命令导入数据
impdp oracle@ORARDS dumpfile=test.dmp directory=dpump_dir1 full=y
执行完毕检查test用户和相关的表。
### 3. 总结
从上面的过程我们可以看到,将一个Oracle数据库迁移到RDS的过程并不复杂,如果源数据库很大,由于需要导出数据、将数据上传到RDS的Data Pump目录、导入数据,迁移的过程也会比较长。上述过程假设了我们生产数据库的业务有足够的停机时间,在迁移过程中数据不会变化。如果迁移过程中,源数据库会发生变化,那么我们就需要同步数据中心和RDS数据库间的日志了。
如果源数据库很大,我们也可以在AWS上启动一台中间服务器,并在中间服务器上安装Oracle的客户端软件,将源数据库的Data Pump导出文件分片然后scp复制、Tsunami UDP加速上传等方式将文件上传到中间服务器,然后上传到RDS的Data Pump目录,这样能加速迁移的过程。
#### 作者介绍:
![](https://s3.cn-north-1.amazonaws.com.cn/images-bjs/Lan+Yong-mini.jpg)
蓝勇
AWS解决方案架构师,负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,在DR解决方案、数据仓库、RDS服务、企业应用、自动化运维等方面有着广泛的设计和实践经验。在加入AWS之前,在甲骨文中国担任资深售前工程师,负责售前方案咨询和架构设计,在数据库,中间件,大数据及企业应用方面有丰富经验。
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/oracle-data-pump-rds-oracle/
更多内容推荐
Day386&387
FileChannel fromChannel = aFile.getChannel();
2022-05-01
语音信号处理 14:语音信号的特征应用
语音信号除了有时域特征、频域特征,还有一些如共振峰和基音周期等固有特征。
2021-12-28
康威定律如何解释微服务的合理性
微服务这个概念很早就提出了, 真正火起来是在2016年左右,而康威定律(Conway's Law)就是微服务理论基础。
2022-07-09
产品思维和产品意识 · 什么是产品思维与意识(第一部分)
2023-09-18
将博客搬至 CSDN
将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN将博客搬至CSDN
2022-04-24
庚戌篇 集識創世紀《「內元宇宙」聯載》
五識(眼識、耳識、鼻識、舌識、身識)都如有了神通般(天眼通、天耳通、天鼻通、天舌通、天身通)的通暢,這不就是【五根。五塵。五識】修行的道場......
2022-04-29
读《Software Systems Architecture》(26)—— The Performance and Scalability Perspective
读《Software Systems Architecture》(26)—— The Performance and Scalability Perspective
2022-06-15
02. 业务经理在管理方面要承担哪 7 个角色和职责?
2023-10-17
金融行业商业分析案例:信贷逾期分析
2022-12-30
CVE-2022-22947 分析
[[spel inj|SPEL]] CASTING AND EVIL BEANS
2022-08-31
Matlab 常用图像处理命令 108 例(六)
66.imshow 67.imwrite 68.ind2gray 69.ind2rgb 70.iptgetpref 71.iptsetpref 72.Iradon 73.isbw 74.isgray 75.isind 76.isrgb 77.makelut 78.mat2gray 79.mean2 80.medfilt2 81.montage 82.nlfilter 83.ntsc2rgb 84.ordfilt2 85.phantom
2023-03-16
架构训练营总结
之前看过一侧故事:孔明在荆州,与石广元、徐元直、孟公威俱游学,三人务于精熟,而亮独观其大略。亮谓三人曰:“卿三人仕进,可至刺史郡守也。”三人问其所至,亮笑而不言。”后来,石广元等三人果然只做了省部级的官,而诸葛亮则官拜丞相、位级人臣。
2022-05-15
Go 语言学习查缺补漏 ing Day8
本【Go语言查缺补漏ing】系列主要是帮助新手Gopher更好的了解Go语言的易错点、重难点。
2021-12-13
15|做好计划,行动才能变结果(一)
2023-07-28
openGauss 数据库源码解析系列文章—安全管理源码解析(五)
[openGauss](javascript:void(0);) 2023-08-04 18:01 发表于四川
2023-08-08
围炉夜话|学了新技术,在公司用不上怎么办?
公司用的技术栈比较老,学了新的技术在公司也无用武之地,你怎么看?
2023-01-16
企评家 | 如何评价企评家企业成长性评价系统?
企评家
2022-05-17
金融行业商业分析案例:金融第三方支付案例分析
2022-12-30
Sentinel 与 OpenFeign 服务熔断那些事
Sentinel与OpenFeign 服务熔断那些事
2022-06-05
Matlab 常用图像处理命令 108 例(三)
26.edge 27.erode 28.fft2 29.fftn 30.fftshift 31.filter2 32.freqspace 33.freqz2 34.fsamp2 35.fspecial 36.ftrans2
2023-03-13
推荐阅读
CorelDRAW 2023 for Mac(矢量图形设计工具)
2023-11-09
彩票的导师都是怎么赚钱的——玩家经验分享
2023-09-05
灞桥康养论坛成功举行 多方聚力共创康养文旅产业高质量发展新篇章
2023-09-19
20. 不是所有客户需求都要满足,如何精准筛选,抓大放小?(下)
2023-10-17
Navicat Premium 16 Mac 数据库管理工具
2023-10-16
致谢
2023-12-01
09. 懂战略——如何拆解战略 1
2023-10-17
电子书
大厂实战PPT下载
换一换 叶正盛 | NineData 创始人 &CEO
陈仲铭(ZOMI酱) | 华为 昇腾生态技术首席
林润⻰ | 字节跳动 STE 团队系统⼯程师
评论