单节点的MySQL没有高可用和容灾性,服务器可能因为突然断电导致MySQL数据不完整而无法启动的严重事故,所以建议定时备份数据库

环境:
centos7.9,mysql8.0.27
在/etc/profile中添加了mysql的环境变量,启动更方便
请视软件安装目录自行修改下面的路径:
echo '#MySQL Env'>> /etc/profile
echo 'export MYSQL_HOME=/opt/software/mysql'>> /etc/profile
echo 'export PATH=$PATH:$MYSQL_HOME/bin'>> /etc/profile
备份脚本
vi /opt/script/backup_mysql.sh
#!/bin/bash
# 5 1 * * * /opt/script/backup_mysql.sh
source /etc/profile #加载系统环境变量,否则crontab定时任务时找不到mysqldump命令
set -o nounset #引用未初始化变量时退出
#用户名
username="root"
#密码
password="root123456"
#需备份的数据库,数组
dbs=("ga")
#DATABASES=$(mysql -u$username -p$password -e "show databases" | grep -Ev "Database|sys|performance_schema|mysql|brp_log|information_schema")
#保存备份个数,备份10天数据
backup_clean_day=10
#备份保存路径
backup_dir=/mnt/data/backup/mysqlbk/data
#备份日志路径
backup_log=/mnt/data/backup/mysqlbk/log
#备份时加锁方式,
#MyISAM为锁表--lock-all-tables,
#InnoDB为锁行--single-transaction
lock="--single-transaction"
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
if [ ! -d $backup_log ];
then
mkdir -p $backup_log;
fi
#循环数据库进行备份,忽略备份指定表格
for db in $dbs
do
echo
echo ----------$backup_dir/${
db}-${
dd}.sql.gz BEGIN----------
mysqldump -u $username -p$password $lock --default-character-set=utf8mb4 --flush-logs --source-data=2 --flush-logs \
--ignore-table=${
db}.t_city --ignore-table=$
CentOS7.9MySQL8.0.27备份脚本与高可用设置

文章介绍了在CentOS7.9环境中配置MySQL8.0.27的环境变量,提供了一个备份脚本,用于定期备份数据库,包括设置备份策略、使用mysqldump参数以及添加crontab定时任务,确保高可用性和容灾性。
最低0.47元/天 解锁文章
838

被折叠的 条评论
为什么被折叠?



