2013-03-09 44 views
4

我是Azure的新手,我有一個小型雲服務實例,在上一週我的實例更改了2次&我所有的項目數據都丟失了,它會回滾到1個月大。我所有的客戶端數據都丟失了,是否有任何方法可以恢復該數據&爲什麼會出現此問題。Azure實例更改代碼回滾

+0

乳清你說你所有的客戶數據丟失,你是什麼意思?代碼,你在實例上?或上傳文件或本地數據庫等數據? – amhed 2013-03-09 15:59:37

+0

所有從瀏覽器上傳的文件都會丟失,而且我的代碼也會回滾到舊的1個月。 – 2013-03-09 16:04:50

回答

4

無法恢復您的數據,也無法防止這種情況發生。這是設計。

每當您的機器崩潰或系統有更新時,它都會被完全擦除。一個新的系統映像將被複制,機器將重新啓動並且您的應用程序被複制。 Azure雲服務是平臺即服務(PaaS)。

這給你留下了兩種可能的選擇。第一種方法是不以第一種方式在雲服務上存儲持久數據。這對於Azure雲服務來說並不合適。而是將數據存儲在Azure存儲或Azure SQL數據庫(或任何您喜歡的地方)中。

另一種選擇是使用虛擬機而不是雲服務。那臺機器完全掌握在你的手中。您有責任對其進行更新,確保其安全並盡一切努力保持運行。採用這種方法,您還必須關心負載均衡器,關於多個實例等,因此放大會變得更加困難。這是基礎架構即服務(IaaS)。

所以它實際上取決於你想要做什麼。

+0

但我的代碼也回滾到了一個月以前,我如何防止這種情況發生,或者在哪裏上傳代碼,這樣新的服務器將以該代碼的形式啓動,如AWS – 2013-03-09 16:09:15

+0

中的AMI您是如何更新代碼的?您是否連接到您的機器並覆蓋了文件,或者您是否上傳了一個新的天藍色包裝? – sdfgsdfg 2013-03-09 16:10:07

+0

通過使用Visual Studio 2010發佈選項。我們在每次更改後部署(Web部署)我們的代碼。 – 2013-03-09 16:13:06

1

雲實例是無狀態的,這意味着您爲虛擬機存儲在本地存儲上的任何內容都可以在發生節點故障,系統升級甚至新的部署時被刪除一個你上傳的包。

幾件事情可以做:

  1. 如果需要其他文件或配置添加到部署後您的項目,然後利用的OnStart()來執行它。這可以確保每次部署或失敗恢復時都能獲得始終如一的環境。
  2. 爲避免丟失源代碼,我建議您設置源代碼管理並將其與您的雲實例實現集成。您可以使用Git或Team Foundation Service執行此操作(結帳tfspreview.com)
  3. 如果您需要在服務器上存儲文件(如資產或客戶端更新的介質),請考慮使用Azure Blob存儲。如果您選擇這樣做,Blob存儲將在數據中心本地複製並複製到其他數據中心。

希望幫助