如何在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目录试试

备份服务器,顾名思义,备份用。
单纯的备份服务器,在主服务器宕机、被黑等问题时,无法短时间恢复时采用。(通常超过五分钟无法解决问题时采用。极端的全备系统则可以随时替代。)
根据预案,备份服务器所提供的服务也不同。有的服务器只有最基本的通讯和交互,有的则能完全替代主服务器。
储存问题根据目的,通常主备用服务器可共用堆栈式磁盘阵。但备份服务器即便不使用,也需要按照需要定时更新一些用户信息等。
超大规模的服务器组,比如门户网站等,基本就只能提供最简单的服务,或者挂一个公告。但该类型网站根据实力,通常都有能力架设镜像站点,尽量会提供其最主要的功能。
数据库则是根据类型而定,不同的方案有不同的方式。通常不会涉及到磁盘阵,因而备份服务器多数时间只有主机和主程序,而不涉及实时备份资料。
但诸如通讯节点,则要求完备的功能,并且备份服务器不只有一组。其备份服务器和轮换服务器基本没有区别。比如中国移动的,多组服务器轮换。
比如证交所的服务器,则要求全备、多组,一秒钟都不能耽搁。对她们来说,服务器超负荷什么的宕机,远不如磁盘柜出问题紧张。
同时,这些大规模机组,很难一次全部DOWN掉,也很少出现不可替代故障需要劳烦备用服务器机组的大驾。通常,备用服务器所承载的任务是,部分服务器出现故障,而其余机组不堪负荷时顶上去。
我不太明白标题的意思。恢复主要服务器,必须在主要服务器检测无误下才可使用。否则无异于自打耳光。
但国内的情况,我算是看透了,备份服务器通常都是不在考虑范围内的东东。很多中小型企业,干脆都不如托管的个人网站更能得到有效的维护。
曾经最夸张的一个事情——小型服务器,戴尔的,跟台式机一样大的那种便宜货,忘了是什么型号,非常古老的一台戴尔。内存条报废,人家嫌弃一根DDR II 800 512MB/ECC比2G的DDR II 1024都贵,足足拖了三个月,靠另一根双通道下效能不是减半问题的512愣撑了三个月。一点都不觉得有什么问题。
是有备用服务器,猜猜备份服务器在哪里?
找了半天,才得到答案——是当时的经济方案,用X-BOX代替。结果X-BOX倒是没不务正业……

企业备份服务器数据库的数据一般有四种方式:
1
数据库文件直接拷贝,如果不是频繁的读写长期占用,可以直接拷贝数据库目录源文件,另行保存一份即可。
2
数据库管理程序备份,比如phpmyadmin,有导出为sql的备份文件格式,或者其他管理工具,都可以连接到数据库然后导出备份。
3
如果在本机 *** 作,还可以使用脚本制定计划任务,定时执行脚本复制备份。
4
使用云备份系统,搭建云数据库云备份,全时间自动备份。

是系统备份?还是数据库备份?如果你买了一个新的服务器,它是不会给你自动备份的,都得人工设定,定时备份,周期备份什么的。要是备份系统,有一个备份就行了,备份数据的话,最好做增量备份,把每天改变的数据都做备份。

数据库备份可以分为4个备份类型。

l全备份:创建备份完成时数据库内存在的数据的副本。

l差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。

l日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。

l文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。

不同的备份类型适用的范围也不同。全备份,可以只用一步 *** 作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。

每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。

经常使用备份方式组合有以下几种:

l全备份差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。

l全备份日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。

l文件组备份日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。

SQL2000数据库的备份概念

SQLSERVER2000有四种类型是:数据库、事务日志、差异、文件和文件组

数据库备份是创建完事数据库的复本。它并非将所有的页都复制到备份集,而只将实际包含数据的页复制到备份集。数据页和事务日志页均复制到备份集。

数据库备份用于重新创建数据库,使其恢复到BACKUP语句完成时的状态。如果数据库只存在数据库备份,那么数据库只能恢复到服务器或数据库发生故障前最后一次数据库备份时的状态。

事务日志备份仅制作日志文件的复本。日志文件备份本身不能用于还原数据库。日志文件用于在数据库还原后将数据库恢复到原始故障点。

例如,某站点在星期天晚上执行数据库备份,而在其它每个晚上执行日志备份。如果数据库的某个数据磁盘在星期二2:30丢失,则该站点可以:

1备份当前事务日志

2还原从星期天晚上开始的数据库备份

3还原从星期一晚上开始的日志备份,以将数据库前滚。

4还原故障之后的日志备份。这将使数据库前滚到故障发生的那一刻。

事务日志恢复需要从数据库备份的那一刻到磁盘丢失那一刻之间所进行的一边串不间断的事务日志备份。

差异备份只追寻数据库中自上一次数据库备份之后修改过的所有页的复本。差异日志主要用于使用频繁的系统,一旦这类系统中的数据库发生故障,必须尽快使其重新联机。差异备份比完事数据库备份小,因此对正在运行的系统影响较小。

例如,某个站点在星期天晚上执行完事数据库备份。在白天每隔4小时制作一个事务日志备份集,并用当天的备份重写头一天的备份。每晚则进行差异备份。如果数据库的某个数据磁盘在星期四上午9:12出现故障,则该站点可以:

1备份当前事务日志。

2还原从星期天晚上开始的数据库备份。

3还原从星期三晚上开始的差异备份,将数据库前滚到这一时刻。

4还原从早上4点到8点的事务日志备份,以将数据库前滚到早上8点。

5还原故障之后的日志备份,这将使数据库前滚到故障发生的那一刻。

SQL2000支持备份或还原数据库中的个别文件或文件组。这是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库中。如果可用的备份时间不足以支持完事数据库备份,则可以在不同的时间备份数据库的子集。

例如,某站点需要花三小时备份数据库,并且每天只能用两个小时执行备份。该站点可在一个晚上备份一半文件或文件级,并在第二个晚上备份另一半。如果包含数据库文件或文件组的磁盘出现故障,那么该站点可以只还原丢失的文件或文件组。

该站点还必须进行事务日志备份,并且在备份文件或文件组之后必须还原所胡事务日志备份。还可以从完事数据库备份集中还原文件和文件组。这将回忆恢复速度,因为在第一步只还原已损坏的文件或文件组,而不是整个数据库。

使用多备份客户端可以对服务器硬盘进行自动备份

首先进入多备份控制面板。首次进入有保护设备选项,选择保护服务器,非首次进入直接点击左下角下载客户端

下载客户端以后打开dbfenexe,然后登陆账户并选择首次备份。

选择以后点击文件左侧的按钮,然后勾选要保护的数据所在的目录,最后创建任务即可对服务器的硬盘进行备份


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存