MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  レプリケーションおよびバイナリロギングのオプションと変数

17.1.6 レプリケーションおよびバイナリロギングのオプションと変数

以降のセクションでは、mysqld オプション、およびレプリケーションで使用されてバイナリログを制御するためのサーバー変数の情報について説明します。 ソースおよびレプリカで使用するオプションおよび変数は、バイナリロギングおよびグローバルトランザクション識別子 (GTID) に関連するオプションおよび変数と同様に個別にカバーされます。 これらのオプションと変数に関する基本情報するクイックリファレンス表のセットも含まれています。

特に重要なのは、server_id システム変数です。

コマンド行形式 --server-id=#
システム変数 server_id
スコープ グローバル
動的 はい
SET_VAR ヒントの適用 いいえ
Integer
デフォルト値 1
最小値 0
最大値 4294967295

この変数は、サーバー ID を指定します。server_id はデフォルトで 1 に設定されています。 このデフォルト ID を使用してサーバーを起動できますが、バイナリロギングが有効になっているときに、サーバー ID を指定するように server_id を明示的に設定しなかった場合は、情報メッセージが発行されます。

レプリケーショントポロジで使用されるサーバーの場合、レプリケーションサーバーごとに一意のサーバー ID を 1 から 2 の 32− 1 の範囲で指定する必要があります。 Unique は、各 ID がレプリケーショントポロジ内の他のソースまたはレプリカで使用されている他のすべての ID と異なる必要があることを意味します。 詳細については、セクション17.1.6.2「レプリケーションソースのオプションと変数」,およびセクション17.1.6.3「Replica Server のオプションと変数」を参照してください。

サーバー ID が 0 に設定されている場合、バイナリロギングは行われますが、サーバー ID が 0 のソースはレプリカからの接続を拒否し、サーバー ID が 0 のレプリカはソースへの接続を拒否します。 サーバー ID は動的にゼロ以外の値に変更できますが、変更してもレプリケーションはすぐに開始されません。 レプリカを初期化するには、サーバー ID を変更してからサーバーを再起動する必要があります。

詳細については、セクション17.1.2.2「レプリカ構成の設定」を参照してください。

server_uuid

MySQL サーバーは、server_id システム変数に設定されているデフォルトまたはユーザー指定のサーバー ID に加えて、真の UUID を生成します。 これは、グローバルな読み取り専用変数 server_uuid として使用できます。

注記

このセクションで前述したように、server_uuid システム変数が存在しても、MySQL レプリケーションの準備および実行の一環として MySQL サーバーごとに一意の server_id 値を設定するための要件は変更されません。

システム変数 server_uuid
スコープ グローバル
動的 いいえ
SET_VAR ヒントの適用 いいえ
文字列

起動時、MySQL サーバーは次のように自動的に UUID を取得します。

  1. ファイル data_dir/auto.cnf に書かれている UUID を読み取って使用しようとします (ここで、data_dir はサーバーのデータディレクトリ)。

  2. data_dir/auto.cnf が見つからない場合、新しい UUID を生成してこのファイルに保存します (必要に応じてファイルを作成します)。

auto.cnf ファイルの形式は、my.cnf または my.ini ファイルに使用される形式と似ています。auto.cnf には、単一の server_uuid 設定および値を含む単一の[auto]セクションのみがあります。ファイルの内容は次のように表示されます:

[auto]
server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562
重要

auto.cnf ファイルは自動的に生成されます。このファイルを書き込んだり修正したりしようとしないでください。

MySQL レプリケーションを使用する場合、ソースとレプリカは相互に UUID を認識します。 レプリカ UUID の値は、SHOW REPLICAS | SHOW SLAVE HOSTS の出力に表示されます。 START REPLICA | SLAVE が実行されると、ソース UUID の値が SHOW REPLICA | SLAVE STATUS の出力のレプリカで使用可能になります。

注記

STOP REPLICA | SLAVE または RESET REPLICA | SLAVE ステートメントを発行しても、レプリカで使用されているソース UUID はリセットされません。

サーバー server_uuid は GTID でも、そのサーバーで発生したトランザクションに使用されます。 詳細は、セクション17.1.3「グローバルトランザクション識別子を使用したレプリケーション」を参照してください。

起動時に、--replicate-same-server-id オプションが設定されていないかぎり、レプリケーション I/O スレッドはエラーを生成し、そのソース UUID がそれ自体と等しい場合は中断します。 また、次のいずれかに該当する場合、レプリケーション I/O スレッドは警告を生成します:

  • 必要な server_uuid を持つソースが存在しません。

  • CHANGE REPLICATION SOURCE TO | CHANGE MASTER TO ステートメントは実行されていませんが、ソース server_uuid は変更されました。


関連キーワード:  変数, サーバー, ソース, server, バイナリ, 設定, トランザクション, GTID, ベース, ロギング