web-dev-qa-db-ja.com

MySQL 5.6にアップグレードすると、GTIDレプリケーションに切り替えるメリットはありますか?

MySQLレプリケーション設定の最も基本的なものは、単一のマスターが単一のスレーブにステートメントベースのレプリケーションを行う、innodb/myisamテーブルの90/10の組み合わせです。どちらも現時点ではPercona MySQL 5.5を実行していますが、数週間で5.6にアップグレードし、ダウンタイムを予定しています。

この種のセットアップは、GTIDレプリケーションに切り替えることで多くのメリットが得られますか?行ベースのレプリケーションにも切り替える必要がありますか?

現在、GTIDに変換してテストするための追加のダウンタイムに値するかどうかを判断しようとしています。

3
xref

必然的にスレーブを追加する必要があるため、将来的に環境を検証することでメリットが得られると思います。

また、復元を実行するときに、どのステートメントが適用されたか、または適用されなかったかの特定の座標を覚えておく必要もありません。適用されているステートメントの現在のセットをサーバーに認識させることは、処理の重複や不正な破損を防ぐのに非常に役立ちます。 5.7ではmysqlbinlog aもある--idempotentモード。

運用上、GTIDは管理がはるかに簡単で、将来的には:)

行ベースのレプリケーションもお勧めします-それは素晴らしいオプションだと思います: http://www.tocker.ca/2013/09/04/row-based-replication.html

2
Morgan Tocker

Mysql 5.6.5 <に切り替える唯一の最大のメリットは、Mysql 5.9.1でMysqlレプリケーショントポロジのデフォルトである自動フェイルオーバーユーティリティをサポートする機能によるもので、これにはGTIDレベルのレプリケーションが必要です。 Mysql自体の中で自動フェイルオーバーが本当に必要でない限り、またはそれまでは、最もよく知られているMysql 5.5のレガシー機能を使用できます。

しかし、GTIDを使用することのいくつかの短所も強調したいと思います:同じトランザクション内でトランザクションストレージエンジン(Innodb)を使用するテーブルへの更新と混合された非トランザクションストレージエンジン(Myisam)は、複数のGTIDになる可能性があります同じトランザクションに割り当てられています。 Thishはマスター/スレーブ複製間の同期を壊すか​​もしれません。

ナットシェル:環境のパフォーマンス、高可用性、およびセキュリティが既存のバージョンで安定している場合は、そのままにしておくことをお勧めします。上記のいずれかに必要がある場合は、それを行ってください。 管理監査は、標準に従って最新バージョンを維持することはたくさんありますが、標準とは何であるかを技術的に見ていませんか?このため、現在のバージョンで実現可能で効率的であれば、同じセットアップをアップグレードして維持するために時間と労力を費やす必要はありません。

0
Mannoj