mysql数据库备份命令

对于企业而言,数据是非常重要的,要对数据库进行定期备份,万一数据库丢了那就得连夜逃跑了。常用,梳理回顾下,做下记录。

导出db1数据库

mysqldump -u root -p 123456 db1 > /root/mysql/db1_`date +%Y%m%d`.sql

导出db1数据库并压缩

mysqldump -u root -p 123456 db1 | gzip > /root/mysql/db1_`date +%Y%m%d`.sql.gz

备份db1 db2多个数据库

mysqldump -u root -p 123456 db1 db2 > /root/mysql/db_1_2_`date +%Y%m%d`.sql

备份db1 table1表

mysqldump -u root -p 123456 db1 table1 > /root/mysql/db1_table1_`date +%Y%m%d`.sql

备份db1的table1、table2多张表

mysqldump -u root -p 123456 db1 table1 table2 > /root/mysql/db1_table1_table2_`date +%Y%m%d`.sql

mysql-test容器备份db1数据库并压缩

docker exec mysql-test mysqldump -u root -p 123456 db1 | gzip > /root/mysql/db1_`date +%Y%m%d`.sql.gz

删除7天前的db1数据库备份

find /root/mysql/backup/ -mtime +7 -name 'db1_[1-9].sql.gz' -exec rm -f {} \;

mysql-dump.sh备份示例:

#!/usr/bin/env bash

# 数据做备份
docker exec mysql-test mysqldump -u root -p 123456 db1 | gzip > /root/mysql/backup/db1_`date +%Y%m%d`.sql.gz

dump=`date 'date +%Y%m%d'`
if [ $? -ne 0 ]
then
	echo "$dump 数据备份失败" >> /root/mysql/logs/mysqldump_fail.log
	exit -1
else
	echo "$dump 数据备份成功" >> /root/mysql/logs/mysqldump_success.log
	exit 0
fi

# 删除7天前备份数据
find /root/mysql/backup/ -mtime +7 -name 'db1_[1-9].sql.gz' -exec rm -f {} \;

Linux定时任务执行mysql-dump.sh脚本

chmod +x /root/mysql/mysql_dump.sh

crontab -e

# 每周日凌晨2点定时执行备份任务
00 02 * * 7 /root/mysql/mysql_dump.sh > /root/mysql/mysql_dump_exec.log 2>&1

小结:
个人认为,定期备份数据和开启binlog日志,很重要!

你可能感兴趣的:(mysql,数据库,mysql)