zoukankan      html  css  js  c++  java
  • sersync+rsync实时数据同步

    sersync+rsync实时数据同步

    1、相关背景介绍

    前面有关文章配置实现了rsync增量同步以及配置为定时同步,但是在实际生产环境中需要实时的监控数据从而进行同步(不间断同步),可以采取inotify-tools+rsync或者rsync+sersync进行实时同步。

    以上两种方法的区别是:

    rsync+Inotify-tools

    (1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

    (2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。

    rsync+sersync

    (1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

    (2):rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

    小结:当同步的目录数据量不大时,建议使用rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用rsync+sersync。

    2、rsync的配置

    sersync是以rsync为前提的,所以需要先配置rsync,相关说明可以参考前面有关文章

    3、sersync的安装及配置

    3.1 创建规范目录

    mkdir -p /service/tools

    mkdir /application

    3.2 上传

    上传sersync_installdir_64bit到/service/tools

    这里提供一个sersync_installdir_64bit的免安装版本,点击此处获取

    3.3 解压

    unzip sersync_installdir_64bit.zip

    3.4 安装

    免安装版本,移动解压后的文件到安装目录下即可

    mv sersync_installdir_64bit/sersync /application/

    3.5 配置

    cd /application/sersync/    

    chmod +x bin/sersync        #添加执行权限

    ln -s /application/sersync/bin/sersync /usr/bin/        #创建快捷方式便于tab

    修改配置文件

    vim conf/confxml.xml

    修改以下几处内容

    15:<createFile start="true"/>

    24:<localpath watch="/backup">

    25:<remote ip="192.168.1.41" name="backup"/>

    30:<commonParams params="-azP"/>

    31:<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>

    36:<failLog path="/application/sersync/logs/rsync_fail_log.sh"

    保存退出

    3.6 启动

    sersync -h    #查看帮助

    mkdir -p /backup    新建在配置文件中指定的需要实时同步的目录,可以在此目录下创建一些文件进行测试

    对照帮助添加参数启动sersync,如果配置文件有错误则无法启动

    sersync -dro /application/sersync/conf/confxml.xml

    启动成功后会创建监控目录的进程,备份服务器下相关目录也会随时进行同步

    3.7 关于配置文件confxml.xml的说明:

    4、sersync监控多个目录

    修改配置文件实现sersync监控多个目录,并不能简单的通过在confxml.xml这一个配置文件中添加多个目录,正确的做法是写多个配置文件,进而启动多个sersync进程加载相应的配置文件来实现

     

    博主原创文章,转载请务必注明出处

  • 相关阅读:
    关于商业智能(Business Intelligence,简称BI)的认识
    Python连接mysql数据库和关闭数据库的方法
    Python 列表list方法clear( )和直接list [ ]的区别
    截止今天学习大数据技术的笔记
    【已解决】hive导出mysql报错:Container [pid=3962,containerID=container_1632883011739_0002_01_000002] is running 270113280B beyond the 'VIRTUAL' memory limit.
    sqoop安装配置以及简单使用
    大数据相关常用命令行或操作
    阿里巴巴数据库设计规范
    【已解决】linux环境jps命令不显示进程
    【已解决】初始化 Hive 元数据库报错slf4j-log4j12-1.7.25.jar包冲突
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9220886.html
Copyright © 2011-2022 走看看