2011-05-26 173 views
4

我有一臺生產服務器,其MYSQL可能無法備份。有問題的實例有一個EBS支持的根設備(/ dev/sda1),它永久存儲文件。我不清楚它是否自然地永久存儲我的MYSQL數據和二進制日誌文件。在Amazon EC2上使用EBS運行MySQL

它應該這樣做,如果它安裝在根?我會這樣想的。

我是否應該附加並掛載另一個卷,然後將MYSQL服務器指向新位置?

我的命令如下所示(加上鎖定MySQL表在創建快照)

sudo mkdir /vol/etc /vol/lib /vol/log 
    sudo mv /etc/mysql  /vol/etc/ 
    sudo mv /var/lib/mysql /vol/lib/ 
    sudo mv /var/log/mysql /vol/log/ 

    sudo mkdir /etc/mysql 
    sudo mkdir /var/lib/mysql 
    sudo mkdir /var/log/mysql 

    echo "/vol/etc/mysql /etc/mysql  none bind" | sudo tee -a /etc/fstab 
    sudo mount /etc/mysql 

    echo "/vol/lib/mysql /var/lib/mysql none bind" | sudo tee -a /etc/fstab 
    sudo mount /var/lib/mysql 

    echo "/vol/log/mysql /var/log/mysql none bind" | sudo tee -a /etc/fstab 
    sudo mount /var/log/mysql 

我沒有系統管理員專家,我不想搞砸了我現有的數據庫。這裏有風險嗎?我是否應該在這裏額外添加一個設備,或者堅持使用內置的根設備?

回答

7

我將/ etc/mysql和/ var/lib/mysql目錄移到了我的EBS中,並在它們以前的位置創建了符號鏈接。

這樣我就不必修改配置文件或者擔心找不到文件。

我也移動/ etc/mysql的原因是,如果我將EBS連接到另一個實例,配置文件和維護腳本不會丟失。

至於該數據的備份,最好創建另一個實例並創建一個主/主配置,這樣您還可以獲得故障轉移的好處。

+0

Hi Kayak。主/主配置究竟意味着什麼?您建議我可以開始瞭解它的任何資源? – Ben 2011-05-26 21:31:07

+1

使用標準的主/從複製,從站可以落後而不是當前的。在師父失敗之前,這通常不是問題。此時,您必須確定從屬服務器在複製過程中的位置,然後才能將其作爲主服務器在線。通過主/主配置,2臺服務器始終保持相同,從而形成完整的備份和故障切換解決方案。這裏有一個設置它的指南,可以讓你更好地理解一個想法。 – 2011-05-31 13:43:48

3

如果你擔心數據持久性:

採取的/ dev/sda1的快照,創建一個完全獨立的實例(t1.micro這個偉大工程),創建一個新的基於卷關閉了快照,則使用/ dev/sda1,然後在新的獨立實例上掛載新卷?如果您的數據存在於新卷中,則它肯定會存儲在/ dev/sda1上的EBS中。儘管如此:許多默認的Linux映像被設置爲在實例終止時自動終止根(/ dev/sda1)卷。意思是:如果你失去了一個實例,如果你沒有在別處備份,你也將失去該捲上的所有數據。保留備份的簡單方法是僅使用EC2工具每天拍攝卷。創建一個腳本可以輕鬆創建快照,並在新快照完成後刪除舊的每日定期快照。如果您正在尋找更小的備份大小或增量備份策略,您可以編寫更高級的腳本,在備用可用區域或區域中啓動t1.micro,通過您喜歡的任何機制僅對MySQL數據執行備份,然後關閉t1.micro實例。

+0

很好的答案。作爲獎勵,您每次都在測試災難恢復過程。 – ceejayoz 2011-05-26 19:34:44

+0

@ceejayoz:謝謝!我已經進行了戰鬥測試,處理困難的方式已經幾次... – BobG 2011-05-26 19:35:42

+0

嗨,鮑勃,很好的答案。我想我的困惑之處在於我嘗試了你在這裏提出的建議(拍攝sda1的快照)並將其安裝在新實例上。我的問題是,我下載到我的原始實例(即MYSQL,APACHE等)上的一些軟件沒有通過捲進行傳輸。我不明白,因爲音量掛載在/ – Ben 2011-05-26 20:40:30

2

如果您停止您的實例,它將類似於常規關機,並且EBS卷應該保留所有數據。 如果您終止實例,我認爲自快照以來的所有數據都將消失。

但通常我沒有看到很多理由來終止它。無論如何,在測試實例上嘗試 應該很簡單。你可以寫一些文件,看看在不同的用例下會發生什麼。

這樣,你也會覺得比只依賴別人的回答更安全。

+1

請注意,您可以打開一個實例的終止保護以避免「whoopsies!」 :-) – ceejayoz 2011-05-26 19:35:04

相關問題