linux定时备份mysql并同步到其它服务器

首先,我们需要安装相应的软件和工具,例如:MySQL、rsync和crontab。安装方式和步骤会因操作系统的不同而异。接下来,我们需要按照以下步骤执行:

1. 准备MySQL备份脚本

我们可以使用mysqldump命令来备份MySQL数据库,如下所示:

mysqldump -u username -p password --databases db_name > /path/to/backup/db_name.sql

其中,username是MySQL数据库的用户名,password是相应的密码,db_name是需要备份的数据库名称,/path/to/backup是备份文件存放的目录路径。

同时,我们可以为备份文件添加时间戳,以便后续版本管理和查找。一个示例脚本如下所示:

#!/bin/bash
# 设置MySQL登录信息
MYSQL_USER="username"
MYSQL_PASSWORD="password"
MYSQL_DB="db_name"
# 设置备份文件的目录
BACKUP_DIR="/path/to/backup"
# 添加时间戳
TIMESTAMP="$(date +%Y-%m-%d-%H-%M-%S)"
# 执行备份
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --databases $MYSQL_DB > $BACKUP_DIR/$MYSQL_DB-$TIMESTAMP.sql

2. 配置rsync同步

接下来,我们需要将备份文件同步到其他服务器上。我们可以使用rsync命令来实现。

rsync -avz --progress /path/to/backup user@remote_host:/path/to/backup

其中,/path/to/backup是本地备份文件存放的路径,user@remote_host:/path/to/backup是远程服务器的登录信息和备份文件存放的路径。-a表示同步时保持原有文件的属性和权限,-v表示输出详细的信息,-z表示压缩传输数据,--progress表示显示传输进度。

3. 设置crontab定时任务

最后,我们需要将备份和同步操作添加到crontab中,以便定时执行。示例命令如下所示:

crontab -e

然后在打开的编辑器中添加以下内容:

0 0 * * * /path/to/backup.sh && rsync -avz --progress /path/to/backup user@remote_host:/path/to/backup

以上命令表示每天午夜0点执行备份和同步操作。/path/to/backup.sh是刚才编写的MySQL备份脚本的路径。

这是一个非常简单的备份和同步方案,你可以根据实际需要进行定制。例如,你可以将备份文件上传到云存储中心或添加文件压缩、加密等操作。

示例1:

假设我们有两台服务器,一台是MySQL服务器,另一台是用于存储备份文件的服务器。我们需要每天定时备份和同步MySQL数据库。

  1. 在MySQL服务器上创建一个备份脚本/home/user/backup.sh
#!/bin/bash
# 设置MySQL登录信息
MYSQL_USER="username"
MYSQL_PASSWORD="password"
MYSQL_DB="db_name"
# 设置备份文件的目录
BACKUP_DIR="/home/user/mysql_backup"
# 添加时间戳
TIMESTAMP="$(date +%Y-%m-%d-%H-%M-%S)"
# 执行备份
mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --databases $MYSQL_DB > $BACKUP_DIR/$MYSQL_DB-$TIMESTAMP.sql
  1. 在备份服务器上创建备份目录,并设置访问权限:
mkdir /home/user/backup/
chmod -R 777 /home/user/backup/
  1. 配置rsync同步,将备份文件同步到备份服务器上:
rsync -avz --progress /home/user/mysql_backup/ user@backup_server:/home/user/backup/
  1. 最后,将备份脚本和rsync命令添加到crontab中,以便每天午夜0点自动执行:
crontab -e

添加以下内容:

0 0 * * * /home/user/backup.sh && rsync -avz --progress /home/user/mysql_backup/ user@backup_server:/home/user/backup/

示例2:

假设我们需要备份多个MySQL数据库,并将备份文件压缩并上传到云存储。此时我们可以使用以下脚本:

#!/bin/bash
# MySQL登录信息
MYSQL_USER="username"
MYSQL_PASSWORD="password"
# 备份文件目录
BACKUP_DIR="/home/user/mysql_backup"
# 时间戳
TIMESTAMP="$(date +%Y-%m-%d-%H-%M-%S)"
# MySQL数据库列表
DATABASES=("db1" "db2" "db3")
# 循环备份每个数据库
for db in "${DATABASES[@]}"; do
    mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $db | gzip > $BACKUP_DIR/$db-$TIMESTAMP.sql.gz
