以降のセクションでは、mysqld オプション、およびレプリケーションで使用されてバイナリログを制御するためのサーバー変数の情報について説明します。 ソースおよびレプリカで使用するオプションおよび変数は、バイナリロギングおよびグローバルトランザクション識別子 (GTID) に関連するオプションおよび変数と同様に個別にカバーされます。 これらのオプションと変数に関する基本情報するクイックリファレンス表のセットも含まれています。
コマンド行形式 | --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「レプリカ構成の設定」を参照してください。
MySQL サーバーは、server_id
システム変数に設定されているデフォルトまたはユーザー指定のサーバー ID に加えて、真の UUID を生成します。 これは、グローバルな読み取り専用変数 server_uuid
として使用できます。
このセクションで前述したように、server_uuid
システム変数が存在しても、MySQL レプリケーションの準備および実行の一環として MySQL サーバーごとに一意の server_id
値を設定するための要件は変更されません。
システム変数 | server_uuid |
---|---|
スコープ | グローバル |
動的 | いいえ |
SET_VAR ヒントの適用 |
いいえ |
型 | 文字列 |
起動時、MySQL サーバーは次のように自動的に 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
は変更されました。