首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 5.5 遷移至 MariaDB 10.1.14 實戰避坑指南

     編輯:MySQL 資料庫相關知識

遷移架構規劃

  1. 備份 MySQL 5.5 指定資料庫
  2. 還原至 MariaDB 並建立主從複寫
  3. 驗證無誤後切換流量

核心踩坑記錄與解決方案

1. 表空間匯入需獨立表空間

使用 xtrabackup 物理備份還原時,要求 innodb_file_per_table=ON。部分舊表仍存於共享表空間 ibdata,需在維護窗口重建表(ALTER TABLE ... ENGINE=InnoDB)產生獨立 .ibd 檔案。

2. 匯入表空間報「結構不匹配」

錯誤集中在 DATE、DATETIME、TIMESTAMP 欄位。經排查為 MariaDB 10.1 對時間類型儲存格式更嚴格。
解法:放棄 IMPORT TABLESPACE,改用 mysqldump 邏輯備份還原,速度可接受且相容性最佳。

3. 主從複寫主鍵衝突 (Error 1062)

因備份與建立複寫有時間差,從庫重放 relay log 時遇到重複主鍵。
緊急繞過:SET GLOBAL slave_skip_errors = 1062;
加速追趕:啟用 MariaDB 10.1 多執行緒複寫:

SET GLOBAL slave_parallel_mode = 'optimistic';
SET GLOBAL slave_parallel_threads = 6;
SET GLOBAL innodb_flush_log_at_trx_commit = 0; -- 僅追趕期間暫時關閉,追上後恢復 1

觀察 SHOW PROCESSLIST 確認多 SQL 執行緒並行回放。

遷移核心心法

  • 優先邏輯備份(mysqldump)而非物理備份跨大版本
  • 預留維護窗口處理表空間重建
  • 善用新版本平行複寫縮短切換窗口
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved