AWS數據庫遷移實戰:本地MySQL零停機上云方案

一、遷移場景

  • 本地環境:自建MySQL 5.7(數據量500GB+),業務要求遷移停機時間<5分鐘

  • 目標架構

?

二、遷移四步法

步驟1:環境準備(耗時30分鐘)

1.1 創建Aurora MySQL
# AWS CLI創建Aurora集群
aws rds create-db-cluster \--db-cluster-identifier my-aurora \--engine aurora-mysql \--engine-version 5.7 \--master-username admin \--master-user-password 'S3cure!2023' \--db-subnet-group my-subnet-group
1.2 配置網絡連通
  • 推薦方案:Site-to-Site VPN

    • 在AWS VPC控制臺創建虛擬私有網關

    • 配置客戶網關(輸入本地防火墻公網IP)

    • 建立VPN連接并下載配置文件

步驟2:AWS DMS配置(核心環節)

2.1 創建復制實例
# Python Boto3腳本(自動化創建)
import boto3
dms = boto3.client('dms')response = dms.create_replication_instance(ReplicationInstanceIdentifier='dms-replication-1',AllocatedStorage=100,  # GBReplicationInstanceClass='dms.t3.large',EngineVersion='3.4.7',PubliclyAccessible=False,VpcSecurityGroupIds=['sg-0xxxxxxx']
)
2.2 定義源/目標端點
配置項源端點(本地MySQL)目標端點(Aurora)
ServerName192.168.1.100my-aurora.cluster-xxx.rds.amazonaws.com
Port33063306
SSLrequirerequire
Extrainitstmt=SET FOREIGN_KEY_CHECKS=0parallelLoadThreads=4

步驟3:啟動遷移任務(關鍵代碼)

# DMS任務配置模板(YAML格式)
TaskSettings:TargetMetadata:ParallelLoadThreads: 8FullLoadSettings:MaxFullLoadSubTasks: 16ValidationSettings:EnableValidation: trueLogging:EnableLogging: true

任務類型選擇:?

?

pietitle 遷移模式選擇“全量+增量” : 75“僅全量” : 15“僅增量” : 10

步驟4:切換與驗證

