2017-09-14 43 views
0

我有一個SQL服務器數據庫與5個文件組我想備份2個文件組(只包含文件流),並將其恢復到不同的現有數據庫。恢復文件組到不同的數據庫

+0

你怎麼說「不同的現有數據庫」的意思的例子?每次恢復都會重新創建恢復的文件,是否意味着您的「不同」數據庫具有相同的結構? (我的意思是數據文件的數量及其讀取/只讀狀態? – sepupic

+0

另一個數據庫有不同的文件和文件組的編號和名稱 –

+0

當你將恢復到該數據庫時,它的文件中沒有人可以訪問。重新寫入,並且新恢復的數據庫在恢復之前不知道它具有哪些文件,它只會知道原始數據庫的備份文件 – sepupic

回答

1

你所要求的是Piecemeal Restores (SQL Server)

可以恢復primary +所有readwrite FG +在你任何的readonly文件組是在simple恢復模式,也可以還原primary +任何其他文件組(S),如果你是在full恢復模式。

作爲第一個文件組恢復始終是primary文件組,它會取代你的「不同的現有數據庫」主數據文件和日誌文件(在你的restore命令你應該使用with move指向現有的MDF +日誌文件),每隨後的恢復將會覆蓋其他文件,那麼「現有」數據庫中將沒有任何內容,因此恢復到「不同的現有數據庫」是沒有意義的:您將只能聯機恢復您所恢復的文件組,並且數據庫將會對「現有數據庫」的剩餘文件一無所知。因此,它只是恢復到另一個(不存在的)數據庫。

這裏是simple恢復模式Example: Piecemeal Restore of Only Some Filegroups (Simple Recovery Model)

primary + readonly fg還原順序例子,這裏是full恢復模型Example: Piecemeal Restore of Only Some Filegroups (Full Recovery Model)

+0

我的情況是,我有兩個數據庫db1(filegroups fg1,fg2,fg3)和另一個在db2(文件組fg4,fg5,fg6),我想從db1備份fg2並將其還原到db2 –

+0

我已經回答了你,這是不可能的,每一次零碎的恢復都是從主文件組強制恢復開始的,而db1中的fg1會知道這個db只有fg1和fg2。你的fg4,fg5,fg6不會成爲恢復數據庫的一部分 – sepupic

+0

你可以恢復只有一些fg而不恢復主要同一個數據庫,但它不是你的情況。當你恢復到另一個數據庫時,第一個恢復的fg總是PRIMARY – sepupic