广告
返回顶部
首页 > 资讯 > 数据库 >mysqldump使用rsync异地全量备份数据库
  • 421
分享到

mysqldump使用rsync异地全量备份数据库

mysqldump使用rsync异地全量备份数据库 2016-12-11 12:12:44 421人浏览 绘本
摘要

Mysql 做了本机,同机房全量备份后,想同时做一份异地备份,考虑异地机房的网络不稳定性,使用 rsync 来同步备份的文件; 同机房异机备份,内网速度快可以使用scp,或者mysqldump备份脚本放在非mysql机器上; 服务器环境:

mysqldump使用rsync异地全量备份数据库

Mysql 做了本机,同机房全量备份后,想同时做一份异地备份,考虑异地机房的网络不稳定性,使用 rsync 来同步备份的文件;
同机房异机备份,内网速度快可以使用scp,或者mysqldump备份脚本放在非mysql机器上;

服务器环境: Centos linux release 7.7.1908 (Core)
当前是一体机,所以在mysql机器做mysqldump,实际业务中上最好在非mysql机器执行mysqldump做备份;

一. 远程备份服务器,安装rsync:

1 使用yum安装:

[root]# yum install -y rsync

2 查看版本:

[root]# rsync --version
rsync  version 3.1.3  protocol version 31

3 查询配置文件存放的路径

[root]# rpm -qc rsync
/etc/rsyncd.conf
/etc/sysconfig/rsyncd

4 查看systemd服务管理脚本:

[root]# ll /lib/systemd/system | grep rsync
-rw-r--r--  1 root root  237 Apr  1 12:22 rsyncd.service
-rw-r--r--  1 root root  220 Apr  1 12:22 rsyncd@.service
-rw-r--r--  1 root root  138 Apr  1 12:22 rsyncd.Socket

在/lib/systemd/system目录下存在rsyncd.service, 即可以使用systemctl 管理 rsync

5 开放服务器公网访问端口,默认使用873,如果修改rsync端口,则开放相应端口;

重中之重

二. 远程备份服务器,配置rsync:

1 修改rsyncd.conf配置:

[root]# cat /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options
# configuration example:
# port=873 默认端口,修改端口,需要开放公网访问
uid = root
gid = root
use chroot = no
max connections = 4  
timeout = 900  # 超时时间
ignore nonreadable = yes
log file=/var/log/rsyncd.log  # log存放路径
pid file=/var/run/rsyncd.pid  # pid存放路径
lock file=/var/run/rsyncd.lock  # 文件存放路径
secrets file=/etc/rsyncd.passwd  # 密码文件

[mysql]  # 模块名
comment=MySQL remote backup  # 模块注释
path = /data-backup/mysql  # 绝对路径
read only=no   # 默认为yes,客户端不能上传,只能下载
auth users=user_rsync  # 认证用户

2 创建密码文件,rsync认证的用户和密码, 不需要使用useradd真实创建用户:

[root]#echo "user_rsync:Rsync@123">/etc/rsyncd.passwd

3 修改认证为root的读写权限:

[root]#chmod 600 /etc/rsyncd.passwd

三. 远程备份服务器,启动rsync:

1 使用systemctl管理服务:

[root]# systemctl start rsyncd

重启:# systemctl restart rsyncd 查看状态:# systemctl status rsyncd

2 查看端口监听状态:

[root]# netstat -lnpt | grep 873
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      2392/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      2392/rsync 

3 查看rsync的log,是否正常启动:

[root]# cat /var/log/rsyncd.log 
2020/04/01 12:29:46 [8159] rsyncd version 3.1.3 starting, listening on port 873

四. Mysql服务器,创建备份用户:

1 使用mysql的root账号,进入终端:

[root]#mysql -u root -p

2 创建mysqldump用户,建议和业务数据库用户区分开, GRANT权限可以调整,注意一定不要 GRANT ALL:

