天天看點

從MySQL 5.5遷移到Mariadb 10.1.14

 遷移計劃如下:

  1.備份MySQL 5.5的資料庫,對指定庫進行備份。

  2.還原到Mariadb,然後建立複制。

  3.然後就可以願意啥時候切換就啥時候切換。

遇到的問題:

  因為一般都是innodb,是以我想用xtrabackup工具備份。備份後發現還原需要依賴innodb的表空間切換。

  1.表空間切換,必須要打開innodb_file_per_table。也就是說所有的表都要有獨立的檔案。有一些表雖然是innodb但是存在ibdata下面。

  幸好可以申請維護視窗,簡單粗暴的重建了。

  2.從MySQL 5.5到Mariadb,在import tablespace的時候發生錯誤,說表結構比比對,然後根據字段發現都是一些 date,datetime,timestamp類型。

  碰到這個問題,還在找有啥解決方法,找了一圈也沒找到,對報錯的表使用了mysqldump,然後導入,其實mysqldump速度不慢。

  3.因為xtrabackup備份和mysqldump已經有一段時間了,是以肯定會有一些資料已經存在,是以在建立主從複制的時候肯定會報主鍵錯誤。

  直接開slave_skip_errors =1062,提過主鍵沖突。發現落下的貌似有點多,那麼mariadb這個版本已經支援了多線程複制。

  關于參數mariadb官網可以看,開起來:

  slave_parallel_mode=optimistic

  slave_parallel_threads=6

 set global innodb_flush_log_at_trx_commit=0;  --追不上把這個也開了

MariaDB [(none)]> show processlist;

+----+-------------+-----------+------+---------+------+----------------------------------+------------------+----------+

| Id | User | Host | db | Command | Time | State | Info | Progress |

| 5 | root | localhost | NULL | Query | 0 | init | show processlist | 0.000 |

| 23 | system user | | NULL | Connect | 1197 | Waiting for master to send event | NULL | 0.000 |

| 24 | system user | | NULL | Connect | 1197 | Waiting for work from SQL thread | NULL | 0.000 |

| 25 | system user | | NULL | Connect | 1197 | Waiting for work from SQL thread | NULL | 0.000 |

| 26 | system user | | NULL | Connect | 1197 | Waiting for work from SQL thread | NULL | 0.000 |

| 27 | system user | | NULL | Connect | 1197 | Waiting for work from SQL thread | NULL | 0.000 |

| 28 | system user | | NULL | Connect | 1197 | Waiting for work from SQL thread | NULL | 0.000 |

| 29 | system user | | NULL | Connect | 1197 | Waiting for work from SQL thread | NULL | 0.000 |

| 30 | system user | | NULL | Connect | 0 | apply log event | NULL | 0.000 |

9 rows in set (0.00 sec)

    本文轉自 Fanr_Zh 部落格園部落格,原文連結:http://www.cnblogs.com/Amaranthus/p/5779993.html,如需轉載請自行聯系原作者