mysqldump定时备份数据库

Posted 伯牙绝音

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump定时备份数据库相关的知识,希望对你有一定的参考价值。

mysql服务器ip:192.168.0.10

备份服务器ip:192.168.0.11

数据库名称:db_product

 

思路:在mysql服务器A上创建一个用户分配权限专门用于数据库备份,A服务器可以是数据库集群中的slave之一。找一个磁盘宽裕的服务器B,安装mysql的客户端。

在服务器B上执行mysqldump命令备份数据库。

只安装mysql客户端的教程:https://www.cnblogs.com/xxoome/p/8313453.html

#创建用户,用户名为【backupuser】并限制客户端连接ip,【192.168.0.11】为B服务器的ip
CREATE USER \'backupuser\'@\'192.168.0.11\' IDENTIFIED BY \'pwd\';

#授予用户权限,限制了可以访问的数据库
GRANT ALL ON db_product.* TO \'backupuser\'@\'192.168.0.11\';
flush privileges;

 

编写脚本

#创建脚本
touch mysql_backup.sh

#增加可执行权限
chmod +x mysql_backup.sh

脚本内容

#!/bin/sh
# File: /usr/local/xiaohb/mysql_backup.sh
# Database info
DB_NAME="db_product"
DB_USER="backupuser"
DB_PASS="pwd"
DB_HOST="192.168.0.10"
DB_PORT="3306"

BIN_DIR="/usr/bin"
BCK_DIR="/usr/local/xiaohb/mysql_backup"
DATE=`date +%Y%m%d_%H%M%S`

mkdir -p $BCK_DIR
#$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql

# 为了减小磁盘空间的消耗,这里使用gzip压缩
$BIN_DIR/mysqldump --opt -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BCK_DIR/$DB_NAME.dump_$DATE.sql.gz

 

创建定时任务

#编辑定时任务
crontab -e

#若crontab没有安装
yum install -y vixie-cron

#每天凌晨1点执行
0 1 * * * /usr/local/xiaohb/mysql_backup.sh

#重载crontab
service crond reload

 

以上是关于mysqldump定时备份数据库的主要内容,如果未能解决你的问题,请参考以下文章

mysqldump定时备份数据库

如何利用 Zabbix 监控 mysqldump 定时备份数据库是否成功?

Linux中使用mysqldump对MySQL数据库进行定时备份

技术干货:利用 Zabbix 监控 mysqldump 定时备份数据库是否成功 | 运维进阶

使用mysqldump对MySQL进行定时备份的实践

Linux中使用mysqldump对MySQL数据库进行定时备份