Sql server還原失敗(數據庫正在使用,無法獲得對數據庫的獨占訪問權)

一.Sql server還原失敗(數據庫正在使用,無法獲得對數據庫的獨占訪問權)

本次測試使用數據庫實例SqlServer2008r2版

錯誤詳細:

標題: Microsoft SQL Server Management Studio
------------------------------
還原數據庫“Mvc_HNHZ”時失敗。 (Microsoft.SqlServer.Management.RelationalEngineTasks)
------------------------------
其他信息:
System.Data.SqlClient.SqlError: 因為數據庫正在使用,所以無法獲得對數據庫的獨占訪問權。 (Microsoft.SqlServer.SmoExtended)

原因分析:

在SqlServer2008r2中在還原數據庫時,在執行備份操作的時候,如果有正在訪問的用戶或者沒有關閉的數據庫鏈接,則還原失敗。

二、解決方案

解決方案1.

如果你使用管理工具還原數據庫并且在Microsoft SQL Server Management Studio 2016或以上版本的話,可以在還原的時候勾選"關閉到目標數據庫的現有鏈接"

解決方案2:

如果你的SqlServer Management Studio的版本比較低,可以設置數據庫為單用戶模式,執行完還原操作后,恢復為多用戶模式

設置方式:選中要還原的數據庫-->屬性-->選項-->限制訪問
該值從MULTI_USER修改為SINGLE_USER,此時該數據庫就會顯示為單用戶模式
這是GUI的模式,語句的辦法比較簡單

---設置數據庫為單用戶模式
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
---設置數據庫為多用戶模式
USE MASTER
GO
ALTER DATABASE eol_tcgroup SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO

解決方案3:

完全使用T-Sql的方式,執行備份數據庫操作

