4

クエリで「スレーブステータスを表示」を使用せずにmysql DBがスレーブであることを確認する方法は?

4

3 に答える 3

6

レプリケーションが実行されているかどうかを検出する必要がある 3 つのオプションを次に示します。

オプション #1 : ステータス変数 'Slave_running' を確認する

MySQL 5.1/5.5 の使用

select variable_value from information_schema.global_status
where variable_name = 'Slave_running';

MySQL 5.0 以前の使用

SHOW VARIABLES LIKE 'Slave_running';

オプション #2 : プロセス リストを確認する

MySQL 5.1+/5.5 の使用

select COUNT(1) SlaveThreads
from information_schema.processlist
where user = 'system user';
  • SlaveThreads = 2 の場合、レプリケーションは実行中です
  • SlaveThreads = 1 の場合、レプリケーションは壊れています
  • SlaveThreads = 0 の場合、レプリケーションは停止または無効になります

MySQL 5.0 以前の使用

SHOW PROCESSLIST;

ユーザー列に「システム ユーザー」が含まれている 2 つの DB 接続を探します。

オプション #3 : master.info の存在を確認する

レプリケーションが DB サーバーでセットアップされている場合は、master.info を探します。デフォルトでは、master.info は通常、/var/lib/mysql または datadir が定義されている場所にあります。

「cat master.info」を複数回実行するだけです (Windows コミュニティの場合は、master.info と入力します)。ログの位置が移動している場合、レプリケーションはオンになっています。ログの位置が移動していない場合は、レプリケーションが壊れている (SQL スレッドの SQL エラー)、停止している ( が原因STOP SLAVE;)、または無効になっている (実行中CHANGE MASTER TO MASTER_HOST='';) ことを意味している可能性があります。

于 2011-08-27T17:36:00.970 に答える
1

MySQL doc - Checking Replication Statusによると:

Slave_IO_Running : マスターのバイナリ ログを読み取るための I/O スレッドが実行されているかどうか。通常、レプリケーションをまだ開始していないか、または STOP SLAVE で明示的に停止していない限り、これを Yes にする必要があります。

Slave_SQL_Running : リレー ログでイベントを実行するための SQL スレッドが実行されているかどうか。I/O スレッドと同様に、これは通常は [はい] にする必要があります。

于 2011-03-31T10:49:10.520 に答える