iT邦幫忙

0

linux 異機備援

  • 分享至 

  • xImage

請問各位大大..你們都如何做異機備援呢?
同一機房...硬體不同...但都裝 ubuntu 9.10
需同步帳號..apache2設定檔 bind9設定檔 mysql資料 以及相關資料...
mysql 的部份只要一蓋過去...mysql 就掛了...
mysql 該如何做備援呢? ...應該是幾台電腦來做較好..

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
賽門
iT邦超人 1 級 ‧ 2010-02-12 09:32:47
最佳解答

您可以使用兩種方法達到異機備援的目的, 我拿5.4版來說明:

  1. 使用mysqldump
    mysqldump可以把資料庫備份到另一台機器上, 但是, 當上線的DB Server當掉時, 必需要重新安裝Server, 然後由Dump檔案回存資料庫. 您可以參考mySQL提供的備份策略
  2. 使用Replication
    這種方式可以把上線中的資料庫Server直接備援到另一台主機, 當上線的DB Server掛掉時, 就能自動切換過來支援. 由於設置方法較複雜, 就請您研究一卜mySQL文件的做法去測試囉....
    我是兩種方法都會用. 用Replication來做異機線上備援, 再用mysqldump定期備下來, 將備份放到別的地方存好...有備無患
    另外, 不能直接用複製的方式"蓋"過去, 這樣會毁掉資料庫架構, 要用mysqlimportmysql指令來回存資料庫.
suhonet iT邦新手 5 級 ‧ 2010-02-12 11:07:40 檢舉

mysqldump --user=account -p --all-databases > /tmp/mysql.sql
這個指令可以完整備份,account 那邊請輸入 mysql 帳號
搭配scripts 以及 排程 這樣差不多就可以了~

8
ktweng
iT邦新手 2 級 ‧ 2010-02-11 11:54:46

你可以去谷歌一下免費的Linux HA軟件
如果說沒有share storage 那可以用,那就要比較麻煩了
你需要做到Mysql Replication來抄寫DB到另一台主機
至於 apache,bind等設定檔直接copy一份過去就好了,畢竟那個變動不大
一般來說HA 最少需要兩台硬體

6
shunyuan
iT邦研究生 1 級 ‧ 2010-02-11 21:32:21

如果資料量不大,可以用 sqldump 把特定的 tabe 資料備份出來。
dump 出來是 sql 的敘述,可以 import 進 mysql。

不過資料量如果很大就不適合。

doesjudas iT邦新手 2 級 ‧ 2010-02-12 08:16:37 檢舉

利用壓縮方式, 將 mysql 資料夾壓縮, 再放入另一部主機後解壓縮.
我是利用這方法做備份的.

8
sl6xx
iT邦研究生 5 級 ‧ 2010-02-12 00:38:12

SQL這種Database的東西要備援無法用"蓋"過去的。應該使用MySql本身的Replication功能。

8
tsaiyunan
iT邦新手 4 級 ‧ 2010-02-12 10:53:43

搞的太複雜了吧!!
基本上這非常之簡單!!

  1. 兩台要先設定SSH連線不用密碼可直接登入
  2. 一般設定檔案用 rsync 指令寫排程同步即可
    3a. 資料庫也不需要搞的這麼複雜, 只要每天只時間把mysql服務固定停止, 然後用scp -rp的指令複製過去即可
    3b. 不能停mysql服務也沒關係, 每次scp完後把備機的mysql修復一遍即可, 修復指令: mysqlchech -A -r --auto-repair
suhonet iT邦新手 5 級 ‧ 2010-02-12 11:11:32 檢舉

rsync指令也很方便又省事,畢竟資料重要,server環境同步也是很重要的,我公司的架構是我們的跳台都會有備用機隨時待命,以免一台掛掉後,我們就無法使用,而跳台備用機也很常是我們備援資料放置的地方~

shunyuan iT邦研究生 1 級 ‧ 2010-02-12 14:05:11 檢舉

rsync 只適合用在普通檔案,資料庫可能會有問題。

2
ansonchen
iT邦新手 1 級 ‧ 2010-02-12 21:12:55

小弟的方式:

  1. MySQL:同意simon581923大大作法
  2. 系統相關設定檔或資料:搭配排程以Rsync同步只要有異動資料才做更新,用perl寫script很方便。
    效益:1.減低網路流量的負載 2.若資料異動頻繁或檔案過大,只要排程時間每1小時或半小時更新即可。

ps. 當然要用scp也是可以, 只是每次都需複寫一次, 易造成Disk IO寫入頻繁, 何時會掛掉也不知到?

我要發表回答

立即登入回答