2013-03-17 123 views
1

我目前正致力於將應用程序移植到Azure之前的SQL數據庫備份策略。目前,我們正在使用SQL Server維護任務,每15分鐘運行一次備份我們的本地數據庫,保留1小時(因此保留4個本地副本)。我們還運行24小時備份,將其推送到Amazon S3。SQL Azure中的備份非常緩慢

現在在Azure中,我到目前爲止已經使用管理下面的T-SQL提起主數據庫的備份(到另一個SQL Server實例):

CREATE DATABASE targetserver.backupName AS COPY OF sourceserver.sourceName 

的源數據庫爲約3GB在規模並且正在擴大每月5-10%左右。我遇到的問題是複製過程非常緩慢!我在30分鐘前發起了一個拷貝,它仍在運行!這意味着採用15分鐘的備份計劃在Azure中似乎站不住腳。

所以我想知道如果我能有資格的幾件事情與其他用戶:

  1. 這是正常的3GB備份接管30分鐘(和計數)複製到另一個服務器實例?

  2. 我應該將備份放在與源相同的服務器上嗎?我非常緊張,因爲Azure門戶中的幾次點擊可能會消除大量關鍵數據!我知道這是一個'黑天鵝'事件,但我不會輕易讓所有的事情都在一個服務器實例中運行。

  3. 是否有更快的方法來備份SQL Azure數據庫?我看了一下Red-Gate,但做每日增量備份的代價似乎很高。

對此的任何想法將不勝感激!

我應該補充一點,我很高興重新考慮我的備份策略,使其更加Azure友好。關鍵是減輕管理員的錯誤,例如由於笨拙的陳述(備份間隔越短越好)而將重要數據的負載減少,並將24小時備份推入不同的存儲方法,例如,一滴容器。

UPDATE ------

我等待1小時,重新開始後取消了初始備份請求。第二次備份在5分鐘內完成。我現在回到Red-Gate看看他們的託管備份解決方案。

+0

是的,根據我對SQL-Azure的經驗,3GB備份大約需要30分鐘才能複製到另一個服務器實例,這是正常的。 – 2013-03-17 18:00:44

+0

數據庫現在一直處於COPYING狀態1小時,這仍然正常嗎? – QFDev 2013-03-17 18:02:38

回答

1

複製數據庫運行需要多長時間不僅取決於數據的大小,還取決於當時正在運行的事務數量,因此此選項在您的情況下可能不成立。既然您有一個備份數據庫,您可以通過備份備份並查看需要多長時間來爲自己測試。

您的其他選擇是導出.bacpac文件並將其存儲在blob存儲中。有這樣的庫,但我沒有參考手。這也將是一個更便宜的選擇。我很確定這是Red Gate在他們的服務範圍內所做的。

+0

感謝knightpfhor。據我瞭解,出口到。bacpac不會產生事務一致的備份。 Redgate做的是運行一個CREATE DATABASE ...作爲...的副本並從那裏導出到.bacpac。他們還允許您直接導出到.bacpac,速度快得多,但沒有任何事務上一致的保證。現在我正在與Redgate解決方案一起處理所有的日程安排,以便我們可以專注於其他領域。我們可以每天創建4次備份,每月40美元+在Azure中擁有另一個數據庫的成本。 – QFDev 2013-03-18 10:37:47

+0

這完全正確。這是試圖保持事務一致,這意味着如果您的數據庫上有事務處理,則複製數據庫運行速度會變慢。 – knightpfhor 2013-03-18 17:35:27

+1

你是對的,我們利用微軟的導入/導出服務。這與您在Azure門戶中看到的功能相同。 微軟最近對SQL Azure的所有備份選項都進行了相當全面的運行http://blogs.msdn.com/b/windows_azure_technical_support_wats_team/archive/2013/03/04/different-ways-to-backup-your- windows-azure-sql-database.aspx 我爲Red Gate工作並開發解決方案:) – 2013-03-20 07:36:42