数据无价,备份至上

在我们使用的数据库,要求做到日常进行数据库备份的时候,不可能每天人为的进行数据库的转储运行。借助系统的定时任务调度,通过脚本执行数据库的转储备份和导入实现数据库之间的同步。

1.确保安装成功mysqldump;
2. 创建一个名为sync_mysql.sh的脚本文件,并将以下内容复制到该文件中:修改指定的信息
# 源数据库信息
SRC_HOST="源数据库地址"
SRC_PORT="源数据库端口"
SRC_USER="源数据库用户名"
SRC_PASS="源数据库密码"
SRC_DB="源数据库名"
####如果只进行数据库的备份可以不用
# 目标数据库信息
DST_HOST="目标数据库地址"
DST_PORT="目标数据库端口"
DST_USER="目标数据库用户名"
DST_PASS="目标数据库密码"
DST_DB="目标数据库名"
# 备份文件保存路径
BACKUP_DIR="/test/mysql/data/sync/backup/directory"
# 获取当前时间(确保文件名称的唯一)
DATE=$(date +%Y%m%d_%H:%M:%S)
# 生成备份文件名
BACKUP_FILE="${BACKUP_DIR}/${SRC_DB}_${DATE}.sql"
# 使用mysqldump导出数据库
mysqldump -h${SRC_HOST} -P${SRC_PORT} -u${SRC_USER} -p${SRC_PASS} ${SRC_DB} > ${BACKUP_FILE}
####如果只进行数据库的备份可以不用
# 将备份文件导入到目标数据库
#mysql -h${DST_HOST} -P${DST_PORT} -u${DST_USER} -p${DST_PASS} ${DST_DB} < ${BACKUP_FILE}
# 删除备份文件
#rm -f ${BACKUP_FILE}
3.对该脚本添加执行权限:
chmod +x sync_mysql.sh
4.测试脚本:
1.备份测试标准:运行该脚本,如果备份成功,说明脚本建立完成
    例如:到test/mysql/data/sync/backup/directory目录下面查找是否有对应的脚本文件

2.同步测试标准:运行该脚本,如果两边的数据一致,说明脚本建立完成
    例如:到SRC_DB建立一张表,或者在SRC_DB里面的一张表里面添加数据,到DST_DB里面查看是否数据一致
## PS:查看数据库的大小sql;

select 
table_schema as '数据库',
sum(table_rows) as '记录数',
sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;
5.添加到定时任务:
命令简介:
编辑当前服务器里面的所有定时任务
crontab -e
查看当前服务器里面的所有定时任务
crontab -l
删除掉当前服务器里面的所有定时任务
crontab -r

如果有3条定时任务,想让其中的一条定时任务暂时不执行,用#注释掉即可
添加Crontab条目:
例如:要每天早上6点执行/home/user/backup.sh脚本
0 6 * * * /bin/bash /home/user/backup.sh

日期格式说明:

mysql 备份单一表 mysql备份一张表数据_定时任务

举例示范:

mysql 备份单一表 mysql备份一张表数据_mysql 备份单一表_02

等着定时任务跑结果就可以了

完成!!!