Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ProxySQL

 ProxySQL

2019/06/07 MySQL Casual Talks vol.11で発表 **しなかった** ヤーツ
https://mysql-casual.connpass.com/event/131551/

yoku0825

June 07, 2019
Tweet

More Decks by yoku0825

Other Decks in Technology

Transcript

  1. ProxySQL MySQLサーバとクライアントの間にプロキシとして仕込む Hostgroupという単位の中でのルーティング SHOW VARIABLES LIKE 'read_only' の戻り値でマスターとスレーブを切り替え Weightによる参照分散先の重みづけ Seconds_Behind_Master

    の値が一定以上になると参照分散から切り離す ‐ SQLクエリーの中身をパースして打ち分けや書き換え 監査ログの出力 ‐ コネクションプーリング ‐ 「将来的には」SSLターミネーションもやる予定っぽい ‐ 3/23
  2. ProxySQL mysqld MySQL_Session.cpp MySQL_Thread.cpp ProxySQL core MySQL Protoxol AP MySQL

    Protoxol DISK RUNTIME proxysql.conf MySQL_Monitor.cpp MySQL_Protocol.cpp 5/23
  3. ProxySQL Admin Interface SHOW DATABASES で見たい情報の系統を調べて $ mysql -P6032 -h127.0.0.1

    -uadmin -padmin Server version: 5.5.30 (ProxySQL Admin Module) mysql> SHOW DATABASES; +-----+---------------+-------------------------------------+ | seq | name | file | +-----+---------------+-------------------------------------+ | 0 | main | | | 2 | disk | /var/lib/proxysql/proxysql.db | | 3 | stats | | | 4 | monitor | | | 5 | stats_history | /var/lib/proxysql/proxysql_stats.db | +-----+---------------+-------------------------------------+ 5 rows in set (0.00 sec) 10/23
  4. ProxySQL Admin Interface SHOW TABLES FROM .. でその系統のテーブル一覧を調べて mysql> SHOW

    TABLES FROM stats; +--------------------------------------+ | tables | +--------------------------------------+ | global_variables | | stats_memory_metrics | | stats_mysql_commands_counters | | stats_mysql_connection_pool | | stats_mysql_connection_pool_reset | | stats_mysql_errors | | stats_mysql_errors_reset | | stats_mysql_global | | stats_mysql_gtid_executed | | stats_mysql_prepared_statements_info | | stats_mysql_processlist | | stats_mysql_query_digest | | stats_mysql_query_digest_reset | | stats_mysql_query_rules | | stats_mysql_users | | stats_proxysql_servers_checksums | | stats_proxysql_servers_metrics | | stats_proxysql_servers_status | +--------------------------------------+ 18 rows in set (0.00 sec) 11/23
  5. ProxySQL Admin Interface SELECT * FROM .. で情報にアクセスする mysql> SELECT

    * FROM stats.stats_mysql_global; +-----------------------------------------+----------------+ | Variable_Name | Variable_Value | +-----------------------------------------+----------------+ | ProxySQL_Uptime | 3786903 | | Active_Transactions | 0 | | Client_Connections_aborted | 1 | | Client_Connections_connected | 0 | | Client_Connections_created | 24 | .. 12/23
  6. ProxySQLで覚えておいていただきたい mysql> SELECT * FROM main.runtime_mysql_users\G *************************** 1. row ***************************

    username: root password: active: 1 use_ssl: 0 default_hostgroup: 0 default_schema: schema_locked: 0 transaction_persistent: 1 fast_forward: 1 ### これ! backend: 0 frontend: 1 max_connections: 10000 comment: 14/23