mysql> use mysql -A;
mysql> CREATE USER "mysql_backup"@"localhost" identified by "Backup@Abc123";
mysql> GRANT SELECT, RELOAD, REPLICATION CLIENT, SHOW VIEW, TRIGGER ON *.* TO "mysql_backup"@"localhost";
mysql> FLUSH PRIVILEGES;

五. Mysql服务器,创建备份脚本:

1 创建备份脚本,可以根据业务实际情况,修改:

[root opt]# vim /opt/mysql_backup.sh
#!/bin/bash

# mysql config
db_host="localhost"
db_user="mysql_backup"
db_password="Backup@Abc123"

# backup file
bk_time=`date +%Y%m%d_%H%M%S`
bk_file="/opt/mysql-bk-app-${bk_time}.sql.gz"

# delete backup 7 days before
find /opt/ -name "*.sql.gz" -type f -mtime +7 -exec rm -rf {} ; > /dev/null 2>&1

# backup all database
mysqldump --opt -h${db_host} -u${db_user} -p${db_password} --default-character-set=utf8mb4 --all-databases --single-transaction --flush-logs --master-data=2 | gzip >${bk_file}

# rsync to remote machine
nohup rsync -az --include="*.gz" --exclude=* --password-file=/etc/rsyncd.passwd /opt/ user_rsync@1.2.3.4::mysql >/dev/null 2>&1 &

同机房异机备份,内网速度快可以使用scp,或者备份脚本放在非mysql机器上;
a. 如果mysql没有开启binlog,需去掉binlog刷新:--flush-logs --master-data=2
b. user_rsync(at)10.20.30.40::mysql ( 认证用户@远程服务器::模块名 )
c. --include=".gz" 只同步gz后缀得文件,脚本等其他文件不同步
d. --exclude=
排除目录下所有文件, 注意exclude 必须在 include后面

2 修改/opt/mysql_backup.sh脚本可执行:

[root]#chmod +x /opt/mysql_backup.sh

六. Mysql服务器,测试脚本,添加crontab:

1 测试脚本,查看远程备份服务器的文件:

[root]#/opt/mysql_backup.sh

在远程服务器,mysql模块对应的目录,rsync文件传输中是隐藏文件,要使用 ll -la 查看。

2 添加定时脚本:

[root]# crontab -e
#mysql remote backup
00 3 * * * /opt/mysql_backup.sh > /opt/x_mysql_backup.log 2>&1

每天03:00,执行一次, 具体根据业务情况,调整脚本执行时间和频率。

您可能感兴趣的文档:

--结束END--

本文标题: mysqldump使用rsync异地全量备份数据库

