如何在Linux服务器中实现数据实时同步及备份

如何在Linux服务器中实现数据实时同步及备份,第1张

科技时代,任何行业都离不开数据的分析以及统筹,如果掌握了最关键的数据及技术,那成功就指日可待,所以数据对于一个企业来说,就是最无形的财富,而一个企业的数据基本都有服务器保存及管理着,如何保证数据安全,实现数据同步及备份?诚恺科技小编就同大家一起来看看在Linux服务器中利用rsync配合inotify实现数据实时同步及备份的方法。
rsync:可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
方案:起初用rsync进行数据备份是利用计划任务,定时执行一下命令实现rsync的同步,但最近开发这边修改比较频繁,看来需要实时同步备份来完善备份机制!所以需要利用inotify触发器来改善!达到一旦指定的位置有了新的变动就将其同步!
环境:
CentOS 64 64位
rsync-309
inotify-tools-314
说明:
101016 (rsync+inotify)----------网站程序(/data0/htdocs/)
101019 (rsync)------------------网站程序备份(/data0/htdocs/)
目的:
实现101016的/data0/htdocs/目录下发生任何变动都将实时同步到101019的/data0/htdocs/上(另,这两台都跑有keepalived+nginx,来实现出现故障自动切换的容灾,详细配置会在后面补上)
一、web服务器101016 (rsync+inotify)
1、准备软件包
2、安装Rsync
1)、1234 tar-zxvf rsync-309targz
2)、cdrsync-309
3)、/configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密码认证文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncdsecrets建立密码认证文件
其中111111可以自己设置密码,rsyncdsecrets名字也可以自己设置;
权限:要将/etc/rsyncd/rsyncdsecrets设置为root拥有, 且权限为600。
# chmod 600 /etc/rsyncd/rsyncdsecrets
3、安装inotify
1)、1234 tar-zxvf inotify-tools-314targz
2)、cdinotify-tools-314
3)、/configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、创建rsync复制脚本
此项功能主要是将ftp端的目录/data0/htdocs/里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给101019的/data0/htdocs里,下面是通过shell脚本实现的。
[root@web ~]# vim /root/shell/rsyncsh
[root@web ~]# chmod u+x /root/shell/rsyncsh
[root@web ~]# setsid /root/shell/rsyncsh &
#后台运行脚本,关闭shell终端继续后台运行
rsyncsh脚本加入开机启动项
# echo "/root/shell/rsyncsh" >> /etc/rclocal
防火墙开启rsync端口:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重启:
# /etc/initd/iptables restart
二、备份服务器101019(rsync)
1、准备工作
创建备份目录:
# mkdir /data0/htdocs
2、安装rsync(备份主机只安装rsync)
1)、1234 tar-zxvf rsync-309targz
2)、cdrsync-309
3)、/configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用户与密码认证文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncdsecrets
[root@backup ~]# less /etc/rsyncd/rsyncdsecrets
root:111111
注意:
请记住,在101016端建立的密码文件,只有密码,没有用户名;而在101019里建立的密码文件,用户名与密码都有。
权限:要将/etc/rsyncd/rsyncdsecrets设置为root拥有, 且权限为600。
#chmod 600 /etc/rsyncd/rsyncdsecrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncdconf
启动rsync服务
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncdconf
# ps -ef |grep rsync
Rsync服务加入开机启动项
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncdconf" >> /etc/rclocal
防火墙开启rsync端口:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重启:
# /etc/initd/iptables restart
完成,其实这个时候数据已经同步了!
测试一下:
由于/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/为例
主机名可以区别是两台机器,里面的内容完全一直,连文件的属性都一样
再对里面修改一下试试,创建一个文件,然后删除user目录试试

win+Oracle的话导出dmp
命令:exp或者exp80
假设导出到D盘
然后在另外一台装有win的服务器:通过盘符映射这个d盘设置为z盘
在用于备份的服务器建立一个bat文件
copy
d:/
z:/
-y
确认覆盖拷贝
在计划任务设置定时每天晚上2点执行这个bat
完成。
win+sqlserver等类似,只是拷贝的文件不同而已。

1、使用第三方同步软件
2、服务器后端挂存储设备,通过异地部署存储设备,两地复制(同步或者异步)
3、通过本地专业的备份软件将数据备份到本地另外设备,将备份设备的数据通过block级别的异地复制也可以达到
成本而言1-3,越来越高

