使用 AWS CLI 进行 AWS DMS Serverless 复制任务的编排 数据库博客
使用AWS CLI进行无服务器的AWS DMS复制任务编排
核心要点
在现代IT操作中,数据库迁移是至关重要的一环,尤其是在您需要切换数据库系统时,要确保最小的停机时间和数据丢失。AWS DMS Serverless为数据库迁移提供了自动化管理、扩展、高可用性和基于工作负载变化的计费模型,优化了运营灵活性和成本。
文章概览
本文将介绍如何使用AWS DMS Serverless和AWS命令行接口AWS CLI将MySQL数据库迁移到PostgreSQL。
AWS CLI的优势
AWS CLI是一个强大的工具,可以高效管理AWS资源。它允许您自动化任务,将AWS功能集成到脚本和应用程序中,并跨不同操作系统进行操作。AWS CLI通过AWS身份和访问管理IAM角色和权限可以安全地与AWS资源进行交互,从而实现灵活定制和高效资源管理。
AWS DMS Serverless的优点
AWS DMS Serverless相较于传统的实例提供了多个优势,以下是一些关键优点:
简化管理和操作:AWS DMS Serverless自动扩展资源,无需手动管理复制实例,能有效节省时间与精力。成本效益:不存在前期成本,支持类内自适应缩放,非常适合不可预测的工作负载。高可用性:利用Amazon的全球基础设施,确保迁移任务的可访问性,降低停机和数据丢失风险。可扩展性:可根据数据传输率自动调整资源,支持从小规模迁移到大规模企业数据传输。易用性:可以通过AWS DMS控制台或AWS CLI轻松创建和管理复制任务。AWS DMS Serverless的自动扩展
AWS DMS Serverless自动扩展依赖于对Amazon CloudWatch基础实例指标的监控,以决定何时应该扩展AWS DMS容量单位DCUs。截至2024年3月,AWS DMS Serverless使用CPUUtilization和CapacityUtilization的指标进行缩放。
下面是当前的扩展阈值:
扩展upCPUUtilization gt 90 在过去10分钟的10个数据点中CapacityUtilization gt 80 在过去10分钟的10个数据点中
缩减down
CapacityUtilization lt 50 在过去1小时的60个数据点中CPUUtilization lt 10 在过去1小时的60个数据点中为了方便理解,下面的表格总结了AWS DMS无服务器版本和传统版本的主要差异:
特性AWS DMS无服务器AWS DMS提供实例资源提供和扩展自动手动计费根据工作负载减少成本固定成本管理简化复杂配置选项限制更广泛数据源和目标截至2024年3月MySQL、PostgreSQL、Oracle等更广泛的源和目标解决方案概述
以下部分将通过AWS CLI引导您完成MySQL到PostgreSQL的数据库表迁移步骤。主要步骤包括:
创建源和目标AWS DMS端点。确定AWS DMS复制子网组与EC2安全组。创建AWS DMS无服务器复制配置。启动AWS DMS无服务器复制。停止AWS DMS无服务器复制。可选修改AWS DMS无服务器复制配置。可选恢复或重新加载AWS DMS无服务器复制。可选在AWS DMS无服务器复制运行时重新加载单个表。可选检查AWS DMS无服务器复制的表统计信息。迁移后清理。前提条件
您应具备以下前提条件:
已安装并配置AWS CLI v2并具备相应的凭证。具备创建和配置Amazon关系数据库服务RDS和AWS DMS资源的IAM权限。已设置并可访问MySQL源和PostgreSQL目标数据库实例。已设置AWS DMS复制子网组和EC2安全组。创建源和目标端点
使用以下代码定义MySQL数据库的源端点和PostgreSQL数据库的目标端点:
bash
MySQL源端点
aws dms createendpoint endpointidentifier climysqlsource endpointtype source enginename mysql servername rdsmysqldb3f346432534abc2ds23sf2apsoutheast2rdsamazonawscom username dbuser password port 3306
PostgreSQL目标端点
aws dms createendpoint endpointidentifier clipsqltarget endpointtype target enginename postgres servername rdspostgresqlcba9abc9defgabc2ds23sf2apsoutheast2rdsamazonawscom username dbuser password port 5432 databasename mydata
确定AWS DMS复制子网组和EC2安全组
使用以下命令确定AWS DMS复制子网组和EC2安全组的名称:
bash
查找先前创建的DMS复制子网组
aws dms describereplicationsubnetgroups query ReplicationSubnetGroups[contains(ReplicationSubnetGroupIdentifierdms)]{ReplicationSubnetGroupIdentifierReplicationSubnetGroupIdentifier}
查找先前创建的EC2安全组
aws ec2 describesecuritygroups query SecurityGroups[contains(GroupNameEC2)]{grpnameGroupNameidGroupId}
创建AWS DMS Serverless复制配置
定义AWS DMS无服务器复制配置,代码如下:
bashaws dms createreplicationconfig replicationconfigidentifier climysql2psql sourceendpointarn arnawsdmsapsoutheast2123456789012endpointABCD4E67FGHIJJKLMNOPQRSTUUVWXY2ZABCDE3F targetendpointarn arnawsdmsapsoutheast2123456789012endpointHG7FED2CB5AZ7YXWVUTSRQPO3M3LKJIHGFED4CBA computeconfig { MaxCapacityUnits 4 MultiAZ false ReplicationSubnetGroupId dmsreplicationsubnetgroup2b2cdefghijklm7no VpcSecurityGroupIds [sg1123ab4566cd7ef89]} replicationtype fullloadandcdc tablemappings { rules [ { ruleid 783282541 rulename 783282541 ruletype selection ruleaction include objectlocator { schemaname mydata tablename newtable } filters [] } { ruleid 1152034124 rulename lkbtwrp3a00w9q ruletype transformation ruletarget schema ruleaction rename objectlocator { schemaname mydata } value public } ]} replicationsettings {} # 省略其余字段以保持简洁
启动AWS DMS无服务器复制
使用复制配置ARN启动AWS DMS无服务器复制:
bashaws dms startreplication replicationconfigarn arnawsdmsapsoutheast2123456789012replicationconfigABCXXDEFGHIJJXABC4ABC2ABCABCVAB2TNQ3ABC startreplicationtype startreplication
停止AWS DMS无服务器复制
迁移完成后,可以使用命令停止AWS DMS无服务器复制:

bashaws dms stopreplication replicationconfigarn arnawsdmsapsoutheast2123456789012replicationconfigABCXXDEFGHIJJXABC4ABC2ABCABCVAB2TNQ3ABC
bear小熊加速器清理迁移后的资源
完成迁移后,可以清理资源,命令如下:
bashaws dms deletereplicationconfig replicationconfigarn arnawsdmsapsoutheast2123456789012replicationconfigABCXXDEFGHIJJXABC4ABC2ABCABCVAB2TNQ3ABC
aws dms deleteendpoint endpointarn arnawsdmsapsoutheast2123456789012endpointABCD4E67FGHIJJKLMNOPQRSTUUVWXY2ZABCDE3F
结论
本文展示了如何使用AWS CLI运行MySQL到PostgreSQL的AWS DMS无服务器迁移。在进行迁移之前,请确保备份数据并在完成迁移后全面测试应用程序,以确认一切正常。如果您有任何问题或反馈,请在评论区留言。
使用 tdsfdw 扩展将数据从 SQL Server 迁移到 PostgreSQL 数据库博客
使用 tdsfdw 扩展将数据从 SQL Server 迁移至 PostgreSQL关键要点在本文中,我们将介绍如何使用 tdsfdw 扩展将 SQL Server 中的数据迁移到 PostgreSQ...