使用命令行備份和恢復SQL數(shù)據(jù)庫教程
在本文中,我將介紹如何使用命令行備份SQL Server數(shù)據(jù)庫,以及如何恢復它。此方法也適用于 Express 版本。
在本文中,我將介紹如何使用命令行備份SQL Server數(shù)據(jù)庫,以及如何恢復它。此方法也適用于 Express 版本。
盡管SQL ServerManagement Studio (SSMS) 具有內置的基本備份功能,但您可能希望通過命令行實現(xiàn)一些更智能的操作,尤其是在缺少維護計劃和SQL Server代理等高級功能的免費 Express 版本中。
在下面的文章中,我將介紹如何使用命令行備份 SQL數(shù)據(jù)庫,以及如何從創(chuàng)建的備份中恢復。
首先,您需要 SQLCMD 實用程序在命令提示符中輸入 Transact-SQL 語句、系統(tǒng)過程和腳本文件。它隨SQL Server2014 及更低版本一起提供。但在更高版本中,您需要單獨下載。
然后您可以打開命令提示符以使用命令行備份 SQL (Express) 數(shù)據(jù)庫。下面是基本的SQL Server備份命令行:
在此命令中,-E 表示使用可信連接。如果您想改用用戶名和密碼,可以將其替換為 -U -P 開關。如果您需要使用其他開關,請單擊這里了解更多 SQLCMD 語法。
這是我使用 SQLCMD 在命名實例中備份數(shù)據(jù)庫“example”的情況:
請注意,我們通常通過其服務器名稱引用默認實例,并通過其服務器名稱\實例名稱引用命名實例。您還可以通過右鍵單擊一個實例并從菜單中選擇“屬性”來獲得準確的名稱。
如果您要備份的不是一個或兩個特定的數(shù)據(jù)庫,而是一個實例中的所有數(shù)據(jù)庫,那么逐個指定它們可能會很痛苦。因此,你可以在你的master數(shù)據(jù)庫中創(chuàng)建一個存儲過程,從而簡化你每次需要使用的備份命令。
首先,請導航到“數(shù)據(jù)庫” > “系統(tǒng)數(shù)據(jù)庫” > 右鍵單擊它并選擇“新建存儲過程”。
微軟提供了一個腳本SQL Express 備份,您可以將所有內容復制到 SQLQuery 窗口中,然后點擊“執(zhí)行”?按鈕創(chuàng)建一個名為 sp_BackupDatabases 的存儲過程。?此存儲過程指定要備份的數(shù)據(jù)庫,您還可以修改排除條件以滿足您的要求。
例如,如果您使用的是非 Express SQL 版本,并且想要備份實例中除系統(tǒng)數(shù)據(jù)庫之外的所有數(shù)據(jù)庫,則可以使用“DELETE @DBs where DBNAME IN ('master','model','msdb' ,'tempdb')”在每個備份類型下。
成功執(zhí)行存儲過程后,使用以下命令行備份這些數(shù)據(jù)庫:
至于backupType,“F”指的是全量備份,“D”指的是差異備份,“L”指的是事務日志備份。
如果要使用 SQLLogin 而不是 Windows 身份驗證,請?zhí)砑?-U -P 開關并刪除 -E。
這里我的例子是:
備份完成后,將為每個數(shù)據(jù)庫生成一個 .bak 文件。
如果您需要經(jīng)常備份相同的數(shù)據(jù)庫,那么每次都在命令提示符中設置備份并不是相對簡單的方法。相反,您可以通過 Windows 任務計劃程序自動執(zhí)行該過程。
首先,打開文本編輯器,在其中輸入你用于數(shù)據(jù)庫備份的命令,并保存為批處理文件(擴展名為.bat)。然后,轉到“控制面板”>“管理工具”>“任務計劃程序”>“創(chuàng)建基本任務”,并按照向導創(chuàng)建計劃任務。
更具體地說,您需要根據(jù)需要選擇一個“觸發(fā)器”,將“操作”選擇為“啟動程序”,然后找到您創(chuàng)建的批處理文件。詳情請參閱自動備份SQL Server數(shù)據(jù)庫.
使用命令行從備份恢復 SQL數(shù)據(jù)庫同樣簡單。命令是:
但在實際使用中,您可能會收到“數(shù)據(jù)庫“databasename”的日志尾部尚未備份。如果日志包含您不想丟失的工作,請使用 BACKUP LOG WITH NORECOVERY 備份日志。使用 RESTORE 語句的 WITH REPLACE 或 WITH STOPAT 子句來覆蓋日志的內容”。
這是因為您嘗試恢復的備份文件比您要恢復的數(shù)據(jù)庫舊。解決方法如提示信息所述。
例如,我想恢復舊的備份并簡單地覆蓋現(xiàn)有數(shù)據(jù)庫,那么我可以使用“WITH REPLACE”開關,它相當于 SSMS 中的“覆蓋現(xiàn)有數(shù)據(jù)庫”選項。命令將是這樣的:
無論您是為了方便,還是試圖在 Express 版本中安排備份,使用命令行備份和恢復SQL數(shù)據(jù)庫都是一個不錯的解決方案。但是,如果您發(fā)現(xiàn)腳本難以掌握,尤其是當您需要備份和恢復多個數(shù)據(jù)庫或實例時,還有一個使用直觀 GUI 的簡單替代方案。
傲梅企業(yè)備份網(wǎng)絡版是一個可靠的備份管理解決方案,適用于局域網(wǎng)內的所有臺式電腦、筆記本電腦、工作站和服務器。包含數(shù)據(jù)庫備份功能,支持SQL Server 2005 - 2020,讓您可以在任何客戶端計算機上集中備份和恢復數(shù)據(jù)庫。
要使用它,您需要在中心機上下載并安裝傲梅企業(yè)備份網(wǎng)絡版(這里提供180天免費試用):
然后在客戶端安裝 傲梅企業(yè)備份網(wǎng)絡版,并請求控制這些客戶端計算機以進行進一步操作:
如何集中備份SQL數(shù)據(jù)庫:
1. 啟動傲梅企業(yè)備份網(wǎng)絡版,導航到“任務”>“新建任務”> SQL Server 備份。
2、 在“第一步”中點擊“+添加計算機”,檢測到所有被控制的有SQL Server數(shù)據(jù)庫的計算機,然后選擇要備份的計算機。
3. 在步驟 2中,單擊?+ 添加以檢測所選客戶端計算機上的所有SQL Server實例。在彈出窗口中,您可以選擇多個數(shù)據(jù)庫甚至多個實例進行備份。
4. 在第 3 步中,點擊“添加存儲”以輸入共享或 NAS 路徑和??相應的身份驗證。然后您可以指定一個文件夾作為備份目標。
5. 如果你想自動備份,請點擊“計劃”來配置計劃設置,“高級”選項卡也支持完整備份和差異備份。設置完成后,單擊“開始備份”以執(zhí)行任務。
如何從備份中恢復SQL Server數(shù)據(jù)庫:
1. 在任務選項卡中找到創(chuàng)建的備份任務,點擊其右上角的“高級”>“恢復”。
2. 選擇計算機,然后選擇要還原的數(shù)據(jù)庫,然后單擊“下一步”選擇目標。
3.除了原來的位置,還可以恢復到新的位置。做出選擇并單擊“開始還原”。
本文提供了使用命令行備份和恢復SQL數(shù)據(jù)庫、自動備份和從備份恢復的快速指南。如果覺得復雜,還有一個替代軟件——傲梅企業(yè)備份網(wǎng)絡版。
它簡化了備份和恢復過程,特別是當你想自動備份SQL Server數(shù)據(jù)庫或將SQL Server數(shù)據(jù)庫還原到另一臺服務器. 不僅是本地服務器,您還可以輕松管理局域網(wǎng)內所有機器的備份任務。