l 当出现同步异常的游戏,可以通过同步日志查看,并可通过重新执行失败任务功能再次同步。%26Oslash; 自动触发游戏同步l 当服务器游戏升级(或者通过手动更新游戏版本号)后,自动触发服务器同步功能。l 相应游戏会自动按照分组方式同步到指定服务器。

SQL Server 复制:事务发布

配置发布服务器,

快照发布:隔一段时间会覆盖订阅服务器的数据库,在订阅服务器上做的修改同样被覆盖;

事务发布:是一种接近实时地从源到目标分发数据的方法;

具有可更新订阅的事务发布:订阅服务器可更新发布服务器的数据;

合并发布:发布服务器和订阅服务器的更新都会同步到对方,注意ID在合并发布上的冲突

1 在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访),打开1433端口,在防火墙中设置入站规则;

2 发布服务器与订阅服务器的SQL Server Agent代理帐号必须设置的一样,否则不能互访;

3 如果你希望在复制的过程中一并复制非聚集索引,可以对发布属性-项目进行如下设置,修改完之后需要重新生成快照;

由于黑匣子不能执行运算任务,黑匣子的主要任务是存储数据,实际实现黑匣子上传数据到云也不是没有可能,由于运营的经济成本太高,无法进行数据传输“黑匣子”又名飞行信息记录系统,飞机上通常放置两个黑匣子,分别为驾驶舱语音记录仪和飞行数据记录仪。 由于民航业对机载设备的重量有严格限制,因此将数据同步到云中的技术难度较大。 另外,实现数据的上传需要非常稳定的网络环境。

这也是非常大的支出。 目前,航空公司无法搭载该配置。 因此,黑匣子无法实时上传到云。 首先,飞机数据原本是实时返回地面的。 没有返回地面时,表示飞机失去了联系。 电力供应可能有问题。 那之后的数据只能用黑匣子表示。 但黑匣子使用的是单独的电池供电系统,确保飞机失去供电后仍能正常记录飞行数据和驾驶舱声音。 加上发射设备,需要消耗大量电力,需要增加电池容量,电池变大在飞机上不安全。

大多数现代“黑匣子”具有定位功能,但受限于能量供应,定位信号的发射距离和时间有限,必须考虑“黑匣子”可能损坏的问题。 飞机正常飞行期间黑匣子里存储的数据是没有用的,所以这些数据只是在飞机失事后才分析出来的。 也就是说,飞机发生事故后,黑匣子的数据只发挥作用。 全球每天飞行约数万架飞机,而每个黑匣子的数据被实时传输和存储会产生大量的数据垃圾,也给真正有用的后期数据分析带来麻烦。

“黑匣子”的正式名称是飞行信息记录系统,包括两个设备。 一个是驾驶舱的录音机,从飞行开始后就不断记录驾驶舱内的各种声音(包括对话、发信和其他各种声音的回响),但只留下了停止录音前30分钟的声音。 其次,目前飞机上有实时信息向地面传输,但与机载设备的区别在于传输可靠性和传输带宽。 也许不太合适,用飞机上的黑匣子记录数据就像笔记本电脑在自己的硬盘上写数据一样,实时向地面传递数据是拿着笔记本一边走一边用3G在网盘上记录数据。

你本地的数据库是在运行的吧,这个就最方便的。\x0d\你直接在本地打开 SQL Server Management Studio (mssql客户端)同时连接本地及远程数据库。\x0d\选择本地要同步的数据库,任务--导出数据。。。然后直接就导入了远程的数据库了。\x0d\当然也可以生成sql脚本,然后再执行都 行。

1安装CentOS70yum install ssh 安装SSH协议yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)service sshd restart 启动服务任务

2配置Master无密码登录所有Salve,在Master机器上生成密码对

3查看/home/hadoop/下是否有"ssh"文件夹,且"ssh"文件下是否有两个刚生产的无密码密钥对。

4接着在Master节点上做如下配置,把id_rsapub追加到授权的key里面去。

5设置SSH配置用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。设置完之后记得重启SSH服务,才能使刚才设置有效。

6退出root登录,使用hadoop普通用户验证成功同步另一台服务器的数据


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13314044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-13
下一篇 2023-07-13

发表评论

登录后才能评论

评论列表(0条)

保存