查看原文
其他

手把手教你上云 | 使用DMS迁移Oracle数据库

2016-09-27 蓝勇 AWS云计算

作者简介
蓝勇AWS解决方案架构师负责基于AWS的云计算方案架构的咨询和设计,同时致力于AWS云服务在国内的应用和推广,在DR解决方案、数据仓库、RDS服务、企业应用、自动化运维等方面有着广泛的设计和实践经验。在加入AWS之前,在甲骨文中国担任资深售前工程师,负责售前方案咨询和架构设计,在数据库、中间件、大数据及企业应用方面有丰富经验。
前面博客《Oracle数据库迁移到AWS云的方案》介绍了AWS数据库迁移的几种基本方法,本文主要介绍如何使用AWS的DMS服务完成数据库的迁移。
1DMS服务介绍
为了使用户更容易的将数据库迁移到云中,AWS已经在海外区域推出了AWS Database Migration Service服务,如果您的数据库在海外,DMS可以在源数据库不停机的情况下,帮您将数据迁移到AWS云中。DMS的功能非常强大,支持同构数据库的迁移,如Oracle迁移到Oracle;也支持异构数据库直接的迁移,如Oracle到Mysql等。在数据库迁移期间,源数据库无需停机,并且能将迁移期间数据的更改持续复制到目标数据库。因此迁移完成后,您只需在短暂的停机时间内直接切换数据库,从而保证业务数据的完整性。
在中国BJS区域,还没有推出DMS服务,但是提供了Database Migration Tool(DMT)工具,您可以使用DMT工具来完成数据库迁移。

2使用DMS完成迁移
使用DMS服务必须确保源或目标数据库有一个在AWS云中。 使用DMS服务的步骤如下:
步骤一:Create migration
登陆AWS全球区域的Console,选择DMS,点击“Create migration”,我们便来到了“welcome”界面,从该界面我们可以看到,通过DMS进行数据迁移我们至少需要一个源数据库、目标数据库和复制实例。当然,DMS也支持多个源数据库向一个目标数据库的迁移以及单个源数据库向多个目标数据库的迁移。迁移时,数据通过一个运行在复制实例上的任务将源数据库复制到目标数据库。点击“Next”进行复制实例的创建。
步骤二:创建“Replication Instance”
您在进行数据库迁移过程中的第一个任务是创建具有足够存储空间和处理能力的复制实例,通过复制实例来执行您分配的任务并将数据从您的源数据库迁移到目标数据库。此实例所需的大小取决于您要迁移的数据和您需要执行的任务量。具体配置参数见下表1。
Name复制实例的名称,该名称在您所选定的区域是唯一的。
Description对复制实例的简单描述。
Instance class选择与您需要您的迁移的配置实例类。该实例必须有足够的存储、 网络和处理能力来成功地完成迁移。复制实例类主要有t2(General Purpose)和c4(Compute Optimized)两种类型。
VPC选择您想要使用的VPC。
Publicly accessible如果您想要互联网访问您的复制实例,请选择此选项。
表 1
如果您需要为网络和加密设置值,请选择高级选项卡。具体参数见表2。
Allocated storage(GB)为您的复制实例选择存储值。
Replication Subnet Group选择定义了哪个子网和IP范围的复制实例可以使用您选择的VPC的那个复制子网组。
Availability zone选择您的源数据库所在的可用区。
VPCsecurity group为您的复制实例指定安全组来控制出站流量。
KMSencryption key这是将用来保护密钥用于加密此数据库卷的主密钥。你可以通过去IAM控制台中的加密密钥选项卡来创建一个新的主加密密钥。如果您选择无,将使用您的帐户的默认密钥。
表 2
步骤三:创建数据库连接
当您在创建复制实例时,您可以指定源和目标数据库。源数据库和目标数据库可以在AWS的EC2上,也可以是AWS的关系数据库服务(RDS)的DB实例或者本地数据库。在设置源和目标数据库时,具体参数可以参见表3。您也可以通过高级选项卡来设置连接字符串和加密密钥的值。
Endpoint identifier用来定义您数据库终结点的标签。
Source/Target engine此终结点要连接的数据库引擎的类型(支持的类型为MySQL、Oracle、Aurora、Postgres、MariaDB,SQL Sever和Sybase)
Server name需要连接的数据库所在服务器名称。以RDS上创建的Oracle数据库实例为例:“wanjie-demo-db-target.cp9mww8b0rwh.us-west2.rds.amazonaws. com:1521”,冒号前面为服务器名称,冒号后面是Oracle数据库的端口号。
Port数据库端口号
User name数据库用户名
Password数据库密码
SIDServer ID,对Oracle数据库而言,其SID为“ORCL”。
表 3
等图示上部分的显示变成“Replication instance created successfully”并且“Run test”按钮变成正常,然后测试,确保测试结果为“Connection tested Successfully”,由于需要从AWS服务端连接测试数据库,因此需要设置好security group,设置的security group必须确保复制实例能够访问源和目标数据库。需要的话,可以短暂的将security group 1521的访问设置为 0.0.0.0/0,测试成功后,点击“Next”按钮。
步骤四:创建“task”
源数据库和目标数据库建立连接后,您需要创建一个任务来指定哪些表需要迁移,使用目标架构来映射数据并且在目标数据库中创建新表。作为创建任务的一部分,您可以选择迁移类型:迁移现有数据、迁移现有数据并复制正在进行的更改,或只复制更改的数据。
如果选择“Migrate existing data and replicate data changes”选项需要打开Task Settings中的supplemental loging开关。在Table Mapping中Schema to Migrate选择“Oracle”,点击“Create Task”。
当您创建的task状态从creating变为ready的时候,您的task便创建好了。点击该“task”并点击上方的“Start/Resume”,您数据迁移任务便开始了!
数据库迁移完成后,目标数据库在您选择的时间段内仍会与源数据库保持同步,使您能够在方便的时候切换数据库。

3总结
从上面过程我们可以看到,只需要简单的配置,DMS就可以帮助我们完成数据库的迁移任务,并且DMS服务是免费的,迁移过程中用到的资源是收费的。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存