实现mysql数据库的定时同步/备份

本文介绍了如何编写一个脚本自动定时备份MySQL数据库,并确保数据同步。脚本包括从源数据库导出备份、同步到目标数据库以及添加到系统定时任务中,以实现高效的数据保护。
摘要由CSDN通过智能技术生成

数据无价,备份至上

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

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

日期格式说明:
在这里插入图片描述

举例示范:

在这里插入图片描述

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

完成!!!

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现MySQL数据库的时间同步,可以采用以下几种方法。 首先,可以使用定时命令来同步数据库。这样可以在指定的时间间隔内执行数据库同步的操作。这种方法可以与自动邮件功能相结合,以便掌握同步结果。这种方法适用于Windows系统。 另一种方法是使用MySQL Studio等实用工具,直接使用其提供的备份数据库工具来进行数据库同步。这种方法相对简单方便,适用于各种操作系统。 在使用Linux系统时,需要注意大小写的区分。为了确保两个数据库的初始化同步,最好使用mysqldump方法,而不是直接复制数据库表文件的方式。同时,使用MySQL Studio进行数据库备份也是一种不错的选择。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [主备MySQL数据库定时同步](https://blog.csdn.net/u011465910/article/details/126358135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL 数据库同步](https://blog.csdn.net/weixin_42305901/article/details/113337191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值