[跟我學中小企業架構部署]之八:備份服務器部署

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

本文鏈接地址:[跟我學中小企業架構部署]之八:備份服務器部署

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