如何還原某一個(gè)目錄下的所有數(shù)據(jù)庫(kù)備份文件(1) |
發(fā)布時(shí)間: 2012/6/16 21:35:38 |
引述
●根據(jù)備份文件找出數(shù)據(jù)庫(kù)名 在還原數(shù)據(jù)庫(kù)的開始,我們先要知道把備份數(shù)據(jù)庫(kù)文件還原到哪一個(gè)數(shù)據(jù)庫(kù)上。在真實(shí)世界中,我們無法保證備份數(shù)據(jù)庫(kù)文件都為”數(shù)據(jù)庫(kù)名+.bak”格式 (如:myDB.bak,其中myDB就是數(shù)據(jù)庫(kù)名)。通常情況,只知道備份文件,需要知道數(shù)據(jù)庫(kù)名,我們可以通過SQL Server提供的T-SQL語(yǔ)句“Restore HeaderOnly”來找出原來的數(shù)據(jù)庫(kù)名,簡(jiǎn)單語(yǔ)法這樣:Restore HeaderOnly From 返回的結(jié)果集中,有一列”DatabaseName”描述備份的數(shù)據(jù)名。通過”DatabaseName”列,就可以找出我們需要的原來數(shù)據(jù)庫(kù)名了。 e.g.
【注:】在結(jié)果集中, SQL Server 2008/R2 比 SQL Server 2005 多一個(gè)列”CompressedBackupSize”。 ●根據(jù)備份文件找出數(shù)據(jù)、日志列表 接下來,我們需要知道備份文件中包含哪些數(shù)據(jù)、日志文件,及要知道原來的文件路徑是什么。要是原來的數(shù)據(jù)庫(kù)文件存儲(chǔ)路徑與新路徑不一致,我們需要在”Restore Database …” 里面使用” Move”選項(xiàng)。這里我們可以通過使用SQL Server 提供的T-SQL語(yǔ)句”Restore FileListOnly”,返回?cái)?shù)據(jù)庫(kù)和日志文件列表組成的結(jié)果集,簡(jiǎn)單語(yǔ)法這樣:Restore FileListOnly From <backup_device> e.g.
【注:】在結(jié)果集中, SQL Server 2008/R2 比 SQL Server 2005 多一個(gè)列”TDEThumbprint”,應(yīng)用于顯示數(shù)據(jù)庫(kù)加密密鑰的指紋。 ●構(gòu)造還原數(shù)據(jù)庫(kù)SQL語(yǔ)句 上面兩點(diǎn)內(nèi)容,我們根據(jù)備份文件,知道了要還原的數(shù)據(jù)庫(kù)名和數(shù)據(jù)庫(kù)文件列表,那么,我們基本可以構(gòu)造出還原數(shù)據(jù)庫(kù)的SQL語(yǔ)句了。 e.g.
本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |