2013-03-15 39 views
3

我有在生產中的SQL Server 2008數據庫,我們移動到新的服務器。當前數據庫有一個〜400GB的.MDF文件。新服務器將運行SQL Server 2012,並且我們正在運行鏡像Intel 910 SSD。這些驅動器將向我們展示4個200GB分區。遷移SQL Server數據庫的多個文件

爲了完成這項工作,我們需要使用DBCC SHIRNKFILE with EMPTYFILE將單個.MDF拆分爲4個較小的那個。我們已經完成了這個測試,而且這個過程還需要3.5個小時。現有的數據庫是OLTP和365/24/7,並且我知道這個過程中會發生阻塞,所以我們不能在生產中首先進行。

我的問題,有沒有辦法將數據庫備份和恢復到臨時位置的新服務器,創建新文件,EMPTY temp .MDF進入新的位置,然後應用事務日誌?這樣,我們可以在當前舊生產啓動並運行的同時移動數據,然後執行短暫關機,應用日誌並調出新的數據庫?

還是有什麼其他的選擇從服務器A獲得一個文件和服務器B上以最少的停機時間不同的驅動器4個文件?

+1

最好問這對DBA.Stackexchange.com這些都是專家 – 2013-03-15 00:15:12

+0

謝謝,我加了它在那裏,我不知道有一個SQL特定版本! – Lauren 2013-03-15 00:21:06

回答

1

人覺得你可以做,如果你有磁盤空間,方法是:

  • 還原數據庫在新服務器上
  • 創建一個新的文件組
  • 上創建新的所有索引文件組DROP_EXISTING=ON(並指定新文件組)
  • 刪除舊文件組

這不會FO工作r大型對象數據,您需要手動將其移動到新表格。

語法,這將是這樣的:

CREATE CLUSTERED INDEX [index] 
ON [schema].[table]([columns) 
WITH (DROP_EXISTING = ON, ONLINE = ON) 
ON [filegroup] 

這是可能的,而創建新的索引可以保持在線。這將導致tempdb使用更多的空間。

+0

難道他不能在新的FileGroup上刪除並重新創建聚簇索引嗎?我做那個移動表 – 2013-03-15 00:36:38

+0

這就是當你使用'DROP_EXISTING'時會發生什麼。它會刪除索引,然後在您指定的文件組上重建它。 – JodyT 2013-03-15 00:40:57

+0

空間不是臨時存儲的問題。我將在新服務器上對此進行討論,並查看需要多長時間。我們的索引是在目前,這是另一個任務,我有一個有點瘋狂,讓我有一種感覺,這會慢一些萎縮,但會考慮它。乾杯 – Lauren 2013-03-15 01:01:42