[跟我学中小企业架构部署]之八:备份服务器部署

BAK 服务器部署

所需软件:
Portmap
Nfs
Rsync

  1. mkdir -p /backup /www                     #创建网站图片、附件存储目录 
  2. mkdir -p /backup/data /backup/www    

#创建网站备份目录、数据库备份目
以wiki为例:
wiki 程序下的附件、图片目录有 /data/attachment  /uploads
那我们需在BAK服务器上建立这两个文件目录,用NFS共享,

  1. cd  /www/ 
  2. mkdir -p wiki/uploads wiki/data/attachment 
  3. chmod –R 777  www 
  4. rpm -qa  portmap nfs                  #查看是否安装,默认是安装的,直接启动即可 
  5. service portmap start 
  6. chkconfig portmap on 
  7. service nfs start 
  8. chkconfig nfs on 

为LNMP服务器共享目录为可读写:

  1. echo "/www/wiki/uploads/  10.0.10.84(rw,sync,anonuid=1,anongid=1)" >>/etc/exports 
  2. echo "/www/wiki/data/attachment/  10.0.10.84(rw,sync,anonuid=1,anongid=1)"  >>/etc/exports 
  1. service nfs restart                      #重启NFS服务使其生效 

看到上图说明共享成功!!

LNMP上操作

  1. killall nginx                                  #停止WEB服务,防止打包不完整 
  2. cd /www/htdocs/wiki 
  3. tar zcvf data.tar.gz data/ 
  4. tar zcvf uploads.tar.gz uploads/ 
  5. mv data databak 
  6. mv uploads uploadsbak 
  7. service portmap start                        #启动portmap nfs服务并添加到开机自启动 
  8. chkconfig portmap on 
  9. service nfs start 
  10. chkconfig nfs on 
  11. showmount –e 10.0.10.85                   #查看BAK服务器共享的目录 
  12.  
  13. mkdir -p data uploads 
  14. mount -t nfs 10.0.10.85:/www/wiki/data ./data            #挂载共享目录到本地 
  15. mount -t nfs 10.0.10.85:/www/wiki/uploads ./uploads 

上图提示,挂载成功!!
回到BAK服务器上操作

  1. cd /www/wiki/ 
  2. scp 10.0.10.84:/www/htdocs/wiki/data.tar.gz ./ 
  3. scp 10.0.10.84:/www/htdocs/wiki/uploads.tar.gz ./ 
  4. tar zxvf data.tar.gz 
  5. tar zxvf uploads.tar.gz 


#以上操作是把LNMP上打包的目录拷贝回来,解压到相应目录。

LNMP上操作
用 ls 命令查看,发现目录里都有文件

启动nginx,用浏览器访问 http://wiki.cgzg.net

看到图片都正常显示,即NFS 部署网站附件、图片到BAK服务器成功!!
作为发布程序的BAK服务器,还需有直接发送数据到WEB服务器上的功能,这里使用ssh 无密码登录验证技术实现。

首先在要添加信任关系的每台服务器上修改hosts文件
vi /etc/hosts
在下面添加:
把各服务器的IP和主机名一一对应添加,注意区分大小写


LAMP上操作
建立rsa key

  1. ssh-keygen -t dsa         #直接一路回车 
  2. cd /root/.ssh/ 
  3. mv id_dsa.pub authorized.keys    #修改公钥 


BAK上操作
建立rsa key

  1. ssh-keygen -t dsa         #直接一路回车 
  2. cd /root/.ssh/ 
  3. cat id_dsa.pub 


把BAK里id_dsa.pub里的密钥复制 到 LAMP的authorized_keys里 即可。
登陆验证

  1. ssh lamp 


此时,已经无需输入密码了。

注:关于无密码验证可参考本人另一篇文章:http://www.elain.org/?p=275

LNMP上操作
建立rsa key

  1. ssh-keygen -t dsa         #直接一路回车 
  2. cd /root/.ssh/ 
  3. mv id_dsa.pub authorized.keys    #修改公钥 


把BAK里id_dsa.pub里的密钥复制 到 LNMP的authorized_keys里 即可。
在BAK主机上登陆验证
ssh lnmp

其它服务器都依次做即可!
这时发现  bak 既可以登录lamp,又可以登录lnmp
DB 服务器同理操作即可,这里就不一一操作了

MYSQL 数据备份,通常我们在从服务器上备份
在db2上备份3306的数据

  1. mkdir –p /www/data 
  2. mysqldump -uroot -p'elain' -S /data/3306/mysql.sock wiki |gzip >/www/data/www_`/bin/date +%Y%m%d%H%M`.sql.gz 


在db1上备份3307的数据

  1. mkdir –p /www/data 
  2. mysqldump -uroot -p'elain' -S /data/3307/mysql.sock blog |gzip >/www/data/bbs_`/bin/date +%Y%d%m%H%M`.sql.gz 


在各DB上做好定时任务
在db1上

  1. crontab –e 
  2. 00 04 * * * mysqldump -uroot -p'elain' -S /data/3307/mysql.sock blog |gzip >/www/data/blog_`/bin/date +%Y%d%m%H%M`_.sql.gz 


在db2上

  1. 00 04 * * * mysqldump -uroot -p'elain' -S /data/3306/mysql.sock wiki |gzip >/www/data/www_`/bin/date +%Y%m%d%H%M`.sql.gz 


接下来就是做定时任务,把备份好的数据按时传送到bak服务器上

  1. rpm -qa |grep rsync                  #检查系统是否安装(默认一般都已安装) 
  2. rsync -avzrtopg --delete --progress  web01:/www/data/  /backup/data/mysql/bbs 

#对lamp上的MYSQL备份执行增量备份到BAK服务器上

  1. rsync -avzrtopg --delete --progress  web02:/www/data/  /backup/data/mysql/www 


#对lnmp上的MYSQL备份执行增量备份到BAK服务器上

做成定时任务为:
在bak服务器上

  1. crontab –e 
  2. 30 04 * * *  rsync -avzrtopg --delete --progress  web01:/www/data/  /backup/data/mysql/bbs 
  3. 00 05 * * *  rsync -avzrtopg --delete --progress  web02:/www/data/  /backup/data/mysql/www 



到此,所有服务器都已经部署完毕,望大家学业有成!
作者:elain         MSN:[email protected]
个人博客:http://www.elain.org
成功中国网   http://www.cgzg.net/
2010年08月27日于北京

 

转载请注明: 转载自http://www.elain.org

本文链接地址:[跟我学中小企业架构部署]之八:备份服务器部署

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章