2012-08-13 93 views
1

我使用Amazon卷和Amazon-EBS作爲根卷啓動了Amazon EC2。我也在這個EBS捲上啓動了tomcat7和mysql 5.5。將tomcat和mysql從一個Amazon EBS卷複製到另一個

後來我決定從亞馬遜Linux改爲Ubuntu。爲此,我需要使用新的EBS根卷啓動另一個Amazon EC2實例。現在我想將tomcat7和mysql從舊EBS卷複製到新的。我在mysql中有表和數據,我不想鬆散,並且在tomcat上運行一個應用程序。如何去做呢?

回答

3

一些想法和建議。首先,如果你要對數據庫有任何重大負載,那麼在EBS支持的捲上運行它可能不是一個好主意,因爲EBS支持的存儲相對於機器的本地/臨時性存儲(/ mnt)。現在很明顯,你不希望臨時存儲上的數據庫數據,所以如果你想在EC2上運行MySQL,那麼你就無能爲力了。因此,如果您的基礎設施要求允許,我的建議是爲您的數據庫使用RDS實例。

其次,如果這是一個生產應用程序,那麼在進行此轉換時無疑會有一些停機時間。問題是你是否需要絕對減少停機時間。如果是這樣,那麼你需要知道你的數據庫的大小。轉儲/加載需要很長時間嗎?如果沒有,你可能只需啓動並運行你的新實例,然後在舊版數據庫上進行測試,然後在轉換時轉儲並加載當前數據庫。

如果它是一個大型數據庫,那麼也許你可以打開MySQL二進制日誌記錄。然後在已知的二進制日誌位置轉儲數據庫。然後在你的新實例上安裝這個轉儲。然後,當準備切換時,您可以在新實例上重播二進制日誌以使其處於當前狀態。同樣,您可以將新實例上的數據庫設置爲副本,直到轉換,此時您將其作爲主節點。

如果您不想混淆二進制日誌記錄,您甚至可以考慮只使用rsync同步物理數據庫文件,但如果您不熟悉處理實際的物理數據庫文件,這可能是一個有問題的方法。

就您的應用程序而言,假設它只是一組文件,遷移應該更簡單。我不會複製Tomcat7安裝本身,而只是在Ubuntu上安裝Tomcat,然後調整配置以匹配當前。

至於割接本身去,這應該是非常簡單,將在這取決於您使用的是彈性IP爲您的服務器或是否是負載平衡器後面的方式上有所不同,

+0

+1,謝謝。尚未投入生產。 RDS比EBS和EC2上安裝的MySQL更快。 – 2012-08-13 20:49:42

+0

@codingcrow當然,這取決於EC2實例與RDS實例的大小等,但通常在Amazon Web服務世界中,最好使用RDS,除非您確實需要實現一些特定的MySQL配置(主 - 主複製,數據庫集羣等)。您還可以使用多區域RDS安裝來更好地防止AWS停機和硬件故障(它們發生)。它還會使數據庫大小發生變化(例如,隨着應用程序的增長,您需要更大的數據庫),創建只讀副本,數據庫快照等等非常簡單。 – 2012-08-13 20:55:44

相關問題