15、mysql的備份和主從複製

1、編寫腳本,支持讓用戶自主選擇,使用mysqldump還是xtraback全量備份。

[root@C76 ~]# yum install mariadb-server -y
[root@C76 ~]# systemctl restart mariadb
[root@C76 ~]# cat mariadb-backpu.sh 
#!/bin/bash
BACKUP_DIR=/data/backup
USER=root
PASSWD=redhat
[ -d $BACKUP_DIR ] || mkdir $BACKUP_DIR
while true;do
cat <<EOF
Please  choice you back up tool:
 1.mysqldump
 2.xtrabackup
 3.quit
EOF
read -p "Your chose: " chose
case "$chose" in

   1)
    mysqldump -u$USER -p$PASSWD -A -F -E -R --single-transaction --master-data=1 --flush-privileges --triggers --default-character-set=utf8 --hex-blob > $BACKUP_DIR/fullmydumpbak_$(date +%F_%T).sql
    ;;
   2)
    innobackupex --user=$USER --password=$PASSWD $BACKUP_DIR
    ;;
   3)
    echo "Bye!" && exit 2
    ;;
   *)
    echo "Chose Error !" && exit 3
    ;;
esac
done

2、配置Mysql主從同步

1、主從複製
vim /etc/my.cnf
主:server-id=1
log-bin=/data
systemctl restart mariadb
grant replication slave on *.* to repluser@'192.168.44.%' identified by 'centos'
2、備份
mysqldump -A --single-transaction --master-data=1 -F >/data/all.sql
3、建立複製
vim /data/all.sql
mysql>CHANGE MASTER TO MASTER_HOST='192.168.44.128',
MSTER_USER='repluser',
MSTER_PASSWORD='centos',
MASTER_LOG_FILE='mariadb-bin.000002',
MASTER_LOG_POS=245#;
MASTER_PORT=3306
從節點配置
server-id=2
read-only
datadir=/var/lib/mysql
systemctl start mariadb
mysql < /data/all.sql
mariadb>show slave status\G
show variables like 'server_id';
show variables variables like 'read_only
source /data/all.sql #執行
start slave;#啓動複製

3、使用MHA實現Mysql高可用

#至少需要三臺服務器,一臺主,兩臺從服務器
主同理配置
1、修改主配置文件
vim /etc/my.cnf
server-id=1
log-bin
auto_increment_offset=1
auto_increment_increment=2
2、重啓數據庫服務
systemctl restart mariadb
3、建立複製賬號
grant replication slave on *.* to repluser@'192.168.44.%' identified by 'centos'
4、備份
mysqldump -A --single-transaction --master-data=1 -F >/data/all.sql
scp /data/all.sql 192.168.44.130:/data
從節點都從主服務器中複製
1、修改配置文件
vim /etc/my.cng
server-id=2
2、重啓服務
systemctl restart mariadb
3、mysql>CHANGE MASTER TO MASTER_HOST='192.168.44.128',
MSTER_USER='repluser',
MSTER_PASSWORD='centos',
MASTER_LOG_FILE='mariadb-bin.000001',
MASTER_LOG_POS=245#;
MASTER_PORT=3306
mysql >start slave;
##同理配置從三

#裝插件
mysq>show plugins;#查看現有的插件
#在主服務器上裝
mysql>INSTALL PLLUGIN  rpl_semi_sync_master  SONAME 'semisync_master.so';
mysql>SET GLOBAL rpl_semi_sync_master_enabled=1   #啓用插件
mysql>SHOW GLOBAL VARIABLES LIKE '% semi%';

OFF默認是不啓用的
查看狀態信息

#在所有的從節點安裝插件
show plugins;
mysql>INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
#啓用
mysql>SET GLOBAL rpl_semi_sync_slave_enabled=1

#從節點配置完一定要把線程重新啓用一下
stop slave;
start slave;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章