mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案
?
今天,我們講講如何使用源MySQL數據庫執行數據庫遷移到MySQL數據庫的目標Amazon RDS的方案,同時由于(源和目標數據庫引擎是相同的)——模式結構、數據類型和數據庫代碼在源和目標數據庫之間是兼容的,這意味著這種遷移不需要任何模式轉換。
?數據庫遷移可以通過多種方式執行:可以通過遷移實例的方式,也可以通過DMS進行遷移。這里我們將使用AWS數據庫遷移服務(DMS)執行連續的數據復制遷移,遷移思路如下:
創建目標數據庫
設置網絡
創建復制實例
創建源和目標段節點
配置數據庫
創建和運行復制任務
1.1
創建目標數據庫
在配置AWS DMS之前,需要在提供的AWS帳戶中創建目標數據庫。使用AWS關系數據庫服務(RDS)來執行此活動,使得在云中輕松地設置、操作和擴展關系數據庫。
1.?進入AWS管理控制臺, 從服務中選擇RDS然后點擊創建數據庫
2.?在引擎選項中,選擇MySQL,版本選擇MySQL 5.6.44
? ? ? ?在設置部分,為新數據庫實例配置數據庫實例標識符(比如 database-1)、主用戶名(比如 admin)和主密碼。這里密碼設置為“passwr0d”
? ? ? ?數據庫選擇db.m5.large來自標準DB實例類,并保留存儲參數的默認值。
3.?在可用性與持久性部分,選用缺省值,創建備用實例(使用多AZ部署更加安全)
4.?在連接部分:
在Virtual Private Cloud (VPC),選擇?Generated VPC。
在其它連接配置?-> VPC 安全組,選擇?新建?VPC 安全組,輸入名稱(比如 “DB-SG”)
5.?對于?數據庫身份驗證,選擇?密碼身份驗證。
6.?在?其它配置?部分,確保?監控?下面的?啟用增強監測?不被選中,如下圖所示:
7.?最后,點擊創建數據庫按鈕。
1.2
設置網絡
? ? ? 由于在遷移的過程中,不使用VPN或AWS直接連接,因此DMS復制實例將需要通過公共internet連接到源數據庫,而通過專用網絡連接到目標數據庫
1.2.1?
創建復制子網組
使用AWS DMS的先決條件之一是配置一個子網組,該子網組是將由DMS復制實例使用的子網集合。
1.進入AWS控制臺>服務>Database Migration Service>子網組,點擊創建子網組按鈕。
2.在創建復制子網組中輸入以下參數值:
| 參數 | 值 |
| 名稱 | dms-subnet-group |
| 說明 | Default VPC subnet group |
| VPC | Generated VPC |
| 添加子網 | 選擇Generated VPC-public-a,?Generated VPC-public-b |
點擊創建子網
1.2.2
配置安全組
? ? ? 在進行數據庫遷移的時候,VPC安全組必須允許從DMS復制實例到目標RDS數據庫的入站流量。
為DMS復制實例創建一個安全組?
進入AWS控制臺>服務> EC2 >安全組,點擊創建安全組按鈕。
輸入安全組名稱(例如RI-SG),給它一個描述并為VPC字段選擇生成的VPC。
更新數據庫安全組
a) 仍然AWS管理控制臺 > 服務 > EC2 > 安全組屏幕中選擇之前創建的數據庫安全組?DB-SG
b) 編輯和更新數據庫安全組,以允許來自端口3306上的DMS復制實例安全組的入站流量
1.3
創建DMS Replication實例
1.3.1
創建AWS DMS Replication實例
? ? ? 在此步驟中,將創建一個AWS數據庫遷移服務復制實例,這實例啟動源數據庫和目標數據庫之間的連接,傳輸數據,并緩存在初始數據加載期間源數據庫上發生的任何更改。
(1)在AWS控制臺內部,進入服務->數據庫遷移服務。
(2)點擊復制實例中的創建復制實例按鈕。
(3)在“創建復制實例”屏幕上,使用以下參數值配置一個新的復制實例:
| 參數 | 值 |
| 名稱 | replication-instance |
| 描述 | DMS replication instance |
| 實例類 | dms.t2.medium |
| 引擎版本 | dms.t2.medium |
| 分配的存儲空間 (GB) | 50 |
| VPC | Generated VPC |
| 多可用區 | Unchecked |
| 公開訪問 | Checked |
如下圖所示:
在高級安全性和網絡配置中,請確保選擇前面創建的復制子網組和復制實例安全組。
點擊創建按鈕。
? ? ? 創建復制實例需要花幾分鐘時間,確保狀態變為可用,再執行下面的步驟。
1.4
創建源環境和目標環境Endpoints
1.4.1
創建源環境endpoint
使用下面的參數去配置endpoint
| 參數 | 值 |
| 終端節點類型 | Source endpoint |
| 終端節點標識符 | source-endpoint |
| 源引擎 | mysql |
| 服務器名稱 | Source Environment –?Database Server IP?from the Event Engine – Team Dashboard |
| 端口 | 3306 |
| 安全套接字層(SSL)模式 | none |
| 用戶名 | wordpress-user |
| 密碼 | wordpress-user |
? ? ? 打開測試端點連接(可選)部分,然后在VPC下拉菜單中選擇生成的VPC并單擊Run Test按鈕來驗證端點配置是否有效。
? ?? ? 測試將運行一分鐘,會在Status列中看到成功消息。單擊Create endpoint按鈕創建端點。
? ? ? 在出現任何錯誤的情況下—確保正確配置了端點參數,并且復制實例是在檢查了可公開訪問的參數后創建的。
1.4.2
?創建目標endpoint
? ? ? 重復所有步驟,以創建具有以下參數值的目標端點:
| 參數 | 值 |
| 終端節點類型 | Target endpoint |
| 選擇RDS數據庫實例 | checked |
| RDS 實例 | Select your RDS instance from the drop-down |
| 終端節點標識符 | target-endpoint |
| 目標引擎 | mysql (will be pre-populated) |
| 服務器名稱 | (leave the the pre-populated value) |
| 端口 | 306 (will be pre-populated) |
| 安全套接字層(SSL)模式 | none |
| 用戶名 | (leave the pre-populated value) |
| 密碼 | Enter password you used when you creating the RDS database |
1.4.3
調整參數
? ? ? 在特定于終端的設置->額外連接屬性復制-粘貼以下連接參數
parallelLoadThreads=1; initstmt=SET FOREIGN_KEY_CHECKS=0
? ? ? 如果出現任何錯誤,請確保RDS數據庫的VPC安全組允許來自AWS DMS復制實例安全組(或例如來自整個生成的VPC(10.0.0.0/16))的端口3306上的入站流量。1.4.4在“測試端點連接”(可選)下拉菜單中選擇生成的VPC,然后單擊“運行測試”按鈕,以驗證端點是否有效。
1.4.4
? ? ? 在“測試端點連接”(可選)下拉菜單中選擇生成的VPC,然后單擊“運行測試”按鈕,以驗證端點是否有效。
? ? ? 如果出現任何錯誤,請確保RDS數據庫的VPC安全組允許來自AWS DMS復制實例安全組(或例如來自整個生成的VPC(10.0.0.0/16))的端口3306上的入站流量。
1.5
配置源數據庫
1.5.1
使用更改數據捕獲(CDC)運行DMS復制任務
? ? ? 為了確保數據庫遷移的停機時間最小化,我們將使用從源數據庫到目標數據庫的更改的連續復制(也稱為更改數據捕獲(Change Data Capture, CDC))。
1.5.2
在源數據庫上啟用二進制日志
? ? ? 未了實現從MySQL數據庫持續復制AWS DMS,需要啟用二進制日志并對源數據庫進行配置更改。
? ? ? 修改“wordpress-user”的權限
(1)登錄到源環境數據庫服務器
? ? ? 通過Database SSH key(這是個私有.pem密鑰),并使用它連接到數據庫服務器(用戶是centos)。
(2)為 wordpress-user數據庫用戶授予額外的特權
? ? ? ? 在數據庫服務器上運行以下命令:
sudo mysql -u root -p
GRANT REPLICATION CLIENT ON *.* to ‘wordpress-user’;
GRANT REPLICATION SLAVE ON *.* to ‘wordpress-user’;
GRANT SUPER ON *.* to ‘wordpress-user’;
exit
(3)創建一個bin logs目錄,
? ? ? ?在數據庫服務器上運行以下命令:
sudo su – mysql
mkdir /var/lib/mysql/binlogs
exit
(4)修改/etc/my.cnf 文件,
? ? ? ?運行以下程序來編輯文件:
sudo vi /etc/my.cnf
? ? ? ? ?然后在[mysqld]部分添加以下信息:
?server_id=1
log-bin=/var/lib/mysql/binlogs/log
binlog_format=ROW
expire_logs_days=1
binlog_checksum=NONE
binlog_row_image=FULL
log_slave_updates=TRUE
(5)重啟Mysql服務,
? ? ? ?運行以下命令來應用更改:
sudo service mysql restart
(6)測試,運行以下命令來應用更改:
sudo mysql -u root -p
select variable_value as “BINARY LOGGING STATUS (log-bin) :: “
from information_schema.global_variables where variable_name=’log_bin’;
?select variable_value as “BINARY LOG FORMAT (binlog_format) :: “
from information_schema.global_variables where variable_name=’binlog_format’;
?exit
? ? ? 輸出必須顯示設置為ON的二進制日志狀態,如下面的屏幕截圖所示:
? ? ? 如果確實如此 – 您可以?退出?SSH 了。如果出現任何問題 – 請檢查?/var/log/mysqld.log?文件中的錯誤信息。
1.6
創建和運行復制任務
回到AWS DMS控制臺,進入數據庫遷移任務,并單擊Create Task按鈕。
1)在創建數據庫遷移任務屏幕中輸入以下參數值:
| 參數 | 值 |
| 任務標識符 | replication-cdc |
| 復制實例 | replication-instance |
| 源終端節點 | source-endpoint |
| 目標終端節點 | target-endpoint |
| 遷移類型 | Migrate existing data and replicate ongoing changes |
| 在創建時啟動任務 | Checked |
2)在任務設置面板中輸入以下值(保持其他值為默認值):
| 參數 | 值 |
| 目標表準備模式 | Do nothing |
| 啟用CloudWatch 日志 | Checked |
| 啟用驗證 | Checked |
3)在表映射面板的選擇向導 UI模式中,點擊添加新選擇規則按鈕,在架構下拉列表中選擇wordpress-db。
4)滾動到屏幕底部,單擊創建任務按鈕創建任務并開始數據復制即可。
? ? ? 以上介紹了如何將源mysql數據庫遷移至Amazon RDS的方案,通過上面的步驟可以完整實現數據庫的遷移。這里面除了上面的操作步驟的細節,還有目標環境的網絡構建,確保目標網絡至少2個以上的網絡,且有必備的公有子網和私有子網,公有子網能與源環境互通即可。
? ? ? 敏捷云是一家專注為企業客戶提供AWS云服務咨詢、遷移、托管運維和解決方案的創新公司,我們擁有豐富的數據庫遷移經驗,不但幫助客戶安全高效地把數據遷移上云,還為企業優化成本,降低運維費用,讓用戶擁有優質云端應用體驗。
文章資料來源AWS官方,由敏捷云編寫
圖片來自網絡,版權歸原作者所有
侵刪致歉
延伸閱讀:
【AWS ·創新科技】 關于AWS CDK 構建 EKS 平臺
【AWS ·創新科技】當 DR 災備遇到 KMS( 二)
【AWS ·創新科技】當 DR 災備遇到 KMS(一)
【AWS ·創新科技】AWS CloudFront 根據客戶端IP做302重定向
【AWS ·創新科技】AWS CloudFront + Lambda@Edge 的切圖方案
【AWS ·創新科技】使用AWS Lambda和Amazon Cloudwatch定時重啟Instance指南
F5的分布式多云活架構
F5 的公有云WEB安全與合規性
Fortinet SD-WAN的優勢與應用場景
Prisma Cloud落地中國,為本土云安全保駕護航
Prisma Cloud商業合規版的功能
【云勢工具】成本追溯功能OptimizeNow重磅推出2.0版
? ? ???深圳敏捷云計算科技有限公司是一家專注于公有云增值服務的技術創新型公司,為企業客戶提供云遷移,培訓,開發,安全合規以及運維服務。
總結
以上是生活随笔為你收集整理的mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ctf up怎么写 write_??零基
- 下一篇: opython3l_python之 数据