12. Multi-Source Replication
mysql> CHANGE MASTER TO master_host = 'xxx', master_port = xxx, m
aster_user = 'xxx', master_password = 'xxx', master_auto_positio
n = 1 FOR CHANNEL 'site_1';
mysql> SHOW SLAVE STATUSG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: xxx
Master_User: xxx
Master_Port: xxx
..
Channel_Name: site_1
11/84
13. Multi-Source Replicationの監視
SHOW SLAVE STATUS だと全チャンネル出⼒されるので、今ま
でのがそのまま使えない
SHOW SLAVE STATUS FOR CHANNNEL 'site_1', SHOW SLAVE STATUS
FOR CHANNEL 'site_2', .. と分割するか
-
そういえば5.7からperformance̲schemaにレプリケーション関連の
テーブル追加されたよねって思ったけど
SELECT iothread.channel_name, iothread.service_state AS io_thread,
sqlthread.service_state AS sql_thread FROM
performance_schema.replication_connection_status AS iothread JOIN
performance_schema.replication_applier_status_by_worker AS sqlthread で
*_Running: Yes 的なところは取れるんだけど、 Seconds_Behind_Master が取れな
い。。
“SHOW SLAVE STATUS Information Not In the Replication Tables”
MySQL :: MySQL 5.7 Reference Manual :: 23.9.11 Performance Schema
Replication Tables
Oh..
-
12/84
15. ⽴ちはだかるConnector/Jの壁
MySQL Bugs: #80631: ResultSet.getString return
garbled result with json type data
Connector/Jだとマルチバイト⽂字が化ける-
まだ直ってない-
マルチバイトもテストしてくれよおおおお-
14/84
20. InnoDB FTS + mecab-ipadic-neologd
InnoDB FTSは 既に⾊々踏み抜いておいたので 今のところ
問題なし
MySQL Bugs: #76120 (アクセス権なし)-
MySQL Bugs: #76121: Warning 1235, “FTS auxiliary tables
will not be flushed” is printed twice.
-
MySQL Bugs: #76139 (アクセス権なし)-
MySQL Bugs: #76164: InnoDB FTS with MeCab parser prints
empty error message
-
MySQL Bugs: #80755 (アクセス権なし)-
MySQL Bugs: #80760: Reverse Engineer fails to load table
which has “WITH PARSER” clause
-
19/84
32. ボコられ案(5-1-2)
AP
[Not supported by viewer] Connector/J
Master Slave
mysqlfabric
Monitor/Demote
Monitor/Promote
Lookup Group Query
Routing
Routing
AP
AP Connector/J
31/84
62. MySQL Fabricの現実
もうずっと⻑いことMySQL WorkbenchからMySQL Fabric
に接続できない
⼀時期セミナーで「MySQL WorkbenchからMySQL Fabricが管理で
きます︕」と謳っていた時期があったのに…
-
MySQL Bugs: #74894: Failure to connect to MySQL Fabric
from a windows installed workbench.
-
とはいえ慣れれば mysqlfabric コマンドでも何とかなる
けど、監視⽤途にはパースが超めんどくさいので、昔みたいにJSONで返してくれるオ
プションも欲しかった。。
-
61/84
63. MySQL Fabricの現実
MySQL Bugs: #73206: MySQL Fabric should report a
warning when MySQL Event Scheduler is disabled
MySQL Bugs: #74894: Failure to connect to MySQL
Fabric from a windows installed workbench.
MySQL Bugs: #81557: MySQL Fabric uses wrong
argument of MAKETIME in prune̲log Event
MySQL Bugs: #81558: prune̲log event doesnʼt use
any index
MySQL Bugs: #81559: Incorrect WHERE clause in
dump̲servers fanction
62/84
66. MySQL Routerの現実
APから mysqlrouter がESTAB1.
mysqlrouter と mysqlfabric は非同期通信でキャッシュを更
新
2.
mysqlrouter はキャッシュを⾒てMySQL ServerとESTAB3.
AP => mysqlrouter => MySQL Server とNATされる。遅
延は10usくらい。
4.
何故か mysqlfabric からキャッシュの更新通知が⾏って
も、 mysqlrouter => MySQL ServerのESTABが 切れない
5.
65/84
67. MySQL Routerの現実
シングルスレッドで、パケットを全てルーティングする
(NATな動き)ので、1万QPSとか叩くと mysqlrouter がボ
トルネックになって詰まる
それくらいの規模になったら複数の mysqlrouter プロセスを上げるし
かないけど
-
そんなトラフィックが来る予定はない
-
mysqlrouter の max_connections を1000以上にするとクラッシュす
るらしい
MySQL Bugs: #80260: MySQL Router is down with more than 1000
concurrent connections
-
66/84
78. (別の環境含め) MySQL 5.7でやったこと
SET GLOBAL innodb_buffer_pool_size = .. 経験済み
そこまで悪いものでもなかった (⼼臓には悪かった)-
MySQL Bugs: #77564: SIGABRT during resizing the InnoDB
Buffer Pool Online with memory full condition
-
sync_binlog= 1 でも5.6ほどひどくない (気がする)
sys スキーマ美味しいです
5.6にもガリガリインストールしてるから余計ありがたみはない-
77/84
79. (別の環境含め) MySQL 5.7でやったこと
むしろ既存の5.6をアップグレードした5.7でオンライン
gtid_mode= ON に移⾏できた。うれしい。
暗黙のテンポラリーテーブル
MyISAMにしてる( internal_tmp_disk_storage_engine= MyISAM )-
performance_schema_*_size とか
performance_schema_*_instances のデフォルトがautosize
になってるので、テキトーな値を秘伝のタレに追加
でないと運⽤中に思った以上にメモリー使⽤量が増えていく
で、 SET GLOBAL innodb_buffer_pool_size = .. でちょっと減らした。。
SHOW ENGINE performance_schema STATUS で⾒られるよ
-
78/84