私が写真で達成しようとしていることを理解する方が簡単なので、ここに写真があります:
私はデータベース管理の専門家ではないので、しばらくお待ちください。
MariaDB 10.0.12とGaleraクラスターで3つのサーバーを実行する設定に取り組んでいます。高可用性のためにデータベースがkeepalived
およびhaproxy
を介して各Galeraノードから複製されるマスター/スレーブセットアップを実行するMariaDBの個別のインストールも持っています。
雑多なガイドに従ってオンラインですべてをセットアップした後、Galeraクラスターとサーバーを問題なくセットアップしました。ただし、私の非同期サーバーへのレプリケーションはうまく機能していないようです。また、Using_Gtid: Slave_pos
を使用して、このすべてにGTIDを使用しようとしています。スレーブサーバーはkeepalivedの仮想IPを使用してリモートに接続します。
現在、スレーブのshow slave status部分で次のエラーが発生しています。
バイナリログからデータを読み取るときに、マスターから致命的なエラー1236が発生しました。おそらくスレーブの状態が古すぎて、必要なbinlogファイルが削除されています。
これは、マスターログの値が高すぎるためにスレーブがマスターサーバーと同期できないという何らかの問題に関連しているようです(例:マスターサーバーのmariadb-bin.000080
)。それは本当ですか?もしそうなら、どのようにしてスレーブを更新して、最新のものまですべてを取得する必要があることを理解するにはどうすればよいですか?
私は本当に誰かがこれで私を助けてくれることを願っています、または少なくとも私の現在の問題をよりよく解決するためのいくつかの方法を示してください。
最初の接続でGaleraクラスターからスレーブデータが同期され、GTIDが自動的に割り当てられると思っていましたが、そうではありませんか?もしそうなら、どうすればスレーブを最新の状態にできますか?
Galeraクラスターはノードを自動プロビジョニングしますが、従来のレプリケーションではそうではありません。手動で行う必要があります。
バックアップからスレーブを設定するためのMariaDBのドキュメント を見てください。プロセスは、MySQLで行う場合と基本的に同じですが、構文に若干の互換性がありません。通常、mysqldump
と--master-data
および--gtid
オプションまたはPercona Xtrabackupを使用します(これらのメソッドはGaleraノード間で自動的に処理されます)。
私は 新しいスレーブの設定に関するMySQLドキュメントへのリンク も含めます。MariaDBもそれとの互換性を失うことにしたため、一般的な説明はMariaDB wikiよりもドキュメント化されています(例:mysqldumpを使用してバックアップする)サーバー)。