本文链接: https://www.lsjlt.com/news/7395.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysqldump使用rsync异地全量备份数据库
    Mysql 做了本机,同机房全量备份后,想同时做一份异地备份,考虑异地机房的网络不稳定性,使用 rsync 来同步备份的文件; 同机房异机备份,内网速度快可以使用scp,或者mysqldump备份脚本放在非mysql机器上; 服务器环境:...
    99+
    2016-12-11
    mysqldump使用rsync异地全量备份数据库
  • 如何使用mysqldump备份异机恢复数据库
    这篇文章给大家分享的是有关如何使用mysqldump备份异机恢复数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 使用mysqldump备份异机...
    99+
    2022-10-18
  • mysql——数据库备份——使用mysqldump命令备份所有数据库
    mysqldump命令备份所有数据库; 语法格式:mysqldump -u username -ppassword --all-databases  > backupname.sql --all-databases:这个选项表示后面跟一...
    99+
    2023-10-09
    数据库 mysql java sql mybatis
  • 使用mysqldump该如何备份数据库
    本文主要给大家介绍使用mysqldump该如何备份数据库,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下使用mysqldump该如何备份数据库吧。My...
    99+
    2022-10-18
  • 使用mysqldump怎么备份MySQL数据库
    今天就跟大家聊聊有关使用mysqldump怎么备份MySQL数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  一、数据备份的重要性  工作中,...
    99+
    2022-10-18
  • MySQL数据库备份之mysqldump的使用
    原文:https://www.cnblogs.com/tiaopixiaonaofu/p/13976681.html...
    99+
    2016-12-02
    MySQL数据库备份之mysqldump的使用 数据库入门 数据库基础教程
  • 如何使用mysqldump备份MySQL数据库
    如何使用mysqldump备份MySQL数据库,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  一、数据备份的重要性  工作中,如果意外删除了...
    99+
    2022-10-18
  • 如何使用rsync备份数据
    这篇文章主要为大家展示了“如何使用rsync备份数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用rsync备份数据”这篇文章吧。rsync是一款实现远程同步功能的软件,在同步文件的同时...
    99+
    2023-06-28
  • 用Mysqldump实现全库备份+binlog的数据还原
      随着业务量的增长,数据库也是成倍增长,原来一直使用的全库备份不再适合现在的数据库了,动辄就备份10G-20G,太占用磁盘空间,所以就考虑用更简洁更快速更节省磁盘空间的备份方法,这就想到了使用b...
    99+
    2022-10-18
  • ORACLE_数据库全备份+归档异地恢复
    全备份: #!/bin/bash  export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/produc...
    99+
    2022-10-18
  • MySQL数据备份之mysqldump使用
    1、各种用法说明     A. 最简单的用法:mysqldump -uroot -pPassword [database name]&n...
    99+
    2022-10-18
  • 如何使用Mysqldump备份和恢复mysql数据库
    这篇文章给大家介绍如何使用Mysqldump备份和恢复mysql数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 dump is an effective tool to bac...
    99+
    2022-10-18
  • MySQL数据库全库备份及增量备份脚本
    脚本网盘链接下载。 1、全库备份脚本如下: #!/bin/bash ############### 定义默认值 ################# user='root' passwd='123.com...
    99+
    2022-10-18
  • mysql数据库定时分库备份(本地+异地)
    简介-邱月涛公司新项目上线,今天建立全网备份,现在这记录的是mysql部分备份方式:全备+binlog备份地点:本地+异地备份时间:每日0点,切割binlog日志 1,环境介绍: [root@jm1j-no...
    99+
    2022-10-18
  • 数据库备份周日全量+日增量备份脚本
    相信很多做运维的小伙伴都会用到mysql数据库,以下提供一个脚本与诸君分享。#!/bin/bashSCRIPT_DIR=$(dirname $0)BACKUP_DIR="/data1/mysqlb...
    99+
    2022-10-18
  • MySQL数据库如何用脚本备份全库和增量备份
    MySQL数据库如何用脚本备份全库和增量备份?针对这个问题,今天小编总结这篇有关数据库备份的文章,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。1、全库备份脚本如下:#!/bin/bash ######...
    99+
    2022-10-18
  • 怎么远程把mysql通过mysqldump备份数据库到本地
    这篇文章主要介绍“怎么远程把mysql通过mysqldump备份数据库到本地”,在日常操作中,相信很多人在怎么远程把mysql通过mysqldump备份数据库到本地问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2022-10-18
  • MySQL数据库完全备份与增量备份详解
    目录定义完全备份与恢复演示定义 完全备份就是将数据库中的数据及所有对象全部备份。 由于 mysql 服务器中的数据文件是基于磁盘的文本文件,所以完全备份就是复制数据库文件,是最简单也是最快速的方式。 但 MySQL 服务...
    99+
    2022-08-10
    MySQL数据库完全备份 MySQL数据库增量备份
  • mysql数据库binlog日志的异地备份
        MySQL数据库的二进制日志binlog记录了对数据库的全量DDL和DML操作,对数据库的point to point灾难恢复起着无法替代的关键作用。因此,基...
    99+
    2022-10-18
  • Oracle数据库怎么定时异地备份
    这篇文章主要讲解了“Oracle数据库怎么定时异地备份”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库怎么定时异地备份”吧!1)设置defe...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作