use master
go
---聲明變量
declare @dbName nvarchar(max)='Mvc_HNHZ';
declare @dbFullName nvarchar(max)='E:\NewWork\Web\backup\test1.bak';
--1.1修改為單用模式
exec(N'ALTER DATABASE '+@dbName+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
--1.2結束鏈接進程
DECLARE @kid varchar(max)
SET @kid=''
SELECT @kid=@kid+'KILL '+CAST(spid as Varchar(10)) FROM master..sysprocesses
WHERE dbid=DB_ID(@dbName) ;
EXEC(@kid) ;
--2.執行還原語句
restore database @dbName from disk=@dbFullName
with replace --覆蓋現有的數據庫
--3.重置數據庫為多用戶模式
exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《甲午》觀后感——GPT-3.5所寫

《甲午》是一部令人深思的紀錄片,通過生動的畫面和真實的故事,向觀眾展示了中國歷史上的一段重要時期。觀看這部紀錄片,我深受觸動,對歷史的認識也得到了深化。 首先,這部紀錄片通過精心搜集的歷史資料和珍貴的影像資料…

低成本搭建NAS,利用HFS進行內網穿透,實現公網訪問

通過HFS低成本搭建NAS,并內網穿透實現公網訪問 文章目錄 通過HFS低成本搭建NAS,并內網穿透實現公網訪問前言1.下載安裝cpolar1.1 設置HFS訪客1.2 虛擬文件系統 2. 使用cpolar建立一條內網穿透數據隧道2.1 保留隧道2.2 隧道名稱2.3 成功使用cpolar創建二級…

JMS 消息隊列接口基本使用指南

概述 介紹 JMS(Java Message Service)即 Java 消息服務應用程序接口,是一個 Java 平臺中關于面向消息中間件(MOM)的 API,用于在兩個應用程序之間,或分布式系統中發送消息,進行異步…

[保研/考研機試] KY103 2的冪次方 上海交通大學復試上機題 C++實現

題目鏈接: KY103 2的冪次方 https://www.nowcoder.com/share/jump/437195121691999575955 描述 Every positive number can be presented by the exponential form.For example, 137 2^7 2^3 2^0。 Lets present a^b by the form a(b).Then 137 is present…

k8s containerd 配置 http訪問harbor image【最新--官方文檔】

不看官方文檔的代價:在搜索了很多中文資料發現配置了都不起作用,浪費了很多時間。 https://github.com/containerd/containerd/blob/main/docs/cri/config.md#registry-configuration The old CRI config pattern for specifying registry.mirrors and…

MySQL8安裝和刪除教程 保姆級(Windows)

下載 官網: mysql官網點擊Downloads->MySQL Community(GPL) Downloads->MySQL Community Server(或者點擊MySQL installer for Windows) Windows下有兩種安裝方式 在線安裝 一般帶有 web字樣 這個需要聯網離線安裝 一般沒有web字樣 安裝 下載好之后,版本號可以不一樣&…

Postman中,既想傳遞文件,還想傳遞多個參數(后端)

需求:既想傳文件又想傳多個參數可以用以下方式實現

Django rest_framework Serializer中的create、Views中的create/perform_create的區別

Django rest_framework Serializer中的create、Views中的create/perform_create的區別 對于后端來說,前后端分離的方式能讓前后端的開發都爽。和所有的爽一樣,每爽一次都要付出一定的代價。而前后端分離的代價,就是后端要面對巨量的模塊化的功…

C語言實現插入排序

什么是插入排序? 插入排序(Insertion Sort) 是一種簡單且逐步構建有序序列的排序算法。它的思想是將數組分為兩部分:已排序的部分和未排序的部分。初始時,已排序部分只包含數組的第一個元素,然后逐步將未排…

Process.Start 報錯

Process.Start 報錯 System.Diagnostics.Process.StartWithShellExecuteEx Process.Start 為什么會引發“系統找不到指定的文件”異常 Process.Start 報錯 找不到路徑 ,System.ComponentModel.Win32Exception:“系統找不到指定的文件。 問題1、 在WinForm中可能是權限問題&…

做了這件事,精準拿捏企業資產管理!

資產管理系統是一種為組織和個人提供管理各類資產的重要工具。無論是金融資產還是實物資產,這些都構成了一個實體或個人財務狀況的重要組成部分。 無論是企業尋求優化其固定資產維護,還是個人希望更好地管理他們的投資組合,資產管理系統在現代…

NZ系列工具NZ02:VBA讀取PDF使用說明

【分享成果,隨喜正能量】時光綻放并蒂蓮,更是一份殷殷囑托,更是一份誠摯祝福,是一份時光饋贈,又是一份時光陪伴。。 我的教程一共九套及VBA漢英手冊一部,分為初級、中級、高級三大部分。是對VBA的系統講解…

“深入解析JVM:探索Java虛擬機的工作原理與優化技巧“

標題:深入解析JVM:探索Java虛擬機的工作原理與優化技巧 摘要:本文將深入探討Java虛擬機(JVM)的工作原理、內部結構以及如何優化Java應用程序的性能。我們將介紹JVM的主要組件,包括類加載器、運行時數據區域…

關于openssl SM2 ECC以及密鑰生成和簽名驗簽

SM2是基于ECC的國密算法,本身也是ECC算法。 openssl生成ECC公私鑰并簽名驗簽 #!/bin/sh openssl ecparam -genkey -name prime256v1 -out private.pem #print pri #openssl ec -in private.pem -text -noout openssl ec -in private.pem -pubout -out public.pem #gen test.…

uniapp+uview封裝小程序請求

提要: uniapp項目引入uview庫 此步驟不再闡述 1.創建環境文件 env.js: let BASE_URL;if (process.env.NODE_ENV development) {// 開發環境BASE_URL 請求地址; } else {// 生產環境BASE_URL 請求地址; }export default BASE_URL; 2.創建請求文件 該…

QLExpress動態腳本引擎解析工具

介紹 QLExpress腳本引擎 1、線程安全,引擎運算過程中的產生的臨時變量都是threadlocal類型。 2、高效執行,比較耗時的腳本編譯過程可以緩存在本地機器,運行時的臨時變量創建采用了緩沖池的技術,和groovy性能相當。 3、弱類型腳本…

廣西Geotrust單位多域名https證書推薦

Geotrust是國際知名CA認證機構,根證書是Digicert,還有RapidSSL、QuickSSL等子品牌,擁有多種類型的多域名https證書,比如OV企業型https證書和EV增強型多域名https證書。那么,哪種多域名https證書更適合企事業單位使用呢…

SpringBoot復習:(43)如何以war包的形式運行SpringBoot程序

一、.pom.xml配置packging為war <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven…

Android 內存泄漏

名詞解釋 內存泄漏:即memory leak。是指內存空間使用完畢后無法被釋放的現象&#xff0c;雖然Java有垃圾回收機制&#xff08;GC&#xff09;&#xff0c;但是對于還保持著引用&#xff0c; 該內存不能再被分配使用&#xff0c;邏輯上卻已經不會再用到的對象&#xff0c;垃圾回…

react如何實現數據渲染

React數據渲染是指將組件中的數據映射到頁面上&#xff0c;以展示出來。在React中&#xff0c;數據渲染通常是通過JSX和組件的state或props完成的。 JSX是一個類似HTML的語法&#xff0c;可以在其中嵌入JavaScript表達式。在JSX中&#xff0c;可以使用{}包裹JavaScript表達式&…