mysql备份和MHA高可用

一、编写脚本,支持让用户自主选择,使用mysqldump还是xtraback全量备份。

#!/bin/bash
TIME=`date +%F_%H-%M-%S`
DIR=/data/dbbackup
PASS=123456
[ -d $DIR ] || mkdir $DIR
PS3="请输入备份方法编号:"
MENU="
使用mysqldump全量备份
使用xtraback全量备份
退出
"
which mysql||echo 本机未安装mysql,无需备份。
clear
echo *****mysql数据库备份*****
select M in $MENU ;do
        case $REPLY in
        1)
                mysqldump -uroot -p"$PASS" -A -F -E -R --triggers --single-transaction --master-data=1 --flush-privileges --default-character-set=utf8 --hex-blob | gzip > ${DIR}/${TIME}.sql.gz  && echo 备份成功 || echo 备份失败 
                exit
        ;;

        2)
                which xtrabackup>/dev/null || (echo "本机未安装xtraback工具,无法运行此功能。";exit)
                xtrabackup -uroot -p"$PASS" --backup --target-dir=${DIR}/${TIME}/ &>/dev/null && echo 备份成功 || echo 备份失败

                exit
        ;;
        3)
                echo 你已退出
                exit
        ;;
        *)
                echo 输入错误,请重新输入
        ;;

        esac
        done

二、配置Mysql主从同步。

1、安装两台mysql服务器,安装好数据库软件。

2、开启配置主服务器,开启二进制日志并设置唯一server-id。

[root@master ~]#vim /etc/my.cnf.d/server.cnf
#添加以下内容:
[mysqld]
server-id=8
log-bin

3、重启服务。

[root@master ~]#systemctl restart mariadb

4、创建账户。

MariaDB [(none)]>  grant replication slave on *.* to repluser@‘10.0.0.%‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)

5、查看二进制文件和位置。

MariaDB [(none)]> SHOW MASTER LOGS;
+--------------------+-----------+
| Log_name           | File_size |
+--------------------+-----------+
| mariadb-bin.000001 |       245 |
+--------------------+-----------+

6、开始配置从节点,设置唯一server-id,设置只读。

[mysqld]
server_id=200 #为当前节点设置一个全局惟的ID号
log-bin
read_only=ON #设置数据库只读,针对supper user无效

7、重启服务。

[root@slave ~]#systemctl restart mariadb

8、设置从节点。

[root@slave ~]#mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> CHANGE MASTER TO  MASTER_HOST=‘10.0.0.242‘, MASTER_USER=‘repluser‘,  MASTER_PASSWORD=‘123456‘,  MASTER_PORT=3306,  MASTER_LOG_FILE=‘mariadb-bin.000001‘,  MASTER_LOG_POS=245;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> start  slave;
Query OK, 0 rows affected (0.00 sec)

9、到此mysql的主从同步设置完成。

三、使用MHA实现Mysql高可用。

mysql备份和MHA高可用

上一篇:Oracle中用现在的时间减去小时数


下一篇:Ubuntu 安装 MySQL 和远程连接