写在前面
今天介绍项目后期的全网数据备份规划与配置过程,整个过程包括备份规划、脚本编写、数据同步等
01
全网数据备份规划
数据备份规划如下
数据库
从库开启binlog,通过全备与增量备份来进行,每天00:00全备一次,每天12:00增量备份一次,初期数据量不大的情况,后期根据数据量进行调整
本地备份目录
代码语言:javascript复制/server/backup/mysql/data
/server/backup/mysql/binlog
FTP数据
实时同步上传数据,防止服务故障,可以快速切换
代码语言:javascript复制/www/ftp 同步至 /www/ftp
其它服务器数据实行实时同步
比如说配置文件备份、代码包备份
本地备份目录
代码语言:javascript复制/server/backup/app
/server/backup/sjapp
/server/backup/admin
/server/backup/shangjia
/server/backup/web
所有数据本地保留一周,远端备份服务器保留30天
02
数据库服务备份配置
代码语言:javascript复制mkdir /server/backup/mysql/data
mkdir /server/backup/mysql/binlog
mkdir /server/scripts/
脚本写好了,就需要写个定时任务定时执行,然后手工检查
代码语言:javascript复制Cat>>/var/spool/cron/root<<EOF
00 00 * * * /bin/sh /server/scripts/fullbak.sh >/dev/null 2>&1
00 12 * * * /bin/sh /server/scripts/binlog_bak.sh >/dev/null 2>&1
EOF
03
静态资源服务器数据同步
同步服务器创建对等目录
mkdir /www/ftp
安装rsync服务
Yum install rsync –y
配置rsync配置文件
代码语言:javascript复制vim /etc/rsyncd.conf
##rsync.conf config start
uid = rsync
gid = rsync
use chroot = no
max connetctions = 200
timeout = 100
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /www/ftp
ignore errors
read only = false
list = false
hosts allow = 10.0.0.8
auth users = rsync_backup
secrets file = /etc/rsync.password
##rsync config end
创建用户
代码语言:javascript复制useradd rsync -s /sbin/nologin -M
配置权限设置密码
代码语言:javascript复制chown -R rsync:rsync /www/ftp
echo "rsync_backup:rsync.conf">/etc/rsync.password
chmod 600 /etc/rsync.password
启动服务
代码语言:javascript复制rsync –daemon
[root@resources ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 26280/rsync
客户端配置密码
代码语言:javascript复制echo "rsync.conf">/etc/rsync.password
chmod 600 /etc/rsync.password
测试手工同步数据是否成功
代码语言:javascript复制[root@resources ~]# rsync -avzP /etc/hosts rsync_backup@10.0.0.11::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
473 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 314 bytes received 27 bytes 682.00 bytes/sec
total size is 473 speedup is 1.39
[root@ftp-bakserver ~]# ll /www/ftp
total 4
-rw-r--r-- 1 rsync rsync 473 May 26 13:24 hosts
客户端安装sersync服务
代码语言:javascript复制tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
[root@resources ~]# cd /usr/local/
[root@resources local]# mv GNU-Linux-x86 sersync
规范文件目录
代码语言:javascript复制[root@resources sersync]# mkdir -p conf bin logs
拷贝配置文件并修改
代码语言:javascript复制[root@resources sersync]# mv confxml.xml conf/
[root@resources sersync]# mv sersync2 bin/sersync
修改配置文件内容(confxml.xml)
1、修改24-28行
代码语言:javascript复制<localpath watch="/opt/tongbu">
<remote ip="10.0.0.11" name="tongbu1"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->注释内容
<!--<remote ip="192.168.8.40" name="tongbu"/>-->注释内容
</localpath>
修改后的内容为
代码语言:javascript复制 <localpath watch="/www/ftp"> 本地数据的路径
<remote ip="10.0.0.11" name="backup"/>远端IP与模块名称
</localpath>
<!#################################### -->注释内容
2、修改31-34行内容——认证
代码语言:javascript复制<commonParams params="-artuz"/>
<auth start="false" users="root" passwordfile="/etc/rsync.pass"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
修改后的内容为
代码语言:javascript复制<commonParams params="-aruz"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="true" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
3、修改36-37行
代码语言:javascript复制<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default
every 60mins execute once-->
修改成我们刚刚创建好的logs目录
代码语言:javascript复制<failLog path="/usr/local/sersync/logs/rsync_fail_log.sh" timeToExecut
e="60"/><!--default every 60mins execute once-->
配置环境变量
代码语言:javascript复制echo 'export PATH=$PATH:/usr/local/sersync/bin'>>/etc/profile
[root@resources sersync]# source /etc/profile
[root@resources sersync]# which sersync
/usr/local/sersync/bin/sersync
启动服务
代码语言:javascript复制[root@resources sersync]# sersync -r -d -o /usr/local/sersync/conf/confxml.xml
测试实时同步
代码语言:javascript复制[root@resources opt]# cd backup/
[root@resources backup]# ll
total 0
[root@ftp-bakserver ~]# cd /www/ftp
[root@ftp-bakserver backup]# ll
total 0
[root@resources ftp]# for i in `seq 10`;do mkdir -p /opt/backup/$i;done
[root@resources ftp]# ll
1 5 10 6 2 7 3 8 4 9
[root@ftp-bakserver ftp]# ls
1 5 10 6 2 7 3 8 4 9
可以同步
04
全网服务器数据同步配置
备份服务器配置
代码语言:javascript复制[user-app]
path = /mnt/backup/user-app
ignore errors
read only = false
list = false
hosts allow = 10.0.0.4
auth users = rsync_backup
secrets file = /etc/rsync.password
[sj-app]
path = /mnt/backup/sj-app
ignore errors
read only = false
list = false
hosts allow = 10.0.0.5
auth users = rsync_backup
secrets file = /etc/rsync.password
[admin]
path = /mnt/backup/admin
ignore errors
read only = false
list = false
hosts allow = 10.0.0.6
auth users = rsync_backup
secrets file = /etc/rsync.password
[shangjia]
path = /mnt/backup/shangjia
ignore errors
read only = false
list = false
hosts allow = 10.0.0.7
auth users = rsync_backup
secrets file = /etc/rsync.password
[web]
path = /mnt/backup/web
ignore errors
read only = false
list = false
hosts allow = 10.0.0.8
auth users = rsync_backup
secrets file = /etc/rsync.password
其它同步客户端安装与配置sersync按上述操作进行
备份脚本基本都是打包备份或直接拷贝文件到本地备份目录
其它项目文章可查看往期回顾
-----至此,整个项目过程都已经介绍完成-----