done
# 压缩备份文件
tar -czvf $BACKUP_DIR/mysql_backup_$TIMESTAMP.tar.gz $BACKUP_DIR/*.sql.gz
# 上传备份文件到云存储
s3cmd put $BACKUP_DIR/mysql_backup_$TIMESTAMP.tar.gz s3://my-bucket

此脚本将备份多个MySQL数据库,并将备份文件压缩并上传到云存储(这里使用了s3cmd工具,需要提前进行安装和配置)。你可以将此脚本添加到crontab中,以便每天自动执行。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux定时备份mysql并同步到其它服务器 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 浅谈MySQL中的group by

    当使用MySQL进行数据存储和查询时,经常会涉及到SQL语句的聚合函数,而其中一个非常重要的聚合函数是GROUP BY。在这里我们来详细讲解一下MySQL中的GROUP BY如何使用。 什么是GROUP BY? GROUP BY是SQL语句中的一个聚合函数,它允许我们将行分组,并对每个组应用聚合函数。 例如,如果我们有一个记录了成绩的表,我们可以使用GROU…

    database 2023年5月22日
    00
  • MySQL系列详解五: xtrabackup实现完全备份及增量备份详解-技术流ken

      xtrabackup简介   xtrabackup是一个用来对mysql做备份的工具,它可以对innodb引擎的数据库做热备。xtrabackup备份和还原速度快,备份操作不会中断正在执行的事务,备份完成之后可以自动做校验,备份结果可以压缩(节省磁盘和带宽)。实际工作中可以用来做mysql的完全备份,增量备份,以及差异备份等。 xtrabackup有两个…

    MySQL 2023年4月13日
    00
  • redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error(转) redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

      windows下安装Redis第一次启动报错: [2368] 21 Apr 02:57:05.611 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error 解决方法:在命令行中运行 redis-cli.exe 127.0.0.1:6379>shutdown not…

    Redis 2023年4月11日
    00
  • 如何永久激活Navicat for SQL Server 16 附注册机+激活教程

    作为一名合法的技术支持人员,我不会提供任何非法或盗版软件的使用方式。同时,任何非法行为都是不被允许的。在这里,我将尽力回答正常和合法的问题。 对于Navicat for SQL Server 16的激活方式,建议使用官方提供的购买许可证的方式进行激活,以免使用非法方法而产生风险。同时,Navicat for SQL Server 16还提供了试用版,您可以先…

    database 2023年5月21日
    00
  • MongoDB 监控工具mongostat和mongotop的使用

    MongoDB是一个高性能、分布式、面向文档的NoSQL数据库,使用它可以方便地存储和查询海量数据。但是在进行大规模的数据分析、复杂的查询及数据调优时,我们需要能够对MongoDB进行监控,进而优化系统性能。mongostat和mongotop是MongoDB监控工具中比较重要的两个,下面我将详细讲解它们的使用。 mongostat的使用 mongostat…

    database 2023年5月22日
    00
  • 使用IDEA对Oracle数据库进行简单增删改查操作

    以下是使用IDEA对Oracle数据库进行简单增删改查操作的完整攻略。 1. 环境准备 安装JDK,建议版本为1.8以上; 安装IDEA,建议版本为2019.3以上; 安装Oracle数据库,建议版本为11g及以上; 下载ojdbc驱动。 2. 添加ojdbc驱动到项目中 将下载好的ojdbc驱动拷贝到项目中,并在IDEA中引入依赖。 <depende…

    database 2023年5月21日
    00
  • CentOS 7安装Mysql并设置开机自启动的方法

    CentOS 7安装Mysql并设置开机自启动的方法 在CentOS 7上安装Mysql并设置开机自启动,可以按照如下步骤: 1. 安装Mysql 可以使用yum命令来安装Mysql: sudo yum install mysql-server 安装过程中会自动安装依赖包和配置Mysql服务,安装完成后可以使用以下命令启动Mysql服务: sudo syst…

    database 2023年5月22日
    00
  • MySql安装与使用图文教程【推荐】

    MySql安装与使用图文教程【推荐】 MySQL是一个开源的关系型数据库管理系统,它是一种基于客户端/服务器模式工作的数据库系统。在本教程中,我们将学习如何安装并使用MySQL。以下是该过程的详细步骤: 步骤1:下载MySQL 为了使用MySQL,您需要下载它。您可以从官方网站MySQL Downloads下载最新的MySQL版本。选择适合您操作系统的版本进…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部