web-dev-qa-db-ja.com

MySQL 5.0からMariaDB 10.2.8へのレプリケーション-不明なシステム変数「binlog_checksum」、内部MariaDBエラーコード:1193

最終的に MySQL 5.0.90環境をMariaDBにアップグレードしています。MySQL5.0からMariaDB 10.2.8へのレプリケーションを有効にしてから、カットオーバーを行い、ダウンタイムを最小限に抑えたいと考えています。私はこれをMariaDB 10.1.18で最初に試しましたが、うまくいきました。 MariaDB 10.2.8がGA=になったため、アップグレードプロセスをそのバージョンに移動しました。レプリケーションを開始しようとすると、MariaDB mysqld.errログに次のエラーが表示されます。

Unknown system variable 'binlog_checksum', Internal MariaDB error code: 1193

「スレーブ状態の表示」を実行すると、次のように表示されます。

Slave_IO_Running: No
Slave_SQL_Running: Yes

Last_IO_Errno: 1595
Last_IO_Error: Relay log write failure: could not queue event from master

Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it

これについていくつかの調査を試みましたが、問題を解決できませんでした。

これは、レプリケーションが開始されるログのセクション全体です。

2017-11-20 8:26:43 140154253575936 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.002735' at position 98, relay log './mysqld-relay-bin.000001' position: 4 2017-11-20 8:26:43 140154252973824 [Note] Slave I/O thread: connected to master '[email protected]:3306',replication started in log 'mysql-bin.002735' at position 98 2017-11-20 8:26:43 140154252973824 [Warning] Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error: Unknown system variable 'binlog_checksum', Internal MariaDB error code: 1193 2017-11-20 8:26:43 140154252973824 [ERROR] Slave I/O: Replication event checksum verification failed while reading from network, Internal MariaDB error code: 1743 2017-11-20 8:26:43 140154252973824 [ERROR] Slave I/O: Relay log write failure: could not queue event from master, Internal MariaDB error code: 1595 2017-11-20 8:26:43 140154252973824 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.002735', position 98

3
MIke Tutor

解決策/回避策を見つけました。スレーブ(MariaDB 10.2.8)で変数slave_sql_verify_checksum = 0を設定する必要があります。スレーブでグローバル変数を動的に設定してこれを試しましたが、機能しませんでした。次に、バグ #MDEV 8505 を見つけました。これは、変数を動的にリセットしても機能しないことを示しています。 my.cnfに設定してインスタンスを再起動すると、すべてが期待どおりに機能し始めました。ありがたいことに、これはアップグレードが完了するまでの暫定的な解決策にすぎません。

3
MIke Tutor

5.0から10.2は約4つの大きなジャンプです。だから、あなたが問題に遭遇したことは驚くことではありません。必要に応じて、MariaDBにバグを報告してください。通常、新しいスレーブは古いマスターから正常に複製されます。しかし、これは遠すぎると思います。

とりあえず10.1で行くことをお勧めします。これは今のところ重要なアップグレードになります。まだ発見していない微妙な問題があるかもしれません。次に、10.1から来年の10.3までを計画します。

マニュアルには、「バグ#61096 ...古いスレーブとの下位互換性が懸念される場合は、値を明示的にNONEに設定することもできます。」と記載されています。

そして----- 2016-07-04 MariaDB 10.2.1-- MDEV-8429 :binlog_checksumのデフォルトをMySQL 5.6.6以降と一致するように変更します

そして https://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_master_verify_checksum を参照してください

2
Rick James