配置ProxySQL 1.x.x¶
本教程介绍如何配置ProxySQL有三个雷竞技下载官网Percona XtraDB集群节点。
| 节点 | 主机名 | IP地址 |
|---|---|---|
| 节点1 | pxc1 | 192.168.70.61 |
| 节点2 | pxc2 | 192.168.70.62 |
| 节点3 | pxc3 | 192.168.70.63 |
| 节点4 | proxysql | 192.168.70.64 |
ProxySQL可以使用等/ proxysql-admin.cnf或者使用管理界面。管理界面可以动态更改配置,不需要重新启动代理。
要连接到ProxySQL管理界面,请使用mysql客户端。您可以从管理界面连接到雷竞技下载官网Percona XtraDB集群对象的节点mysql客户端已安装(节点1,节点2,节点3)或将客户端安装在节点4并在本地连接。对于本教程,请安装雷竞技下载官网Percona XtraDB集群节点4:
[root@proxysql~]# apt安装percona雷竞技下载官网-xtradb-cluster-client
[root@proxysql~]# yum install 雷竞技下载官网percona-xtradb-cluster-client
方法中指定的凭据、主机名和端口,以连接到管理界面ProxySQL全局变量。
不要在生产中使用默认凭证。
下面的例子展示了如何使用默认凭证连接到ProxySQL管理界面:
root@proxysql: ~ #mysql- u管理padmin- h127.0.0.1- p6032
预期的输出
欢迎来到MySQL监视器。raybet雷竞技竞猜在线官网命令以;或\ g。您的MySQL连接id是8服务器版本:5.1.30 (ProxySQL Admin Module)版权(c) 2009-2022 Percona LLC和/或其附属公司版权(c) 2000, 2022,雷竞技下载官网 Oracle和/或其附属公司。Oracle是Oracle公司和/或其关联公司的注册商标。其他名称可能是其各自所有者的商标。输入'help;'或'\h'以获得帮助。输入'\c'清除当前输入语句。mysql@proxysql >
去看ProxySQL数据库和表使用以下命令:
mysql@proxysql >显示数据库;
预期的输出
+-----+---------+-------------------------------+ | seq | |文件名称 | +-----+---------+-------------------------------+ | 磁盘主| 0 | | | 2 | | /var/lib/proxysql/proxysql.db | | 3 |数据| | | 4 |监控 | | +-----+---raybet雷竞技竞猜在线官网------+-------------------------------+ 4行集(0.00秒)
mysql@proxysql >显示表;
预期的输出
+--------------------------------------+ | 表 | +--------------------------------------+ | global_variables | | mysql_collations | | mysql_query_rules | | mysql_replication_hostgroups | | mysql_servers | | mysql_users | | runtime_global_variables | | runtime_mysql_query_rules | | runtime_mysql_replication_hostgroups | | runtime_mysql_servers | | runtime_scheduler | |调度器 | +--------------------------------------+ 12行集(0.00秒)
ProxySQL有三个配置可以驻留的区域:
记忆(你现在的工作地点)
运行时(生产设置)
磁盘(保存在目录中的持久配置)SQLite数据库)
当您更改一个参数时,您可以在MEMORY区域更改它。此方法允许您在将更改推到生产(RUNTIME)或磁盘之前测试更改。
向ProxySQL添加集群节点¶
要配置后端雷竞技下载官网Percona XtraDB集群节点ProxySQL,插入相应的记录mysql_servers表格
ProxySQL使用主机组的概念对集群节点进行分组。这种方法通过将不同类型的流量路由到不同的组来平衡集群中的负载。
配置主机组的方法有很多种(例如,主机组和从机组、读写负载等),一个节点可以是多个主机组的成员。
这个例子添加了3个雷竞技下载官网Percona XtraDB集群默认主机组(0),同时接收写和读流量:
mysql@proxysql >插入成mysql_servers(hostgroup_id,主机名、港口)值(0,“192.168.70.61”, 3306年);mysql@proxysql >插入成mysql_servers(hostgroup_id,主机名、港口)值(0,“192.168.70.62”, 3306年);mysql@proxysql >插入成mysql_servers(hostgroup_id,主机名、港口)值(0,“192.168.70.63”, 3306年);
要查看节点:
mysql@proxysql >选择*从mysql_servers;
预期的输出
| hostgroup_id | 主机名 | 港口 | 状态 | 重量 | 压缩 | max_connections | max_replication_lag | use_ssl | max_latency_ms | 评论 |
|---|---|---|---|---|---|---|---|---|---|---|
| 192.168.70.61 | 3306 | 在线 | 1 | 0 | 1000 | 0 | 0 | |||
| 192.168.70.62 | 3306 | 在线 | 1 | 0 | 1000 | 0 | 0 | |||
| 192.168.70.63 | 3306 | 在线 | 1 | 0 | 1000 | 0 | 0 |
创建ProxySQL监控用户raybet雷竞技竞猜在线官网¶
启用监控raybet雷竞技竞猜在线官网雷竞技下载官网Percona XtraDB集群节点ProxySQL方法创建用户使用并在ProxySQL中配置用户。
以在节点2上增加监控用户为例。raybet雷竞技竞猜在线官网
mysql@pxc2 >创建用户“proxysql”@“%”确认通过“ProxySQLPa55”;mysql@pxc2 >格兰特使用在* . *来“proxysql”@“%”;
在ProxySQL节点上配置该用户的示例如下:
mysql@proxysql >更新global_variables集variable_value=“proxysql”在哪里variable_name=“mysql-raybet雷竞技竞猜在线官网monitor_username”;mysql@proxysql >更新global_variables集variable_value=“ProxySQLPa55”在哪里variable_name=“mysql-raybet雷竞技竞猜在线官网monitor_password”;
要在运行时加载此配置,请发出负载命令。发出一个保存命令将这些更改保存到磁盘,该操作确保在ProxySQL关闭后更改仍然存在。
mysql@proxysql >负载MYSQL变量来运行时;mysql@proxysql >保存MYSQL变量来磁盘;
检查监控日志,确保监raybet雷竞技竞猜在线官网控已开启:
mysql@proxysql >选择*从raybet雷竞技竞猜在线官网monitor.mysql_server_connect_log订单通过time_start_usDESC限制6;
预期的输出
+---------------+------+------------------+----------------------+---------------+ | 主机名| |港口time_start_us | connect_success_time | connect_error | +---------------+------+------------------+----------------------+---------------+ | 零192.168.70.61 | 3306 | 1469635762434625 | 1695 | | | 192.168.70.62 | 3306 | 1469635762434625 | 1779 |零| | 192.168.70.63 | 3306 | 1469635762434625 | 1627 |零| | 192.168.70.61 | 3306 | 1469635642434517 | 1557 |零| | 192.168.70.62 | 3306 |零| 2737 | 1469635642434517 | | 192.168.70.63 | 3306 | 1469635642434517 | 1447 | NULL | +---------------+------+------------------+----------------------+---------------+ 6行集(0.00秒)
mysql >选择*从raybet雷竞技竞猜在线官网monitor.mysql_server_ping_log订单通过time_start_usDESC限制6;
预期的输出
+---------------+------+------------------+-------------------+------------+ | 主机名| |港口time_start_us | ping_success_time | ping_error | +---------------+------+------------------+-------------------+------------+ | 零192.168.70.61 | 3306 | 1469635762416190 | 948 | | | 192.168.70.62 | 3306 | 1469635762416190 | 803 |零| | 192.168.70.63 | 3306 | 1469635762416190 | 711 |零| | 192.168.70.61 | 3306 | 1469635702416062 | 783 |零| | 192.168.70.62 | 3306 | 1469635702416062 | 631 |NULL | | 192.168.70.63 | 3306 | 1469635702416062 | 542 | NULL | +---------------+------+------------------+-------------------+------------+ 6 rows in set (0.00 sec)
前面的例子说明了这一点ProxySQL能够连接和ping您添加的节点。
要启用对这些节点的监raybet雷竞技竞猜在线官网控,请在运行时加载它们:
mysql@proxysql >负载MYSQL服务器来运行时;
创建一个ProxySQL客户端用户¶
ProxySQL必须拥有能够访问后端节点以管理连接的用户。
若要添加用户,请将凭据插入mysql_users表:
mysql@proxysql >插入成mysql_users(用户名、密码)值(“sbuser”,“sbpass”);
预期的输出
查询确定,影响1行(0.00秒)
请注意
ProxySQL目前不加密密码。
将用户加载到运行时空间,并将这些更改保存到磁盘,以确保在ProxySQL关闭后用户帐户仍然存在:
mysql@proxysql >负载MYSQL用户来运行时;mysql@proxysql >保存MYSQL用户来磁盘;
要确认用户已正确设置,您可以尝试登录:
根@proxysql: ~# mysql -u sbuser -psbpass -h 127.0.0.1 -P 6033
预期的输出
欢迎来到MySQL监视器。raybet雷竞技竞猜在线官网命令以;或\ g。您的MySQL连接id是1491服务器版本:5.1.30 (ProxySQL)版权(c) 2009-2016 Percona LLC和/或其附属公司版权(c) 2000,2016, 雷竞技下载官网Oracle和/或其附属公司。版权所有。Oracle是Oracle公司和/或其关联公司的注册商标。其他名称可能是其各自所有者的商标。输入'help;'或'\h'以获得帮助。输入'\c'清除当前输入语句。
若要为ProxySQL提供对集群的读/写访问,请将此用户添加到雷竞技下载官网Percona XtraDB集群节点:
mysql@pxc3 >创建用户“sbuser”@“192.168.70.64”确认通过“sbpass”;
预期的输出
查询OK, 0行受影响(0.01秒)
mysql@pxc3 >格兰特所有在* . *来“sbuser”@“192.168.70.64”;
预期的输出
查询OK, 0行受影响(0.00秒)
在ProxySQL 1.x.x中添加Galera支持¶
ProxySQL 2. x。X支持状态监控raybet雷竞技竞猜在线官网雷竞技下载官网Percona XtraDB集群节点。ProxySQL 1. x。X不能检测到不在的节点同步状态。监视的raybet雷竞技竞猜在线官网状态雷竞技下载官网Percona XtraDB集群ProxySQL 1.x中的节点。X,使用脚本proxysql_galera_checker。
要使用此脚本,请将其加载到ProxySQL调度器。
下面的示例显示如何为默认的ProxySQL 1.x加载脚本。x配置:
mysql >插入成调度器(活跃,interval_ms,文件名,__arg1、评论)值(1, 10000,“/ usr / bin / proxysql_galera_checker”,”,配置文件= / etc / proxysql-admin.cnf——write-hg=10——read-hg=11——writer-count=1——mode=singlewrite——优先级= 192.168.100.20:3306 192.168.100.40:3306 192.168.100.10:3306 192.168.100.30:3306——日志= / var / lib / proxysql / cluster_one_proxysql_galera_check.log ',“cluster_one”);
调度程序脚本中接受以下选项__arg1论点:
| 选项 | 名字 | 要求 | 描述 |
|---|---|---|---|
——配置文件 |
配置文件 | 是的 | 指定proxysql-adminconifiguration文件 |
——write-hg |
HOSTGROUP作家 | 没有 | 指定ProxySQL写主机组 |
——read-hg |
HOSTGROUP读者 | 没有 | 指定ProxySQL读主机组 |
——writer-count |
许多作家 | 没有 | 指定写节点数。取值为:0 forloadbal模式和1为singlewrite模式。 |
——模式 |
模式 | 没有 | 指定ProxySQL读写配置模式 |
——优先级 |
作家的优先级 | 没有 | 指定写笔记优先级 |
——日志 |
日志文件 | 没有 | 指定proxysql_galera_checker日志文件 |
请注意
在评论列中指定集群名称。
将调度器更改加载到运行时空间:
mysql@proxysql >负载调度器来运行时;
为了确保脚本已经加载,检查runtime_scheduler表:
mysql@proxysql >选择*从调度器\ G
预期的输出
*************************** 1。row *************************** id: 1 active: 1 interval_ms: 10000 filename: /bin/proxysql_galera_checker arg1:——config-file=/etc/proxysql-admin.cnf——write-hg=10——read-hg=11——writer-count=1——mode=singlewrite——priority=192.168.100.20:3306,192.168.100.40:3306,192.168.100.10:3306,192.168.100.30:3306——log=/var/lib/proxysql/cluster_one_proxysql_galera_check.log arg2: NULL arg3: NULL arg4: NULL arg5: NULL comment: cluster_one 1 row in set (0.00 sec)
检查可用节点的状态:
mysql@proxysql >选择hostgroup_id、主机名、端口状态从mysql_servers;
预期的输出
+--------------+---------------+------+--------+ | hostgroup_id |主机名| |港口地位 | +--------------+---------------+------+--------+ | 在线| 0 | 192.168.70.61 | 3306 | | 0 | 192.168.70.62在线| | 3306 | | 0 | 192.168.70.63 | 3306 |在线 | +--------------+---------------+------+--------+ 3行集(0.00秒)
每个节点可以有以下状态:
在线
后端节点已完全运行。
回避
后端节点暂时停止使用,因为短时间内发生了太多连接错误,或者复制延迟超过了允许的阈值。
OFFLINE_SOFT
不接受新的传入连接,而保留现有连接,直到它们变为非活动状态。换句话说,连接一直在使用,直到当前事务完成。这允许优雅地分离后端节点。
OFFLINE_HARD
现有连接被丢弃,新的传入连接不被接受。这相当于将节点从主机组中删除,或临时将其从主机组中取出进行维护。
使用sysbench测试集群¶
Sysbench被设计用来运行CPU、内存和I/O测试,并可以选择在MySQL数据库上运行在线事务处理(OLTP)工作负载。安装Sysbench来自Per雷竞技下载官网cona软件库:
根@proxysql: ~#>安装sysbench
[root@proxysql~]#> yum安装sysbench
Sysbench需要来自的ProxySQL客户端用户凭据创建一个ProxySQL客户端用户。
上创建数据库雷竞技下载官网Percona XtraDB集群节点。使用此数据库进行测试。
mysql@pxc1 >创建数据库sbt;用ProxySQL节点上的基准测试数据填充表:
root@proxysql: ~ # >sysbench——报告的时间间隔=5——num-threads=4\——num-requests=0——max-time=20.\——测试=/usr/share/doc/sysbench/tests/db/oltp.lua\——mysql用户=“sbuser”——mysql-password=“sbpass”\——oltp-table-size=10000——mysql-host=127.0.0.1——mysql-port=6033\准备在ProxySQL节点上运行基准测试:
root@proxysql: ~ # >sysbench——报告的时间间隔=5——num-threads=4\——num-requests=0——max-time=20.\——测试=/usr/share/doc/sysbench/tests/db/oltp.lua\——mysql用户=“sbuser”——mysql-password=“sbpass”\——oltp-table-size=10000——mysql-host=127.0.0.1——mysql-port=6033\运行
ProxySQL将收集到的数据存储在统计数据模式:
mysql@proxysql >显示表从统计数据;
预期的输出
+--------------------------------+ | 表 | +--------------------------------+ | stats_mysql_query_rules | | stats_mysql_commands_counters | | stats_mysql_processlist | | stats_mysql_connection_pool | | stats_mysql_query_digest | | stats_mysql_query_digest_reset | | stats_mysql_global | +--------------------------------+
例如,要查看集群上运行的命令的数量:
自动故障转移¶
ProxySQL自动检测某个节点是否不可用或该节点是否与集群同步。
您可以通过以下命令查看所有可用节点的状态:
mysql@proxysql >选择hostgroup_id、主机名、端口状态从mysql_servers;
预期的输出
+--------------+---------------+------+--------+ | hostgroup_id |主机名| |港口地位 | +--------------+---------------+------+--------+ | 在线| 0 | 192.168.70.61 | 3306 | | 0 | 192.168.70.62在线| | 3306 | | 0 | 192.168.70.63 | 3306 |在线 | +--------------+---------------+------+--------+ 3行集(0.00秒)
为了测试问题检测和故障转移机制,关闭节点3:
root@pxc3: ~ #服务mysql停止
ProxySQL检测到节点已关闭,并将节点状态更新为OFFLINE_SOFT:
mysql@proxysql >选择hostgroup_id、主机名、端口状态从mysql_servers;
预期的输出
+--------------+---------------+------+--------------+ | hostgroup_id |主机名| |港口地位 | +--------------+---------------+------+--------------+ | 在线| 0 | 192.168.70.61 | 3306 | | 0 | 192.168.70.62在线| | 3306 | | 0 | 192.168.70.63 | 3306 | OFFLINE_SOFT | +--------------+---------------+------+--------------+ 3行集(0.00秒)
重新启动节点3:
root@pxc3: ~ # >服务mysql开始
脚本检测更改并将节点标记为在线:
mysql@proxysql >选择hostgroup_id、主机名、端口状态从mysql_servers;
预期的输出
+--------------+---------------+------+--------+ | hostgroup_id |主机名| |港口地位 | +--------------+---------------+------+--------+ | 在线| 0 | 192.168.70.61 | 3306 | | 0 | 192.168.70.62在线| | 3306 | | 0 | 192.168.70.63 | 3306 |在线 | +--------------+---------------+------+--------+ 3行集(0.00秒)
辅助维护模式¶
为了维护,请识别该节点,并将其在ProxySQL中的状态更新为OFFLINE_SOFT,等待ProxySQL从该节点分流流量,然后启动关机或执行维护任务。雷竞技下载官网Percona XtraDB集群包括一个特别的维护模式用于使您无需调整就可以将节点拆除的节点ProxySQL手动。控件控制该模式pxc_maint_mode变量,由raybet雷竞技竞猜在线官网ProxySQL,可设置为以下值之一:
禁用:这是默认状态,告诉ProxySQL像往常一样将流量路由到节点。关闭:节点关闭时自动设置。维护:当需要对节点进行维护时,无需关闭节点,可手动切换该状态。