centos上sqladmin集群部署方案
导读:CentOS上SQLAdmin集群部署方案 一、准备工作 硬件与网络:确保所有集群节点(至少3台,推荐奇数台以保证多数派投票)具备足够的CPU、内存、存储资源;节点间通过高速网络互联(如千兆以太网),配置静态IP地址,关闭SELinux(...
CentOS上SQLAdmin集群部署方案
一、准备工作
- 硬件与网络:确保所有集群节点(至少3台,推荐奇数台以保证多数派投票)具备足够的CPU、内存、存储资源;节点间通过高速网络互联(如千兆以太网),配置静态IP地址,关闭SELinux(
setenforce 0)或设置为permissive模式,开放必要的端口(如MySQL默认3306、SQLAdmin Web端口80/443、集群通信端口)。 - 操作系统与环境:所有节点安装相同版本的CentOS(推荐CentOS Stream 8/Stream 9),更新系统包(
sudo yum update -y);安装必要依赖(sudo yum install -y wget tar make gcc mysql-devel php php-mysqlnd)。 - 基础服务部署:在每个节点上安装并配置MySQL/MariaDB数据库(参考单节点SQLAdmin部署中的MySQL安装步骤),确保数据库服务正常运行。
二、SQLAdmin安装与基础配置
- 安装SQLAdmin:
- 方式一(YUM仓库):添加EPEL仓库(
sudo yum install epel-release -y),通过YUM安装SQLAdmin(sudo yum install sqladmin -y)。 - 方式二(源码编译):下载SQLAdmin源码包(如
sqladmin-x.x.x.tar.gz),解压至/usr/local/目录,安装依赖(sudo yum groupinstall "Development Tools" -y),执行./configure --with-mysql=/usr/bin/mysql_config --with-web=/var/www/html/sqladmin,编译安装(make & & sudo make install)。
- 方式一(YUM仓库):添加EPEL仓库(
- 基础配置:
- 编辑SQLAdmin配置文件(
/etc/sqladmin/sqladmin.conf或/usr/local/sqladmin/config.inc.php),设置数据库连接信息(主机名、端口、用户名、密码)、集群节点列表(后续集群配置需用到)、管理员账户及权限。 - 配置Web服务器(Nginx/Apache):若使用Nginx,添加虚拟主机配置(指向SQLAdmin安装目录,开启PHP-FPM支持);若使用Apache,配置虚拟主机(
DocumentRoot指向SQLAdmin目录,开启AllowOverride All)。重启Web服务(sudo systemctl restart nginx/apache2)。
- 编辑SQLAdmin配置文件(
三、集群配置
- 创建集群配置文件:
在主节点(或任意节点)上创建集群配置文件(如/etc/sqladmin/cluster.conf),定义集群节点信息(IP地址、端口、角色)。示例如下:[cluster] nodes = node1_ip:3306,node2_ip:3306,node3_ip:3306 mode = multi_master # 多主复制模式(适用于高并发写场景)或 master_slave # 主从复制模式(适用于读多写少场景) sync_strategy = async # 异步同步(高性能,可能丢数据)或 semi_sync # 半同步同步(平衡性能与一致性) - 配置数据同步:
- 主从复制(Master-Slave):
在主节点(Master)上修改MySQL配置(/etc/my.cnf),添加:重启MySQL([mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_do_db = your_database_name # 需同步的数据库sudo systemctl restart mysqld),创建复制用户(CREATE USER 'repl'@'%' IDENTIFIED BY 'strong_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES;),获取主节点二进制日志位置(SHOW MASTER STATUS;,记录File和Position)。
在从节点(Slave)上修改MySQL配置,添加:重启MySQL,在从节点上配置复制([mysqld] server-id = 2 # 每个节点唯一 relay_log = /var/log/mysql/mysql-relay-bin.log log_bin = /var/log/mysql/mysql-bin.log read_only = 1 # 从节点设为只读(防止误操作)CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='strong_password', MASTER_LOG_FILE='recorded_File', MASTER_LOG_POS=recorded_position; START SLAVE;)。 - 多主复制(Multi-Master):
每个节点均配置为主节点(server-id唯一),开启二进制日志,配置互为主从复制(在每个节点上执行CHANGE MASTER TO指向其他节点)。需注意冲突解决(如应用层加锁或使用auto_increment_increment和auto_increment_offset避免主键冲突)。
- 主从复制(Master-Slave):
- 配置负载均衡:
使用Nginx或HAProxy作为负载均衡器,分发请求到集群节点。示例如下(Nginx配置):重启Nginx(upstream sqladmin_cluster { server node1_ip:8080; server node2_ip:8080; server node3_ip:8080; # 负载均衡算法:轮询(默认)、权重(weight)、IP哈希(ip_hash) least_conn; # 最少连接算法(适用于长连接场景) } server { listen 80; server_name sqladmin.yourdomain.com; location / { proxy_pass http://sqladmin_cluster; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }sudo systemctl restart nginx)。
四、启动与验证集群
- 启动SQLAdmin服务:
在所有节点上启动SQLAdmin服务(sudo systemctl start sqladmin),设置开机自启动(sudo systemctl enable sqladmin)。 - 验证集群状态:
- 使用SQLAdmin提供的命令行工具(如
sqladmin cluster status)查看集群节点状态(是否全部在线、同步状态)。 - 登录SQLAdmin Web界面(通过负载均衡器IP或域名访问),检查是否能正常访问所有节点的数据库,执行写操作(如插入数据),验证数据是否同步到其他节点。
- 检查负载均衡效果:通过压力测试工具(如Apache Benchmark)模拟多用户请求,观察请求是否均匀分发到各个节点。
- 使用SQLAdmin提供的命令行工具(如
五、监控与维护
- 性能监控:
使用Prometheus+Grafana监控集群性能指标(如CPU使用率、内存占用、磁盘I/O、数据库连接数、查询响应时间),设置告警阈值(如CPU使用率超过80%时触发告警)。 - 日志管理:
集中收集SQLAdmin、MySQL、负载均衡器的日志(使用ELK Stack或Fluentd),定期分析日志(如错误日志、慢查询日志),及时排查问题。 - 备份与恢复:
使用mysqldump或Percona XtraBackup定期备份数据库(备份文件存储在异地或云存储),每周进行恢复测试(验证备份文件的完整性和恢复流程的有效性)。 - 故障处理:
- 若节点宕机,检查日志(
/var/log/sqladmin/error.log、/var/log/mysql/error.log),修复问题后重启服务; - 若数据同步失败,检查复制状态(
SHOW SLAVE STATUS\G或SHOW STATUS LIKE 'wsrep_%'),修复冲突后重新启动复制。
- 若节点宕机,检查日志(
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上sqladmin集群部署方案
本文地址: https://pptw.com/jishu/739256.html
