centos7下mysqldump定时备份数据库

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

单节点的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=$
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值