Linux-Manual

Percona XtraDB Cluster(PXC)安装和配置

PXC 主要特点

官网资料

Docker 方式安装

# 初次初始化比较慢,给个 2 分钟左右吧,同时这个节点也用来做全量备份
docker run -d -p 3307:3306 -v /data/docker/pxc/node1/mysql:/var/lib/mysql -v /data/docker/pxc/node1/backup:/data/backup -e MYSQL_ROOT_PASSWORD=gitnavi123456 -e CLUSTER_NAME=pxc-cluster -e XTRABACKUP_PASSWORD=gitnavi123456 --privileged --name=pxc-node-1 --net=pxc-net --ip 172.18.0.2 percona/percona-xtradb-cluster
docker run -d -p 3308:3306 -v /data/docker/pxc/node2/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=gitnavi123456 -e CLUSTER_NAME=pxc-cluster -e XTRABACKUP_PASSWORD=gitnavi123456 -e CLUSTER_JOIN=pxc-node-1 --privileged --name=pxc-node-2 --net=pxc-net --ip 172.18.0.3 percona/percona-xtradb-cluster

docker run -d -p 3309:3306 -v /data/docker/pxc/node3/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=gitnavi123456 -e CLUSTER_NAME=pxc-cluster -e XTRABACKUP_PASSWORD=gitnavi123456 -e CLUSTER_JOIN=pxc-node-1 --privileged --name=pxc-node-3 --net=pxc-net --ip 172.18.0.4 percona/percona-xtradb-cluster

负载均衡

global
	#工作目录
	chroot /usr/local/etc/haproxy
	#日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
	log 127.0.0.1 local5 info
	#守护进程运行
	daemon

defaults
	log 	global
	mode	http
	#日志格式
	option 	httplog
	#日志中不记录负载均衡的心跳检测记录
	option 	dontlognull
	#连接超时(毫秒)
	timeout connect 5000
	#客户端超时(毫秒)
	timeout client  50000
	#服务器超时(毫秒)
	timeout server  50000

#监控界面	
listen  admin_stats
	#监控界面的访问的IP和端口
	bind  0.0.0.0:8118
	#访问协议
	mode        http
	# URI 相对地址(访问 haproxy 监控地址:http://192.168.0.105:8118/dbs)
	stats uri   /dbs
	#统计报告格式
	stats realm     Global\ statistics
	#登陆帐户信息(登录名 admin,密码:gitnavi123456)
	stats auth  admin:gitnavi123456
#数据库负载均衡
listen  proxy-mysql
	#访问的IP和端口
	bind  0.0.0.0:3316
	#网络协议
	mode  tcp
	#负载均衡算法(轮询算法)
	#轮询算法:roundrobin
	#权重算法:static-rr
	#最少连接算法:leastconn
	#请求源IP算法:source 
	balance  roundrobin
	#日志格式
	option  tcplog
	#在 MySQL 中创建一个没有权限的 haproxy 用户,密码为空。Haproxy 使用这个账户对MySQL数据库心跳检测
	option  mysql-check user haproxy
	#这里填写的端口是 docker 容器的端口,而不是宿主机端口
	server  MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000
	server  MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000
	server  MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000
	#使用keepalive检测死链
	option  tcpka

XtraBackup 热备份

全量备份

apt-get update
apt-get install -y percona-xtrabackup-24

# 全量备份,备份到 docker 容器的 /data 目录下:
innobackupex --user=root --password=gitnavi123456 /data/backup/full/201806

还原全量备份

增量备份(未整理)

资料