轉(zhuǎn)帖|使用教程|編輯:鮑佳佳|2021-01-18 14:21:35.070|閱讀 453 次
概述:在本文討論數(shù)據(jù)還原過(guò)程時(shí),介紹三種主要的數(shù)據(jù)庫(kù)恢復(fù)類型:數(shù)據(jù)庫(kù)完全恢復(fù),數(shù)據(jù)庫(kù)文件恢復(fù)建議,數(shù)據(jù)庫(kù)界面恢復(fù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
dbForge Studio for SQL Server為有效的探索、分析SQL Server數(shù)據(jù)庫(kù)中的大型數(shù)據(jù)集提供全面的解決方案,并設(shè)計(jì)各種報(bào)表以幫助作出合理的決策。
點(diǎn)擊下載dbForge Studio for SQL Server最新試用版
數(shù)據(jù)庫(kù)恢復(fù)類型
在本文討論數(shù)據(jù)還原過(guò)程時(shí),讓我介紹三種主要的數(shù)據(jù)庫(kù)恢復(fù)類型:
我建議我們更詳細(xì)地探討每種還原類型。因此,讓我們從基本類型開(kāi)始-一個(gè)簡(jiǎn)單的恢復(fù)模型和一個(gè)完整的恢復(fù)模型。
簡(jiǎn)單恢復(fù)模型
您可以使用以下腳本在簡(jiǎn)單恢復(fù)模型下從完全備份執(zhí)行數(shù)據(jù)庫(kù)恢復(fù):
USE [master] RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_13_20_55.bak' WITH FILE = 1, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NOUNLOAD, REPLACE, STATS = 5; GO
因此,我們通過(guò)覆蓋現(xiàn)有文件和JobEmplDB數(shù)據(jù)庫(kù)并將文件傳輸?shù)紻:\ Program Files \ Microsoft SQL Server \ MSSQL15.MSSQLSERVER \ MSSQLSERVER \ DATA,從JobEmplDB_Full_backup_2020_07_19_14_21_57.bak備份中還原JobEmplDB數(shù)據(jù)庫(kù)。
使用SSMS還原SQL Server數(shù)據(jù)庫(kù)
或者,您可以在SSMS界面中執(zhí)行相同的還原。為此,右鍵單擊數(shù)據(jù)庫(kù),然后選擇“還原數(shù)據(jù)庫(kù)”選項(xiàng):
圖。1.在SSMS中選擇數(shù)據(jù)庫(kù)還原
接下來(lái),在“常規(guī)”選項(xiàng)卡上,選擇備份文件的路徑以及要將其還原到的目標(biāo)位置(還有創(chuàng)建新數(shù)據(jù)庫(kù)的選項(xiàng)):
圖。2. SSMS中的常規(guī)選項(xiàng)卡設(shè)置
請(qǐng)注意,“還原計(jì)劃”部分提供了有關(guān)備份文件的詳細(xì)信息。除其他外,它顯示文件中存在的內(nèi)容和備份類型。
之后,在“文件”選項(xiàng)卡上,指定將還原的數(shù)據(jù)庫(kù)文件重新定位到的位置:
圖。3. SSMS中的“文件”選項(xiàng)卡設(shè)置
在“選項(xiàng)”選項(xiàng)卡上,啟用“覆蓋現(xiàn)有數(shù)據(jù)庫(kù)”選項(xiàng):
圖。4. SSMS中的“選項(xiàng)”選項(xiàng)卡設(shè)置
完全恢復(fù)模式
對(duì)于完整恢復(fù)模型,您將需要執(zhí)行以下步驟。
首先,從完全備份還原數(shù)據(jù)庫(kù),然后將數(shù)據(jù)庫(kù)切換到RESTORE WITH NORECOVERY模式:
圖。5.在完全恢復(fù)模式下從完全備份還原數(shù)據(jù)庫(kù)
簡(jiǎn)單恢復(fù)模型下的數(shù)據(jù)恢復(fù)腳本如下所示:
USE[master] RESTORE DATABASE[JobEmplDB] FROM DISK = N '\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_13_20_55.bak' WITH FILE = 1, MOVE N 'JobEmplDB' TO N 'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N 'JobEmplDB_log' TO N 'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO
其次,還原最后一個(gè)差異備份,并將數(shù)據(jù)庫(kù)切換到RESTORE WITH NORECOVERY模式:
USE [master] RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_13_20_55.bak' WITH FILE = 1, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; RESTORE DATABASE [JobEmplDB] FROM DISK = ‘N\\Shared\Backup\Diff\JobEmplDB_Diff_backup_2020_07_19_13_21_29.bak' WITH FILE = 1, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO
僅當(dāng)差異備份與相應(yīng)的完整備份文件位于同一文件中時(shí),該可視界面才允許還原差異備份:
圖。6. SSMS中的差異備份還原
在我們的例子中,我們得到以下查詢:
USE [master] RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_14_21_57.bak' WITH FILE = 3, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_14_21_57.bak' WITH FILE = 5, NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO
即,JobEmplDB_Full_backup_2020_07_19_14_21_57.bak文件包含有關(guān)3的完全備份RD位置(FILE = 3)和差異備份是對(duì)5個(gè)位置(FILE = 5)。
第三,一個(gè)接一個(gè)地還原完成最后一個(gè)差異備份之后創(chuàng)建的所有事務(wù)日志:
RESTORE LOG [JobEmplDB] FROM DISK = N'\\Shared\Backup\Log\JobEmplDB_Log_backup_2020_07_19_17_04_54.trn' WITH NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO
RESTORE LOG [JobEmplDB] FROM DISK = N'\\Shared\Backup\Log\JobEmplDB_Log_backup_2020_07_19_17_04_56.trn' WITH RECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO
重要的是,僅當(dāng)此備份位于包含完整備份的同一文件中時(shí),圖形界面才允許我們從事務(wù)日志備份中還原數(shù)據(jù)庫(kù):
圖。7.事務(wù)日志備份還原
在我們的例子中,我們得到以下查詢:
USE [master] RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_14_04_25.bak' WITH FILE = 3, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; RESTORE LOG [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_14_04_25.bak' WITH FILE = 4, NOUNLOAD, STATS = 5; GO
最后,我們獲得以下用于完全還原JobEmplDB的最終腳本:
USE [master] --Restoring full backup RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Full\JobEmplDB_Full_backup_2020_07_19_14_04_25.bak' WITH FILE = 1, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO --restoring the last differential backup for the respective full backup RESTORE DATABASE [JobEmplDB] FROM DISK = N'\\Shared\Backup\Diff\JobEmplDB_Diff_backup_2020_07_19_14_04_44.bak' WITH FILE = 1, MOVE N'JobEmplDB' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB.mdf', MOVE N'JobEmplDB_log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\JobEmplDB_log.ldf', NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO -- restoring the sequence of transaction log backups after the last differential backup creation RESTORE LOG [JobEmplDB] FROM DISK = N'\\Shared\Backup\Log\JobEmplDB_Log_backup_2020_07_19_17_04_54.trn' WITH NORECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO RESTORE LOG [JobEmplDB] FROM DISK = N'\\Shared\Backup\Log\JobEmplDB_Log_backup_2020_07_19_17_04_56.trn' WITH RECOVERY, NOUNLOAD, REPLACE, STATS = 5; GO
今天的內(nèi)容就是這些,下篇文章我們將對(duì)如何恢復(fù)數(shù)據(jù)庫(kù)文件和文件組進(jìn)行詳細(xì)講解。
點(diǎn)擊下載dbForge Studio for SQL Server,并通過(guò)30天免費(fèi)試用版自行檢查此功能!現(xiàn)dbForge Studio SQL Sever直降3000,在線訂購(gòu)正版授權(quán)最低只要1710元!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: