美文网首页
实时备份

实时备份

作者: 余仔丶 | 来源:发表于2019-04-22 22:55 被阅读0次

1.1 企业数据备份方案

在网站集群架构中,数据永远是网站最重要的,一旦数据造成丢失,将会给企 业 造成巨大损失,因此,企业网站和应用需要有完善的数据备份方案确保数据 安全。在企业中,数据备份方案有以下几种:

利用定时方式,实现周期备份重要数据信息。
  需要周期性备份的数据可分为两类:一是程序员发布的程序代码以及运维人员对服务器等的配置变更文件,一般会使用定时任务执行脚本对该文件进行备份,然后配合rsync工具推送到远端服务器备份;二是对于数据库等的数据会用定时执行脚本的备份,然后再配合rsync工具推送到远端服务器备份。
利用实时复制方式,实现实时备份重要数据信息。
  实时复制是企业数据备份最重要的方式,主要用于用户提交的数据的备份,对于用户提交到服务器上的普通文件(压缩包、视频、图片等),可采用inotify/sersync+rsync实时备份方式:对于数据文件还有较复杂的分布式存储工具自身可以实现将数据同时备份成多份,如FastDFS、GlusterFS等:对于提交到数据库中的数据,可使用数据库的主从复制(例如MySQL、Oracle)方式备份。

1.2 实时复制软件介绍

软件服务
依赖程序
部署难点
说明

inotify-tools
rsync守护进程服务
复制脚本编写
监控目录数据变化,实时数据复制

sersync
rsync守护进程服务
配置文件编写
监控目录数据变化,实时数据复制

1.3 inotify+rsync实时复制实践

前提条件:backup服务端rsync守护进程部署好。

1.3.1 部署NFS客户端

1、设置密码认证文件:

[root@nfs01 ~]$ echo 'export RSYNC_PASSWORD=oldboy' >>/etc/bashrc <===采用密码环境变量的方式,配置永久生效

[root@nfs01 ~]$ source /etc/bashrc <===加载配置使其生效

[root@nfs01 ~]echoRSYNC_PASSWORD <===检查密码环境变量,确保生效
oldboy

2、测试推送

[root@nfs01 ~]$ rsync -avz /data rsync_backup@172.16.1.41::backup/
sending incremental file list

sent 164 bytes received 25 bytes 126.00 bytes/sec
total size is 0 speedup is 0.00

1.3.2 查看inotify支持情况

[root@nfs01 ~]$ uname -r <===内核版本需在2.6.13以上

3.10.0-957.5.1.el7.x86_64

[root@nfs01 ~]$ ls -l /proc/sys/fs/inotify/ <===inotify所需的三个配置文件
总用量 0
-rw-r--r-- 1 root root 0 4月 19 09:45 max_queued_events
-rw-r--r-- 1 root root 0 4月 19 09:45 max_user_instances
-rw-r--r-- 1 root root 0 4月 19 09:45 max_user_watches

1.3.3 安装inotify-tools

[root@nfs01 ~]$ yum install epel-release -y <===安装epel源

[root@nfs01 ~]$ yum install inotify-tools -y <===安装inotify-tools包

[root@nfs01 ~]$ rpm -ql inotify-tools|head -2 <===查看包内容

/usr/bin/inotifywait
/usr/bin/inotifywatch
[root@nfs01 ~]$ rpm -qa inotify-tools <===查看版本号
inotify-tools-3.14-8.el7.x86_64

1.3.4 命令参数及事件说明

参数说明:

参数
说明

-m|--monitor
始终保持事件监听状态

-d|--daemon
类似于-m参数,只是将命令运行在后台

-r
递归监控目录数据信息变化

-q|--quite
只打印事件信息

--excludei<pattern>
排除文件或目录时,不区分大小写

--timefmt<fmt>
指定时间输出的格式

--format<fmt
打印使用指定的输出类似格式字符串;即实际监控输出的内容

-e
指定监听指定的事件,如果省略,表示所有事件都进行监听。

事件说明:

事件名称
说明

modify
文件或目录内容被写入

attrib
文件或目录属性改变

close_write
文件或目录关闭,在写入模式打开之后关闭的。

moved_to
文件或目录被移动到监控目录中

moved_from
文件或目录从监控目录中被移动

create
文件或目录创建在监控的目录中

delete
文件或目录在监控的目录中被删除

delete_self
文件或目录被删除

unmount
文件系统包含的文件或目录不能卸载

1.3.5 测试实践

在NFS服务器上开启inotify相应监控功能
[root@nfs01 ~]$ inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /data <===监控/data目录创建事件显示信息

19/04/19 19:26 /data/a.txt <===目录随着下面的操作,文件实时出现
19/04/19 19:26 /data/b.txt
再开启一个NFS服务器连接窗口进行测试验证相应事件

[root@nfs01 ~]$ touch /data/a.txt

[root@nfs01 ~]$ touch /data/b.txt

说明:只监控create创建事件,其他事件并没有进行监控,其他事件产生,监控服务并没有信息输出。

1.3.6 编写脚本

1、创建放置脚本目录和共享目录,并测试推送

[root@nfs01 ~]$ mkdir –p /server/scripts /data

[root@nfs01 ~]$ rsync -az --delete /data/ rsync_backup@172.16.1.41::backup

2、编辑脚本文件,内容如下:

[root@nfs01 /server/scripts]$ cat monitor.sh

!/bin/sh

cmd="/usr/bin/inotifywait"
$cmd -mrq --format '%w%f' -e close_write,delete /data|
while read line
do
cd /data&&
rsync -az --delete ./ rsync_backup@172.16.1.41::backup
done

或者
[root@nfs01 /server/scripts]$ cat monitor.sh

!/bin/sh

cmd="/usr/bin/inotifywait"
$cmd -mrq --format '%w%f' -e close_write,delete /data|
while read line
do

删除事件发生

[ ! -e "$line" ] && cd /data &&
rsync -az --delete ./ rsync_backup@172.16.1.41::backup && continue

处理增改事件

rsync -az --delete $line rsync_backup@172.16.1.41::backup
done

3、后台运行脚本

[root@nfs01 /server/scripts]$ /bin/sh /server/scripts/monitor1.sh &
[2] 9199

1.3.7 sersync实践

1.3.7.1 客户端推送成功

[root@nfs01 ~]$ rsync -az /data rsync_backup@172.16.1.41::backup

1.3.7.2 部署sersync服务(NFS)

[root@nfs01 /server/tools]$ tar xf sersync_oldboy_64bit_20160928.tar.gz <===解压压缩包

[root@nfs01 /server/tools]$ mkdir /application -p <===创建/application目录

[root@nfs01 /server/tools]$ mv application/sersync /application/ <===将sersync里的文件移动到/application/里

[root@nfs01 /server/tools]$ tree /application/ <===查看/application/里的内容
/application/
└── sersync
├── bin
│ └── sersync
├── conf
│ ├── confxml.xml
│ └── confxml.xml.ori
├── logs
│ └── rsync_fail_log.sh
└── readme.txt

4 directories, 5 files

[root@nfs01 /server/tools]$ cd /application/sersync/conf/

[root@nfs01 /application/sersync/conf]$ ls
confxml.xml confxml.xml.ori

1.3.7.3 启动服务

[root@nfs01 /application/sersync/conf]$ ../bin/sersync -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param


参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序


[root@nfs01 /application/sersync/conf]$ /application/sersync/bin/sersync -d <===启动sersync服务

关闭sersync进程的方法:

[root@nfs01 ~]$ pkill sersync
把开启服务放入rc.local里实现开机自启

相关文章

  • day36-2019年4月18日

    数据实时备份 准备环境:nfs01存储服务器 和 backup备份服务器 1、什么是实时备份? 实时备份是利用实时...

  • 实现实时同步备份总结

    实现实时同步备份总结 \ 一. 实时同步备份原理1.inotify实时监控2.rsync实时传输3.sersy...

  • 备份服务之实时同步备份(sersync)

    实时同步备份方法1)利用脚本实现实时同步2)利用软件实现实时同步 实时同步备份原理 存储服务器 --...

  • day36 文件实时同步

    备份服务方案( 利用实时复制方式,实现实时备份数据等重要信息) 2.1、实时复制细节实现说明 2.2、实时复制软件...

  • 实时备份

    1.1 企业数据备份方案 在网站集群架构中,数据永远是网站最重要的,一旦数据造成丢失,将会给企 业 造成巨大损...

  • MySQL按日备份

    经常我们要做一些数据库的备份,主要的备份有三种 第一种:实时备份,表现为主从备份 第二种:非实时的备份,表现为按日...

  • day36 实时备份wenben

    实时同步备份 定义:通过 sersync 服务将 nfs 服务器的存储,实时备份到 backup 服务器中,以此来...

  • 课堂笔记day36——inotify以及sersync实时备份服

    1. inotify+sersync实时复制应用简介 1.1 实时复制介绍 利用实时复制方式,实现实时备份重要数据...

  • MySql备份·实时备份mysqlbinlog

    一、binlog日志介绍 是MySQL服务日志文件的一种,也叫二进制日志 保存除查询之外的sql命令 启用日志能够...

  • UCache灾备云能帮用户解决哪些问题?

    (IDC彭帅) UCache灾备云是一款功能强大的实时备份工具,目前更是推出了2020版实时备份工具免费使用的活动...

网友评论

      本文标题:实时备份

      本文链接:https://www.haomeiwen.com/subject/dlppgqtx.html