-->创建脚本文件;提前安装mariadb-server,percona-xtrabackup相关的rpm包
脚本如下:
-->percona-xtrabackup:下载路径:https://www.percona.com/downloads/XtraBackup/LATEST/
2、配置Mysql主从同步
在主服务器:vim /etc/my.cnf server-id=1,log-bin;
-->启动服务器并添加复制账号;grant replication slave on . to ‘repluser‘@‘192.168.10.%‘ identified by ‘centos‘;
在从服务器上:yum安装mariadb-server数据库,更改配置文件;
-->启动数据库:增加同步节点数据:
-->start slave 启动从节点;show slave status\G --查看同步状态;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这两个线程是否为:yes
3、使用MHA实现Mysql高可用。
-->通过yum或者yum源安装mariadb-server
-->配置Master:
vim /etc/my.cnf
[mysqld]
log-bin
server_id=1
skip_name_resolve=1
mysql>show master logs
mysql>grant replication slave on . to repluser@‘192.168.10.%‘ identified by ‘magedu‘;
mysql>grant all on . to mhauser@‘192.168.10.%‘ identified by ‘magedu‘;
配置半同步插件;
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so‘;
mysql>SET GLOBAL rpl_semi_sync_master_enabled=1;
mysql>SHOW GLOBAL VARIABLES LIKE ‘%semi%‘; --查看插件变量是否启动
mysql>SHOW GLOBAL STATUS LIKE ‘%semi%‘;
systemctl restart mariadb
-->配置slave:
vim /etc/my.cnf
[mysqld]
server_id=2 不同节点此值各不相同
log-bin
read_only
relay_log_purge=0
skip_name_resolve=1
CHANGE MASTER TO
MASTER_HOST=‘192.168.10.101‘,
MASTER_USER=‘repluser‘,
MASTER_PASSWORD=‘magedu‘,
MASTER_PORT=3306,
MASTER_LOG_FILE=‘mariadb-bin.000001‘,
MASTER_LOG_POS=245;
配置slave半同步插件:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so‘;
mysql>SET GLOBAL rpl_semi_sync_master_enabled=1;
mysql>SHOW GLOBAL VARIABLES LIKE ‘%semi%‘; --查看插件变量是否启动
mysql>SHOW GLOBAL STATUS LIKE ‘%semi%‘;
mysql>start slave;
mysql>show slave status\G;--确认是否启动成功sql和io线程是否连接
-->配置MHA服务器;
在MHA服务器上安装两个包;(必须先安装node在安装manager,依赖关系)
mha4mysql-manager
mha4mysql-node
下载链接:https://code.google.com/archive/p/mysql-master-ha/downloads
在被管理节点安装:
mha4mysql-node
在MHA服务器管理节点上建立配置文件
vim /etc/mastermha/app1.cnf
[server default]
user=mhauser
password=magedu
manager_workdir=/data/mastermha/app1/
manager_log=/data/mastermha/app1/manager.log
remote_workdir=/data/mastermha/app1/
ssh_user=root
repl_user=repluser
repl_password=magedu
ping_interval=1
[server1]
hostname=192.168.10.101
candidate_master=1
[server2]
hostname=192.168.10.11
candidate_master=1
[server3]
hostname=192.168.10.10
实现ssh自动登录;在MHA监控服务器上;
ssh-keygen 生成ssh私钥和公钥分别传到所有需要监控的主从服务器;
在所有节点实现相互之间ssh key验证
masterha_check_ssh --conf=/etc/mastermha/app1.cnf
masterha_check_repl --conf=/etc/mastermha/app1.cnf
启动MHA服务:
masterha_manager --conf=/etc/mastermha/app1.cnf --启动MHA命令(为一次性服务)
排错日志:
/data/mastermha/app1/manager.log
-->最终验证结果;
当主服务器down机后会自动提升其他从节点为主服务器,当前MHA一次性任务也将结束;