Ubuntu 16.04 LTSでMulti-PrimaryなMySQL Group Replication構築手順メモ

この記事は公開されてから半年以上経過しています (公開日2017年5月16日)。

MySQLのレプリケーションは、あるMySQLデータベースから、別のMySQLデータベースへデータや操作(DDL)を反映して複製を作成します。

従来のレプリケーションはプライマリ・セカンダリの構成となり、特定の1つのMySQLデータベースサーバ(マスター)のデータを、1つまたは複数のMySQLデータベースサーバー(スレーブ)に複製することでした。データは非同期、または準同期でマスターからスレーブへコピーされます。通常、マスターとなるデータベースサーバは読み取り書き込み操作を行うことができ、スレーブとなるデータベースサーバは読み取りのみで通常はデータ書き込みを実行できませんでした。マスターは1つのみとなるため、マスターの冗長化を行う場合にはクラスタリングソフトウェアを使うなどのアプローチが必要でした。

MySQL 5.7.17 で取り入れられた Group Replication は、より柔軟で可用性の高いレプリケーション構成するためのMySQLのプラグインで、Group ReplicationはMySQL5.7.12で取り入れられた「Rapidプラグイン(新機能をプラグインとして提供するMySQL5.7.12からの仕組み)」として提供されているようです。
マスターデータベースの冗長化を目的とした機能で、マルチマスターのレプリケーション構成を行うための仕組みがMySQLの機能として実装されています。

グループ内で実行されたトランザクションを識別するためにGTIDを用いており、さらにXCOMと呼ばれる、Paxosという合意アルゴリズムをベースとした仕組みを用いて、グループ内のメンバーへのトランザクションのブロードキャストやメンバー間の認証の管理が行われているようです。

以下ではマルチマスタなGroupReplicationを構成するための基本的な手順を記載します。
続きを読む »

MySQL5.7のマルチソースレプリケーション構築手順メモ

この記事は公開されてから半年以上経過しています (公開日2017年4月23日)。

従来のMySQLレプリケーションではマスタ1台から複数台のスレーブへデータを同期するという1:Nの構成しか出来ませんでしたが、MySQL5.7.6〜実装されたマルチソースレプリケーションの昨日を使うと複数台のマスターから1台以上のスレーブへデータを同期できる構成が可能になります。

続きを読む »

Ubuntu 16.04 LTS で Docker の ZFS Storage Driver を試す

この記事は公開されてから半年以上経過しています (公開日2017年4月15日)。

ZFS はかつて Sun Microsystems社(現Oracle社)によって開発され、現在は CDDL というライセンスでオープンソース化されているファイルシステムです。CDDL は Linux の GPL ライセンスと互換性がないため、ZFS は Linux カーネル・モジュールのメインラインに取り込まれません。しかし、ZFS on Linux (ZoL)プロジェクトにより、外部モジュールとしてインストールことで利用できるようになっています。

以前に ZFS on Ubuntu 16.04 LTS な環境を作成していたので、この環境で Docker の ZFS Storage Dviver を試してみました。

続きを読む »

Python の環境構築ツールはどれを使うのが良いのか

この記事は公開されてから半年以上経過しています (公開日2017年3月31日)。

Pythonの仮想環境構築とかバージョン管理するツールって何かいろいろありますが、結局何を使うのが良いのだろうか・・・と考えてみました。

続きを読む »