4.1 割接流程
  1. 停止應用寫入

  2. 等待DMS延遲歸零(CloudWatch查看CDCLatencySource

  3. 修改應用連接串指向Aurora終端節點

  4. 重啟應用

4.2 數據一致性校驗
-- 快速校驗腳本
SELECT (SELECT COUNT(*) FROM orders) AS src_count,(SELECT COUNT(*) FROM aurora_db.orders) AS tgt_count,MD5(GROUP_CONCAT(id, amount)) AS src_md5,(SELECT MD5(...) FROM aurora_db.orders) AS tgt_md5;

三、避坑指南

陷阱1:大表遷移超時

  • 癥狀:DMS卡在Table state: LOADING

  • 解決方案

    1. 調整任務參數:

{"LobMaxSize": 65536,  // 增大LOB字段處理"BatchApplyEnabled": true  // 啟用批量提交
}

? ? ? ? ? ? ? ? ? 2.對大表啟用分片加載:?

ALTER TABLE orders COMMENT='DMS_SPLIT';

陷阱2:時區亂碼

  • 預防措施

# 創建RDS參數組
aws rds create-db-parameter-group \--group-name my-utf8-group \--description "UTF8 settings" \--db-parameter-group-family aurora-mysql5.7
# 設置字符集
aws rds modify-db-parameter-group \--group-name my-utf8-group \--parameters "ParameterName=character_set_server,ParameterValue=utf8mb4"

四、成本優化

資源配置月成本(美元)節省建議
DMS實例dms.t3.large$108遷移后立即刪除
Auroradb.r5.large$348啟用預留實例-40%
數據傳輸500GB$45啟用壓縮節省50%

總成本:遷移期約$500/月,穩定后$200/月

五、增強方案

  1. 災備擴展:啟用Aurora跨區復制

aws rds create-db-cluster \--global-cluster-id my-global-db \--source-db-cluster-identifier my-aurora

?2.性能監控:CloudWatch儀表盤配置

?

遷移成果:某電商平臺使用此方案:

  • 遷移耗時:3天(含測試)

  • 停機時間:72秒

  • 性能提升:TPS從1200→3500

技術棧參考:AWS DMS文檔?|

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85481.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85481.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

uni-app 安卓 iOS 離線打包參考

App 離線打包 原生工程配置 安卓&#xff1a;【uniapp】uniapp 離線打包安卓應用或者云打包發布 app 步驟&問題記錄 iOS&#xff1a;uni-app實現XCode蘋果本地離線打包APP

mysql History List Length增長

HLL 持續增長導致問題 History List Length&#xff08;HLL&#xff09;是InnoDB存儲引擎中用于衡量未清理的undo日志記錄數量的指標。當HLL持續增長時&#xff0c;可能對數據庫性能和業務產生以下影響&#xff1a; 事務處理延遲增加 高HLL值意味著大量未清理的undo日志&…

VMware替代 | 南京地鐵采用ZStack ZSphere虛擬化承載核心業務

南京地鐵作為中國主要城市軌道交通系統之一&#xff0c;運營規模龐大&#xff0c;地鐵線路覆蓋全市主要區域。其核心業務系統&#xff08;包括列車調度、信號控制、乘客信息系統等&#xff09;原部署在VMware平臺上。然而&#xff0c;隨著VMware產品全面轉向訂閱制&#xff0c;…

Electron自動更新詳解—包教會版

★ 本人在公司項目中實現的Electron更新功能。 ★ 將實現更新過程的每一步都總結了出來&#xff0c;以及過程中我遇到了哪些問題&#xff0c;如何去解決的問題&#xff0c;有哪些注意事項。 ★ 使用貼合實際應用的HTTP服務器做為載體實現更新&#xff0c;而非github。 開始&…

Apache RocketMQ 消息過濾的實現原理與騰訊云的使用實踐

導語 本文將系統闡述 Apache RocketMQ 消息過濾機制的技術架構與實踐要點。首先從業務應用場景切入&#xff0c;解析消息過濾的核心價值&#xff1b;接著介紹 Apache RocketMQ 支持的兩種消息過濾實現方式&#xff0c;幫助讀者建立基礎認知框架&#xff1b;隨后深入剖析 SQL 語…

安卓JetPack篇——LifeCycle原理

LifeCycle 一、什么是Lifecycle 具備宿主生命周期感知能力的組件。它能持有組件&#xff08;如Activity或Fragment&#xff09;生命周期狀態的信息&#xff0c;并且允許其他觀察者監聽宿主的狀態。 二、基本原理 1、安卓10以下版本 隱形的Fragment注入在LifecycleOwner&am…

CSS 圓角邊框屬性(`border-radius`)筆記

一、作用&#xff1a; 用于設置元素四個角的圓角效果&#xff0c;讓元素不再死板&#xff0c;更加柔和。 二、基本語法&#xff1a; border-radius: 圓角大小; 單位&#xff1a;px&#xff08;像素&#xff09;或 %&#xff08;百分比&#xff09; 示例&#xff1a; div { ?…

python自助棋牌室管理系統

目錄 技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xf…

計算機——硬盤分區和格式化

硬盤驅動器 硬盤驅動器&#xff08;HDD&#xff09;是一種成熟、經濟的大容量存儲解決方案。它的核心優勢在于每GB成本低和超大容量。然而&#xff0c;其機械結構帶來的速度瓶頸、噪音、功耗和對物理沖擊的敏感性是其主要的缺點。隨著 SSD 價格的持續下降和性能的絕對領先&…

從IEC到UL:技術主權競爭下的斷路器合規性戰略

1 國際標準體系割裂的現狀 在全球低壓電器領域&#xff0c;國際標準體系呈現出日益明顯的割裂態勢。當前主要存在四大標準體系&#xff1a;國際通用的??IEC標準體系??、歐洲采用的??EN標準體系??、北美實施的??UL與CSA標準體系??&#xff0c;以及具有地域特色的?…

第十六屆藍橋杯_省賽B組(D).產值調整

題目如下 這道題看似很簡單&#xff0c;其實還是得觀察一下&#xff0c;要不然就會… 話不多說回到題目&#xff0c;這個題的坑就在于當A,B,C三個產值相同的時候&#xff0c;再怎么變還是之前的產值&#xff0c;或者也可以通過另外一種方法理解&#xff1a; 通過一個案例來舉…

設計模式 | 單例模式——餓漢模式 懶漢模式

單例模式 文章目錄 單例模式一、餓漢模式&#xff08;Eager Initialization&#xff09;1. 定義2. 特點3. 餓漢單例模式&#xff08;定義時-類外初始化&#xff09;4. 實現細節 二、懶漢模式&#xff08;Lazy Initialization&#xff09;1. 定義2. 特點3. 懶漢單例模式&#xf…

dify本地部署及添加ollama模型(ubuntu24.04)

說明&#xff1a;ubuntu是虛擬機的&#xff0c;用的橋接模式&#xff0c;與本地同局域網不同ip地址。 參考VM虛擬機網絡配置&#xff08;ubuntu24橋接模式&#xff09;&#xff1a;配置靜態IP前提&#xff1a;需要有docker及docker-compose環境 參考ubuntu24安裝docker及docker…

Python爬蟲實戰:研究multiprocessing相關技術

一、引言 1.1 研究背景與意義 隨著互聯網信息的爆炸式增長,網絡爬蟲已成為獲取海量數據的重要工具。傳統的單線程爬蟲在面對大規模數據采集任務時效率低下,無法充分利用現代計算機多核 CPU 的優勢。多線程爬蟲雖然在一定程度上提高了效率,但受限于 Python 的全局解釋器鎖(…

6.18 redis面試題 日志 緩存淘汰過期刪除 集群

Redis有哪2種持久化方式&#xff1f;分別的優缺點是什么&#xff1f; Redis 的重寫 AOF 過程是由后臺子進程 bgrewriteaof 來完成的。 過期刪除策略和內存淘汰策略有什么區別&#xff1f; 內存淘汰策略是在內存滿了的時候&#xff0c;redis 會觸發內存淘汰策略&#xff0c;來淘…

什么時候會發生內存泄漏?

1. 內存泄漏是什么&#xff1f; 定義&#xff1a;內存泄漏是指程序中的對象已經不再需要&#xff0c;但由于被其他對象錯誤引用&#xff0c;導致垃圾回收器&#xff08;GC&#xff09;無法回收它&#xff0c;從而長期占用內存空間的現象。 2. 內存泄漏的危害 問題具體表現內存…

用RSA算法模擬類的適配器模式

“RAS算法”這個術語本身并不常見或標準&#xff0c;它可能指向兩個主要領域的不同概念&#xff0c;具體取決于上下文&#xff1a; 更可能是拼寫錯誤&#xff1a;指 RSA 算法&#xff08;密碼學&#xff09; 這是最常見的情況。 “RAS” 極有可能是 “RSA” 的拼寫錯誤。RSA 算…

CARSIM-與C#自動化測試方案

using System; using System.Runtime.InteropServices; using System.Collections.Generic;namespace CarSimAutomation {/// <summary>/// CarSim COM 自動化測試接口/// 封裝所有 CarSim COM 功能用于自動化測試/// </summary>[ComVisible(true)][ClassInterface…

企微CRM系統中的任務分配與效率提升技巧

在數字化管理時代&#xff0c;企業微信(企微)與CRM系統的深度融合&#xff0c;為企業提供了更高效的客戶管理與團隊協作方案。企微CRM軟件不僅整合了客戶溝通、銷售跟進、數據分析等功能&#xff0c;還能通過智能任務分配優化團隊效率。本文將深入探討企微CRM管理系統的任務分配…

day66—BFS—最短的橋(LeetCode-934)

題目描述 給你一個大小為 n x n 的二元矩陣 grid &#xff0c;其中 1 表示陸地&#xff0c;0 表示水域。 島 是由四面相連的 1 形成的一個最大組&#xff0c;即不會與非組內的任何其他 1 相連。grid 中 恰好存在兩座島 。 你可以將任意數量的 0 變為 1 &#xff0c;以使兩座…