目次
- 目次
- 元記事
- そのまえに、 MariaDB のプロンプトのカスタマイズ
- 本題 Main を落としてどうするか
- まとめ
元記事
そのまえに、 MariaDB のプロンプトのカスタマイズ
レプリケーションをしていると、プロンプトのカスタマイズをしないと、どのホストか不明になるのでカスタマイズする
のだけれどプロセスの再起動が必要そう
良い子はレプリケーション前にプロンプトのカスタマイズをしよう
ref
そして、
man mysql
にも書いてあった
とりあえずやってみる
mysql --defaults-extra-file=mariadb_root.cnf
PROMPT \u@\h [\d] >
log
MariaDB [(none)]> PROMPT \u@\h [\d] > PROMPT set to '\u@\h [\d] >' root@localhost [(none)] > root@localhost [(none)] >SELECT
んー
>
のすぐ右に半角スペースがないのがチョット駄目
ホストが localhost
なのは、接続のときに IP アドレスを指定しなかったからなのだろう
強制的にホスト名を入れたほうが良さそう
もし server.cnf
に $HOSTNAME
か $(uname -n)
辺りを入れてつかいまわしたいところ
日時を入れるかどうかはすごく迷う
会社で使う時はそこのポリシーに従うべき
チョットいろいろ試す
PROMPT '\u@\h [\d] \D \U \n> '
log
root@localhost [(none)] >PROMPT '\u@\h [\d] \D \U \n> ' PROMPT set to ''\u@\h [\d] \D \U \n> '' 'root@localhost [(none)] Mon Aug 16 15:22:25 2021 root@localhost > ' 'root@localhost [(none)] Mon Aug 16 15:22:30 2021 root@localhost > '
なるほど。 PROMPT コマンドだと入力後に自動で '
が入る
半角スペースは \_
である
man 見ていて思ったが、 %Y-%m-%d
をしようとしたけど、日を表す書式が存在しない???
致命的だと思う
日時を ISO 表記させようと思ったけど、これじゃ出来ない
プロンプトに日時を入れるなというメッセージかな?
PROMPT \u@radius0 \R:\s [\d]>\_
log
root@radius0 15:29 [(none)]>
ちなみに PROMPT
コマンドを実行すると
PROMPT
log
root@radius0 15:29 [(none)]> PROMPT Returning to default PROMPT of \N [\d]> MariaDB [(none)]>
デフォルトプロンプトになる
defaults-extra-file に書き加えてみる
内容は以下 prompt=
の行を追記
[client] ... prompt='\\u@radius0 [\\d] (\\D)\\n>\\_'
実行
[ope@radius0 ~]$ mysql --defaults-extra-file=mariadb_root.cnf ... root@radius0 [(none)] (Mon Aug 16 15:42:43 2021) >
なるほど。サーバのプロセス再起動を伴うのが嫌もしくは NG である場合、これが良さそう
チョット修正して、ここまでとしよう
root@radius0
の prompt
[client] ... prompt='\\u@radius0 [\\d] (\\R:\\m:\\s)\\n>\\_'
log
root@radius0 [(none)] (15:48:46) >
root@radius1
の prompt
[client] ... prompt='\\u@radius1 [\\d] (\\R:\\m:\\s)\\n>\\_'
log
root@radius1 [(none)] (15:51:52) >
root@slave-db0
の prompt
[ope@slave-db0 ~]$ sudo cp -aiv /etc/my.cnf.d/server.cnf \ > /etc/my.cnf.d/server.cnf.$(date +%F_%H-%M-%S) '/etc/my.cnf.d/server.cnf' -> '/etc/my.cnf.d/server.cnf.2021-08-16_15-54-21' [ope@slave-db0 ~]$ sudo vim /etc/my.cnf.d/server.cnf
diff
[ope@slave-db0 ~]$ sudo diff -uprN \ > /etc/my.cnf.d/server.cnf.2021-08-16_15-54-21 \ > /etc/my.cnf.d/server.cnf --- /etc/my.cnf.d/server.cnf.2021-08-16_15-54-21 2021-08-12 11:18:50.477378529 +0900 +++ /etc/my.cnf.d/server.cnf 2021-08-16 15:55:29.924396084 +0900 @@ -21,6 +21,8 @@ server_id=103 # auto_increment_offset=2 read_only +prompt='\\u@slave-db0 [\\d] (\\R:\\m:\\s)\\n>\\_' + # # * Galera-related settings # [ope@slave-db0 ~]$
restart
[ope@slave-db0 ~]$ sudo systemctl restart mariadb.service Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details. [ope@slave-db0 ~]$
修正
[ope@slave-db0 ~]$ sudo cp -aiv \ > /etc/my.cnf.d/server.cnf.2021-08-16_15-54-21 \ > /etc/my.cnf.d/server.cnf cp: '/etc/my.cnf.d/server.cnf' を上書きしますか? y '/etc/my.cnf.d/server.cnf.2021-08-16_15-54-21' -> '/etc/my.cnf.d/server.cnf' [ope@slave-db0 ~]$ [ope@slave-db0 ~]$ sudo systemctl restart mariadb.service [ope@slave-db0 ~]$ sudo systemctl status mariadb.service | grep -i "main pid" Main PID: 37947 (mariadbd) [ope@slave-db0 ~]$ sudo systemctl status mariadb.service | grep -i -e "main pid" -e "active" Active: active (running) since Mon 2021-08-16 15:59:00 JST; 32s ago Main PID: 37947 (mariadbd) [ope@slave-db0 ~]$
client
[ope@slave-db0 ~]$ sudo cp -aiv /etc/my.cnf.d/client.cnf \ > /etc/my.cnf.d/client.cnf.$(date +%F_%H-%M-%S) '/etc/my.cnf.d/client.cnf' -> '/etc/my.cnf.d/client.cnf.2021-08-16_16-03-18' [ope@slave-db0 ~]$ [ope@slave-db0 ~]$ sudo vim /etc/my.cnf.d/client.cnf [ope@slave-db0 ~]$
diff
[ope@slave-db0 ~]$ sudo diff -uprN \ > /etc/my.cnf.d/client.cnf.2021-08-16_16-03-18 \ > /etc/my.cnf.d/client.cnf --- /etc/my.cnf.d/client.cnf.2021-08-16_16-03-18 2021-04-11 17:04:59.320899245 +0900 +++ /etc/my.cnf.d/client.cnf 2021-08-16 16:03:51.908792957 +0900 @@ -6,6 +6,7 @@ [client] default-character-set=utf8 +prompt='\\u@slave-db0 [\\d] (\\R:\\m:\\s)\\n>\\_' # This group is not read by mysql client library, # If you use the same .cnf file for MySQL and MariaDB, [ope@slave-db0 ~]$
restart
[ope@slave-db0 ~]$ sudo systemctl restart mariadb.service [ope@slave-db0 ~]$ sudo systemctl status mariadb.service | grep -E "Active|Main PID" Active: active (running) since Mon 2021-08-16 16:04:53 JST; 21s ago Main PID: 38156 (mariadbd) [ope@slave-db0 ~]$
test
[ope@slave-db0 ~]$ mysql --defaults-extra-file=mariadb_root.cnf ... root@slave-db0 [(none)] (16:05:58) >
ok
本題 Main を落としてどうするか
流れ
- radius0 の mariadb を stop する
- radius1, slave-db0 のみとなる
- radius1, slave-db0 の
Con1
の Replica を Stop する
ここまでが down 時にまずやること(たぶん)
ここからはホストのメンテナンスなどをしている想定なので、データの更新が起きている想定
- radius1 にデータを Insert するなどして更新させる
ホストがメンテナンス終わった想定
- radius1 からデータをバックアップする
- radius0 にリストア
- radius0 の mariadb を
--skip-slave
オプションを付けて起動- radius0 の
Con2
の Replica が自動で同期しようとするのを止める?(本当は不要かも)
- radius0 の
- radius0 で
CHANGE REPLICATION SOURCE 'Con2' TO
を行う- これで
Con2
のレプリケーションに参加できる
- これで
- radius0 で
BINLOG
GTID
を確認する - radius1, slave-db0 で
CHANGE REPLICATION SOURCE 'Con1' TO
を行う- これで
Con1
のレプリケーションに参加させる
- これで
以上(だと思う)
radius0 の mariadb を止める
# radius0 sudo systemctl stop mariadb.service sudo systemctl status mariadb.service
log
[ope@radius0 ~]$ sudo systemctl stop mariadb.service [ope@radius0 ~]$ sudo systemctl status mariadb.service ● mariadb.service - MariaDB 10.5.9 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor pre> Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: inactive (dead) since Mon 2021-08-16 16:37:13 JST; 3s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 36714 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_ST> Process: 36699 ExecStart=/usr/sbin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER > Process: 36665 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && V> Process: 36661 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_STA> Main PID: 36699 (code=exited, status=0/SUCCESS) Status: "MariaDB server is down" ... [ope@radius0 ~]$
down した
Con1
の Replica を Stop する
mysql --defaults-extra-file=mariadb_root.cnf STOP REPLICA 'Con1' ; SHOW REPLICA 'Con1' STATUS \G
radius1 Con1
STOP REPLICA
root@radius1 [(none)] (16:38:56) > STOP REPLICA 'Con1' ; Query OK, 0 rows affected (0.017 sec) root@radius1 [(none)] (16:39:08) > SHOW REPLICA 'Con1' STATUS \G *************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.100.102 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius0-bin.000001 Read_Master_Log_Pos: 911 Relay_Log_File: radius1-relay-bin-con1.000002 Relay_Log_Pos: 1212 Relay_Master_Log_File: radius0-bin.000001 Slave_IO_Running: No Slave_SQL_Running: No ... Last_IO_Errno: 2003 Last_IO_Error: error reconnecting to master 'replication_user@192.168.100.102:3306' - retry-time: 10 maximum-retries: 86400 message: Can't connect to server on '192.168.100.102' (111 "Connection refused") Last_SQL_Errno: 0 Last_SQL_Error: ...
slave-db0 Con1
STOP REPLICA
root@slave-db0 [(none)] (16:40:42) > STOP REPLICA 'Con1' ; Query OK, 0 rows affected (0.027 sec) root@slave-db0 [(none)] (16:40:48) > SHOW REPLICA 'Con1' STATUS \G *************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.100.102 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius0-bin.000001 Read_Master_Log_Pos: 911 Relay_Log_File: slave-db0-relay-bin-con1.000002 Relay_Log_Pos: 674 Relay_Master_Log_File: radius0-bin.000001 Slave_IO_Running: No Slave_SQL_Running: No ... Last_IO_Errno: 2003 Last_IO_Error: error reconnecting to master 'replication_user@192.168.100.102:3306' - retry-time: 10 maximum-retries: 86400 message: Can't connect to server on '192.168.100.102' (111 "Connection refused") Last_SQL_Errno: 0 Last_SQL_Error: ...
radius1 に なにかデータを 追加する
USE radius; SELECT * FROM radcheck ; INSERT INTO radcheck (username, attribute, op, value) VALUES ('foo4', 'Cleartext-Password', ':=', 'foo4pass') ; SELECT * FROM radcheck ;
log
root@radius1 [(none)] (16:46:04) > USE radius; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed root@radius1 [radius] (16:46:14) > SELECT * FROM radcheck ; +----+----------+--------------------+----+----------+ | id | username | attribute | op | value | +----+----------+--------------------+----+----------+ | 1 | foo1 | Cleartext-Password | := | foo1pass | | 2 | foo2 | Cleartext-Password | := | foo2pass | | 3 | foo3 | Cleartext-Password | := | foo3pass | +----+----------+--------------------+----+----------+ 3 rows in set (0.003 sec) root@radius1 [radius] (16:46:19) > INSERT INTO radcheck -> (username, attribute, op, value) -> VALUES -> ('foo4', 'Cleartext-Password', ':=', 'foo4pass') -> ; Query OK, 1 row affected (0.054 sec) root@radius1 [radius] (16:46:58) > SELECT * FROM radcheck ; +----+----------+--------------------+----+----------+ | id | username | attribute | op | value | +----+----------+--------------------+----+----------+ | 1 | foo1 | Cleartext-Password | := | foo1pass | | 2 | foo2 | Cleartext-Password | := | foo2pass | | 3 | foo3 | Cleartext-Password | := | foo3pass | | 4 | foo4 | Cleartext-Password | := | foo4pass | +----+----------+--------------------+----+----------+ 4 rows in set (0.001 sec) root@radius1 [radius] (16:47:06) >
slave-db0 で、追加されたことを確認する
USE radius; SELECT * FROM radcheck ;
log
root@slave-db0 [(none)] (16:48:04) > USE radius; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed root@slave-db0 [radius] (16:48:08) > SELECT * FROM radcheck ; +----+----------+--------------------+----+----------+ | id | username | attribute | op | value | +----+----------+--------------------+----+----------+ | 1 | foo1 | Cleartext-Password | := | foo1pass | | 2 | foo2 | Cleartext-Password | := | foo2pass | | 3 | foo3 | Cleartext-Password | := | foo3pass | | 4 | foo4 | Cleartext-Password | := | foo4pass | +----+----------+--------------------+----+----------+ 4 rows in set (0.001 sec) root@slave-db0 [radius] (16:48:09) >
radius1 からデータをバックアップする
InnoDB を使っている場合、 READ LOCK
不要らしい
引用
InnoDB を使用している場合、読取りロックは必要なく、データスナップショットの転送に十分な長さのトランザクションで十分です。 詳細は、セクション15.19「InnoDB と MySQL レプリケーション」を参照してください。
ということで、いきなりバックアップする
mysqldump --defaults-extra-file=mariadb_root.cnf --all-databases \ --flush-logs --single-transaction --master-data=2 > \ all_databases_on_master_$(date +%F_%H-%M-%S).sql
log
[ope@radius1 ~]$ mysqldump --defaults-extra-file=mariadb_root.cnf --all-databases \ > --flush-logs --single-transaction --master-data=2 > \ > all_databases_on_master_$(date +%F_%H-%M-%S).sql mysqldump: unknown variable 'prompt=\u@radius1 [\d] (\R:\m:\s)\n>\_' [ope@radius1 ~]$
先程のプロンプトオプションが邪魔になった。コメントアウトして実行する
[ope@radius1 ~]$ mysqldump --defaults-extra-file=mariadb_root.cnf --all-databases \ > --flush-logs --single-transaction --master-data=2 > \ > all_databases_on_master_$(date +%F_%H-%M-%S).sql [ope@radius1 ~]$ ls -tlr | tail -n 1 -rw-rw-r--. 1 ope ope 1398151 8月 16 16:54 all_databases_on_master_2021-08-16_16-53-59.sql [ope@radius1 ~]$
radius0 にリストア
まずは、バックアップデータを転送
sftp ope@192.168.100.102 lls put all_databases_on_master_2021-08-16_16-53-59.sql ls exit
log
[ope@radius1 ~]$ sftp ope@192.168.100.102 Connected to ope@192.168.100.102. sftp> lls all_databases_on_master_2021-08-11_14-36-18.sql mariadb_radius.cnf all_databases_on_master_2021-08-16_16-52-47.sql mariadb_root.cnf all_databases_on_master_2021-08-16_16-53-59.sql sftp> put all_databases_on_master_2021-08-16_16-53-59.sql Uploading all_databases_on_master_2021-08-16_16-53-59.sql to /home/ope/all_databases_on_master_2021-08-16_16-53-59.sql all_databases_on_master_2021-08-16_16-53-59.sql 100% 1365KB 10.8MB/s 00:00 sftp> ls all_databases_on_master_2021-08-11_14-36-18.sql all_databases_on_master_2021-08-16_16-53-59.sql mariadb_radius.cnf mariadb_root.cnf sftp> exit [ope@radius1 ~]$
リストアを実行
mysql --defaults-extra-file=mariadb_root.cnf < <file name> mysql --defaults-extra-file=mariadb_root.cnf < \ all_databases_on_master_2021-08-16_16-53-59.sql
log
[ope@radius0 ~]$ mysql --defaults-extra-file=mariadb_root.cnf < \ > all_databases_on_master_2021-08-16_16-53-59.sql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) [ope@radius0 ~]$
mysql が起動していないのでそりゃリストア出来ない
とりあえず radius0 の mariadb を起動する
sudo systemctl start mariadb sudo systemctl status mariadb | grep -E "Active|Main PID"
log
[ope@radius0 ~]$ sudo systemctl start mariadb [ope@radius0 ~]$ sudo systemctl status mariadb | grep -E "Active|Main PID" Active: active (running) since Mon 2021-08-16 17:14:22 JST; 3s ago Main PID: 38262 (mariadbd) [ope@radius0 ~]$
radius0 の Con2
の Status を見る
SHOW REPLICA 'Con2' STATUS \G
log
> SHOW REPLICA 'Con2' STATUS \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.100.103 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius1-bin.000002 Read_Master_Log_Pos: 389 Relay_Log_File: radius0-relay-bin-con2.000004 Relay_Log_Pos: 690 Relay_Master_Log_File: radius1-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes ...
あれ?想定と違う
table を確認
SELECT * FROM radius.radcheck;
log
> SELECT * FROM radius.radcheck; +----+----------+--------------------+----+----------+ | id | username | attribute | op | value | +----+----------+--------------------+----+----------+ | 1 | foo1 | Cleartext-Password | := | foo1pass | | 2 | foo2 | Cleartext-Password | := | foo2pass | | 3 | foo3 | Cleartext-Password | := | foo3pass | | 4 | foo4 | Cleartext-Password | := | foo4pass | +----+----------+--------------------+----+----------+ 4 rows in set (0.001 sec) root@radius0 [(none)] (17:16:53) >
??? radius0 側では追加していない foo4
のデータが書き込まれている
こんな挙動いつもするのかな?
mariadb の failover に関する公式ドキュメントどこか探せない私情けないorz
Con1
の REPLICA のステータスを確認する
radius1
SHOW REPLICA 'Con1' STATUS \G
log
> SHOW REPLICA 'Con1' STATUS \G *************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.100.102 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius0-bin.000001 Read_Master_Log_Pos: 911 Relay_Log_File: radius1-relay-bin-con1.000002 Relay_Log_Pos: 1212 Relay_Master_Log_File: radius0-bin.000001 Slave_IO_Running: No Slave_SQL_Running: No ... Last_IO_Errno: 2003 Last_IO_Error: error reconnecting to master 'replication_user@192.168.100.102:3306' - retry-time: 10 maximum-retries: 86400 message: Can't connect to server on '192.168.100.102' (111 "Connection refused") ...
slave-db0
SHOW REPLICA 'Con1' STATUS \G
log
> SHOW REPLICA 'Con1' STATUS \G *************************** 1. row *************************** Slave_IO_State: Master_Host: 192.168.100.102 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius0-bin.000001 Read_Master_Log_Pos: 911 Relay_Log_File: slave-db0-relay-bin-con1.000002 Relay_Log_Pos: 674 Relay_Master_Log_File: radius0-bin.000001 Slave_IO_Running: No Slave_SQL_Running: No ... Last_IO_Errno: 2003 Last_IO_Error: error reconnecting to master 'replication_user@192.168.100.102:3306' - retry-time: 10 maximum-retries: 86400 message: Can't connect to server on '192.168.100.102' (111 "Connection refused")
STOP REPLICA していたのでそりゃそう
Con1
の REPLICA の復旧
試しに radius0 でおもむろに REPLICA START してみる
START REPLICA 'Con1' ; SHOW REPLICA 'Con1' STATUS \G
log
root@radius1 [(none)] (17:19:58) > START REPLICA 'Con1' ; Query OK, 0 rows affected (0.127 sec) > SHOW REPLICA 'Con1' STATUS \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.100.102 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius0-bin.000002 Read_Master_Log_Pos: 344 Relay_Log_File: radius1-relay-bin-con1.000002 Relay_Log_Pos: 645 Relay_Master_Log_File: radius0-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: ... Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: ...
slave-db0 でも START REPLICA する
START REPLICA 'Con1' ; SHOW REPLICA 'Con1' STATUS \G
log
root@slave-db0 [radius] (17:25:05) > START REPLICA 'Con1' ; Query OK, 0 rows affected (0.057 sec) root@slave-db0 [radius] (17:25:09) > SHOW REPLICA 'Con1' STATUS \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.100.102 Master_User: replication_user Master_Port: 3306 Connect_Retry: 10 Master_Log_File: radius0-bin.000002 Read_Master_Log_Pos: 344 Relay_Log_File: slave-db0-relay-bin-con1.000002 Relay_Log_Pos: 645 Relay_Master_Log_File: radius0-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 344 Relay_Log_Space: 963 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 101 Master_SSL_Crl: Master_SSL_Crlpath: Using_Gtid: Slave_Pos Gtid_IO_Pos: 0-102-157 Replicate_Do_Domain_Ids: Replicate_Ignore_Domain_Ids: Parallel_Mode: optimistic SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Slave_DDL_Groups: 0 Slave_Non_Transactional_Groups: 0 Slave_Transactional_Groups: 0 1 row in set (0.000 sec) root@slave-db0 [radius] (17:25:12) >
起動しただけで同期した
楽だけどなんで?
Relay log を転送し続けるの?
うーん。
まとめ
PROMPT について
- PROMPT を書き換えることが出来る
日(date)
を表現する書式が存在しないっぽい- PROMPT は以下の方法?で変更できる
- mysql の対話シェル
- defaults-extra-file
- client.cnf
最終的にはとりあえず以下のようになった
prompt='\\u@\\h [\\d] (\\R:\\m:\\s)\\n>\\_'
まだ改善の余地がある
フェイルオーバーについて
- 双方向レプリケーションをしている場合、down した mariadb のプロセスを起動しただけで同期して復旧することがある
- しかし、その条件は分かっていない
- 本当は
RESET MASTER
STOP REPLICA
RESET REPLICA
とかを行ってCHANGE REPLICATION SOURCE ['connection_name'] TO
とかしないといけないんだろうと思う - connection の MAIN がダウンしたら、 connection の REPLICA は STOP しておいたほうが良さそう
- connection の MAIN が復旧後 connection の REPLICA を START させるのが良さそう
あまりにも想定していないあっさりした終わり方だったので、面食らっている。ドキュメントどこぞ。