修復(fù)正在使用的SQL Server還原失敗數(shù)據(jù)庫正在使用的6種方法
如果你的SQL Server恢復(fù)失敗,提示無法獲得獨(dú)占訪問,因?yàn)閿?shù)據(jù)庫正在使用中,請(qǐng)嘗試以下6種方法解決問題。
如果你的SQL Server恢復(fù)失敗,提示無法獲得獨(dú)占訪問,因?yàn)閿?shù)據(jù)庫正在使用中,請(qǐng)嘗試以下6種方法解決問題。
當(dāng)你使用T-SQL或SSMS來恢復(fù)SQL數(shù)據(jù)庫時(shí),有時(shí)會(huì)出現(xiàn)“無法獲得獨(dú)占訪問,因?yàn)閿?shù)據(jù)庫正在使用中”的錯(cuò)誤,并且有問題的數(shù)據(jù)庫后面會(huì)出現(xiàn)一個(gè)“正在恢復(fù)... ”的標(biāo)記,這會(huì)阻止您對(duì)其進(jìn)行任何正常操作。
是什么原因?qū)е?a href="sql-database-stuck-in-restoring-1016.html">SQL數(shù)據(jù)庫卡在恢復(fù)中問題?可能是另一個(gè)用戶正在使用數(shù)據(jù)庫,或者數(shù)據(jù)庫文件在重建過程中被同步。無論如何,我在這里列出了幾種行之有效的方法,您可以一一嘗試以修復(fù)SQL數(shù)據(jù)庫還原失敗,因?yàn)閿?shù)據(jù)庫正在使用問題:
“??注意”:在嘗試這些方法之前,請(qǐng)先檢查是否有您在完成查詢?nèi)蝿?wù)后忘記關(guān)閉的SQLQuery窗口。如果有,關(guān)閉它,sql server數(shù)據(jù)庫恢復(fù)問題就可以直接解決了。
如果您更喜歡使用 SSMS GUI,請(qǐng)嘗試在“還原數(shù)據(jù)庫”窗口中再勾選一個(gè)選項(xiàng)以關(guān)閉與目標(biāo)數(shù)據(jù)庫的所有現(xiàn)有連接。
1. 與正常操作類似,啟動(dòng) SSMS 并連接到您的實(shí)例,然后右鍵單擊要還原的數(shù)據(jù)庫并選擇“任務(wù)”>“還原”>“數(shù)據(jù)庫”。
2. 在彈出窗口中,選擇“設(shè)備”并指定要從中恢復(fù)的 bak 文件。
3. 切換到“選項(xiàng)選項(xiàng)”卡,然后勾選“關(guān)閉與目標(biāo)數(shù)據(jù)庫的現(xiàn)有連接”選項(xiàng)。然后單擊“確定”執(zhí)行恢復(fù)。數(shù)據(jù)庫正在使用錯(cuò)誤不會(huì)再彈出。
由于數(shù)據(jù)庫被其他用戶使用可能會(huì)導(dǎo)致SQL Server恢復(fù)失敗,所以可以將SQL Server切換到單用戶模式,然后再設(shè)置為多用戶模式。這也將關(guān)閉所有活動(dòng)連接。
啟動(dòng) SSMS 并連接到實(shí)例,然后您可以使用以下命令創(chuàng)建“新查詢:”
USE master;
GO
ALTER DATABASE databasename
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE databasename
SET MULTI_USER;
GO
還有另一個(gè)簡單的技巧可以修復(fù)正在使用的 SQL數(shù)據(jù)庫恢復(fù)失敗的數(shù)據(jù)庫,即使用 RECOVERY 恢復(fù)有問題的數(shù)據(jù)庫。
單擊“新建查詢”并在窗口中輸入此命令:
RESTORE DATABASE 數(shù)據(jù)庫名稱 WITH RECOVERY
當(dāng)您斷開實(shí)例并重新連接時(shí),您會(huì)發(fā)現(xiàn)數(shù)據(jù)庫后面的“正在恢復(fù)”標(biāo)記已被刪除。
SQL Server 數(shù)據(jù)庫恢復(fù)問題有時(shí)是由于您使用目標(biāo)數(shù)據(jù)庫作為其默認(rèn)數(shù)據(jù)庫登錄,這將始終保持連接會(huì)話活動(dòng)。要修復(fù)它,您需要將默認(rèn)數(shù)據(jù)庫更改回“master”。
1. 在 SSMS 中連接到您的實(shí)例,導(dǎo)航到對(duì)象資源管理器中的“安全”>“登錄并找到您的登錄用戶”。
2. 右擊選擇“屬性”。在彈出的登錄屬性窗口中,您會(huì)在底部找到“默認(rèn)數(shù)據(jù)庫”。展開其下拉菜單并選擇master。
3. 點(diǎn)擊確定“確認(rèn)”。然后您可以再次嘗試恢復(fù)目標(biāo)數(shù)據(jù)庫。
這更像是最后的手段。如果其他方法都失敗了,那么你可以嘗試徹底重啟SQL服務(wù)。
1. 按Win + R并在文本框中輸入“services.msc”。單擊“確定”運(yùn)行它。
2、找到對(duì)應(yīng)實(shí)例的SQL服務(wù),如SQL Server(MSSQLSERVER)。
3. 右鍵單擊??該服務(wù)將其“停止”,然后再次“啟動(dòng)”它。
數(shù)據(jù)庫正在使用錯(cuò)誤在SQL Server恢復(fù)中并不少見。就我而言,在使用T-SQL命令恢復(fù)多個(gè)數(shù)據(jù)庫時(shí)經(jīng)常出現(xiàn),而且每次都一個(gè)一個(gè)修復(fù),真的很麻煩。因此,您可以考慮使用更簡單的替代方法來管理 SQL數(shù)據(jù)庫備份和順利恢復(fù)。在這里我想用傲梅企業(yè)備份網(wǎng)絡(luò)版舉個(gè)例子。
其SQL Server備份功能支持SQL 2005-2019,讓您可以一次選擇多個(gè)數(shù)據(jù)庫進(jìn)行備份或恢復(fù)。作為集中式管理解決方案,它不僅適用于您自己的 PC,還適用于局域網(wǎng)內(nèi)的所有計(jì)算機(jī)。這樣你也可以備份 SQL數(shù)據(jù)庫并恢復(fù)到另一臺(tái)服務(wù)器.
憑借其簡潔的界面,任何操作都可以通過幾個(gè)簡單的步驟完成。不僅是SQL Server,它還支持 Windows 中的其他數(shù)據(jù)類型,例如“文件、分區(qū)、磁盤和操作系統(tǒng)”。
創(chuàng)建SQL Server數(shù)據(jù)庫備份任務(wù):
1.正確安裝軟件和客戶端包,獲得對(duì)您要管理的計(jì)算機(jī)的控制權(quán)。
然后你可以去"任務(wù)"選項(xiàng)卡,選擇"新任務(wù)"并選擇"SQL Server備份"。
2、在步驟1中點(diǎn)擊“+添加計(jì)算機(jī)”,檢測到帶有SQL數(shù)據(jù)庫的客戶端計(jì)算機(jī),選擇需要備份的客戶端。
3. 在第2步中點(diǎn)擊“+添加”檢測所選計(jì)算機(jī)上的所有實(shí)例,并根據(jù)需要選擇數(shù)據(jù)庫。
4、在步驟3中,點(diǎn)擊“添加存儲(chǔ)”,添加一個(gè)share或者NAS設(shè)備作為存儲(chǔ)端。然后“開始備份”。
“設(shè)置:”您可以在此處啟用電子郵件通知。
“計(jì)劃:”創(chuàng)建計(jì)劃以運(yùn)行備份一次/每天/每周/每月。“高級(jí)”選項(xiàng)卡中還包含完整備份和差異備份選項(xiàng)。
從備份中恢復(fù)SQL Server數(shù)據(jù)庫:
1.創(chuàng)建的備份任務(wù)將顯示在“任務(wù)選項(xiàng)”卡中。您可以單擊其右上角的“高級(jí)”以從備份中“還原”。
2. 選擇要從中還原的計(jì)算機(jī)及其數(shù)據(jù)庫。如果您已經(jīng)多次備份它們(完整或差異),您還可以在右上角選擇要恢復(fù)的特定備份。
3. 您可以將這些數(shù)據(jù)庫恢復(fù)到原始位置或新位置。使用第二個(gè)選項(xiàng),您可以直接將數(shù)據(jù)庫還原到另一個(gè) SQL Server。然后,單擊“開始還原”以執(zhí)行它。
“覆蓋現(xiàn)有數(shù)據(jù)庫”:勾選此選項(xiàng)后,備份的數(shù)據(jù)庫將覆蓋同名的現(xiàn)有數(shù)據(jù)庫。否則,在恢復(fù)過程中將跳過具有相同名稱的數(shù)據(jù)庫。
SQL Server 還原失敗,因?yàn)閿?shù)據(jù)庫正在使用中?這里有幾種解決方案可能對(duì)您有用,但它們不能防止類似問題再次發(fā)生。為了節(jié)省您寶貴的時(shí)間和精力,您可以試用傲梅企業(yè)備份網(wǎng)絡(luò)版,它可以直觀地完成數(shù)據(jù)庫的備份和恢復(fù)操作。
作為一個(gè)全面的備份解決方案,它不僅適用于SQL Server數(shù)據(jù)庫,還適用于文件、分區(qū)、操作系統(tǒng)和磁盤等計(jì)算機(jī)數(shù)據(jù)。有了它,你甚至可以執(zhí)行集中系統(tǒng)備份適用于 LAN 內(nèi)的所有計(jì)算機(jī)。