⑴ SQL server 資料庫問題
錯誤提示已經明示您要創建的資料庫「My」已經存在了,您可以換一個資料庫名試一試,比如「My1」之類,直到不報錯就好了。
⑵ sql server 還原資料庫時提示資料庫正在使用,無法進行操作的解決方法
這個問題的原因在於有用戶連接了當前要做還原的資料庫,這里的用戶甚至包括當前要做還原的用戶。解決辦法就是關閉與要還原資料庫的所有連接。
腳本之家小編推薦的一個方法:到服務裡面重啟下sqlserver服務即可。
問題一描述:SQL
Server資料庫備份還原後,在資料庫名稱後會出現「受限制訪問」字樣
問題二描述:在對SQL
Server資料庫進行還原時,提示:System.Data.SqlClient.SqlError:因為資料庫正在使用,所以無法獲得對資料庫的獨占訪問權。(Microsoft.SqlServer.Smo)。出現此問題的原因是在還原資料庫時,有其他用戶正在使用資料庫。還原資料庫要求資料庫工作在單用戶模式。通常就是DBA在操作時,不允許其他用戶連接資料庫。
問題一解決辦法:
右鍵點擊資料庫
->
屬性
->
選項
->
狀態
->
限制訪問
->
選擇Multiple
->
確定。
問題二解決辦法:
方法一(最方便):右鍵點擊資料庫
->
屬性
->
選項
->
狀態
->
限制訪問
->
選擇Single->
確定。然後還原。
方法二(最直接):斷開資料庫連接
方法三(最暴力):注銷/重啟資料庫伺服器
方法四(最麻煩):寫代碼修改資料庫相關屬性,雖然麻煩,有的時候還是要用到,那就用到的時候再研究。
①先切換資料庫到master資料庫。執行語句
select
*
from
master..sysprocesses
where
dbid=db_id(
'資料庫名稱')
②然後逐步運行語句
exec
kill
spid(上一步結果集中的數據),
問題就解決了。哈哈
今天在還原資料庫的時候,提示"因為資料庫正在使用,所以無法獲得對資料庫的獨占訪問權",無論我是重啟資料庫,還是重啟計算機,都不能解決問題,多番嘗試後,終於解決了該問題。現將引發該問題的原因與解決方案寫出來,有不對的地方歡迎大家提出來。
引發原因:是因為我在還原資料庫的時候,還有其他的用戶正在使用資料庫,所以就會出現以上提示。
解決方法:
1,設置資料庫在單用戶模式下工作。
設置方法:在需要還原的資料庫上右擊,在右鍵菜單命令上選擇"屬性"-
>"選項"-
>"狀態"-
>"限制訪問"-
>"Single"。這是SQLSERVER2005的菜單命令,其它版本請自己查找。
2,利用SQL語句,殺死正在使用該資料庫的所有進程,自己以前在做一個SQL
SERVER操作小工具的時候有寫過該功能的SQL,貼出來供大家參考:
復制代碼
代碼如下:
declare
@dbname
varchar(50)
set
@dbname='資料庫名稱'
declare
@sql
varchar(50)
declare
cs_result
cursor
local
for
select
'kill
'+cast(spid
as
varchar(50))
from
sys.sysprocesses
where
db_name(dbid)=@dbname
open
cs_result
fetch
next
from
cs_result
into
@sql
while
@@fetch_status=0
begin
execute(@sql)
fetch
next
from
cs_result
into
@sql
end
close
cs_result
deallocate
cs_result
該SQL語句利用游標循環所有正在使用該資料庫的進程,並通過kill命令殺死進程。
3,利用SQL語句,斷開所有用戶鏈接,並回滾所有事務,具體SQL語句如下:
復制代碼
代碼如下:
ALTER
DATABASE
[資料庫名稱]
SET
OFFLINE
WITH
ROLLBACK
IMMEDIATE
注意:在使用方法2與3時,不要在需要的還原的資料庫下執行,建議在master資料庫下面執行。
⑶ sql server單用戶模式下怎麼修改為多用戶模式
原理是先kill佔用了資料庫的那個進程,然後設置資料庫為多用戶模式。
USE master;
Go
DECLARE @SQL VARCHAR(MAX);
SET @SQL=''
SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID)
FROM master..sysprocesses
WHERE dbid=DB_ID('資料庫名');
EXEC(@SQL);
GO
ALTER DATABASE 資料庫名 SET MULTI_USER;
(3)關閉資料庫單用戶模式擴展閱讀:
機制結構
SQL Server 是一種客戶機/伺服器系統
多年來,SQL Server 一直被認為是一種客戶機/伺服器系統。事實上,Sybase DataServer(以此為基礎開發了原始的 SQL Server)正是第一個作為客戶機/伺服器系統開發的商用關系資料庫系統。那這又說明了什麼呢?這不只意味著 SQL Server 是一個雙層系統。
從傳統上看,雙層系統意味著客戶機應用程序運行在一台機器上,向另一台計算機上的伺服器發送請求。而對於 SQL Server,客戶機/伺服器意味著 SQL Server 的組成部分,即客戶機 API 部分,駐留在處理結構中的遠端,與伺服器組件本身是分開的。
在典型的雙層模型中,客戶機程序部分駐留在台式機上,具有大量客戶機應用程序邏輯和業務邏輯,並且會直接向資料庫系統發出請求。然後,客戶機得到伺服器響應這些請求所返回的數據。
三層系統也採用了同樣的模型。多年以來,SQL Server 一直用在事務處理監視系統中,例如 BEA 的 Tuxedo 以及 Compaq 的 ACMSxp,這些系統早在二、三十年前就採用了典型的三層模型。
三層模型在今天基於 Web 的應用系統中占據了支配地位,這類系統以 Microsoft 的 MTS 以及新的 COM+ 1.0 為代表。從 SQL Server 的角度看,三層解決方案中的客戶機程序是放在中間層的。
中間層直接與資料庫交互。實際的桌面,或瘦客戶機(Thin Client),使用其他機制並通常直接與中間層交互,而不是直接與資料庫系統交互。
⑷ sql2000資料庫經常置疑怎麼處理
修復資料庫前,請做好相關備份。最好不要前後台相連,以免造成不必要的數據丟失。我們以名為「kspos」的資料庫為例。1.首先把服務管理器先停止,把原來置疑的資料庫下的兩個文件拷貝出來,
啟動服務管理器,在企業管理器中刪除該資料庫,然後建立一個同名的數
據庫。停止服務管理器,把置疑的資料庫文件拷貝進去覆蓋。2.運行中輸入「isqlw」,打開查詢分析器。3.輸入語句USE
MASTER
GOSP_CONFIGURE
'ALLOW
UPDATES',1
RECONFIGURE
WITH
OVERRIDE
GOUPDATE
SYSDATABASES
SET
STATUS
=-32768
WHERE
NAME='kspos'
Go使資料庫處於緊急修復模式4.輸入語句:use
kspos
go
dbcc
checkdb
('kspos')
此語句作用在於查詢資料庫的損壞狀況。5.刪除原來的日誌文件,重新建立新的日誌文件。
DBCC
REBUILD_LOG
('kspos','D:\Program
Files\Microsoft
SQL
Server\MSSQL\Data\bw9kyy_01_Log.LDF'
)6.右擊kspos資料庫\屬性\選項\選擇單用戶。7.修復
dbcc
checkdb
('kspos',REPAIR_ALLOW_DATA_LOSS)
REPAIR_ALLOW_DATA_LOSS
執行由
REPAIR_REBUILD
完成的所有修復,包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,以及刪除已損壞的文本對象。這些修復可能會導致一些數據丟失。修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。如果回滾修復,則資料庫仍會含有錯誤,應該從備份進行恢復。如果由於所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決於該修復的修復。修復完成後,備份資料庫。
REPAIR_FAST
進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。這些修復可以很快完成,並且不會有丟失數據的危險。
REPAIR_REBUILD
執行由
REPAIR_FAST
完成的所有修復,包括需要較長時間的修復(如重建索引)。執行這些修復時不會有丟失數據的危險。
8.關閉單用戶模式,在企業管理器中直接右擊kspos\屬性\選項,把前面的對
勾去掉即可。
然後在查詢分析器中執行如下語句:
USE
MASTER
GO
SP_CONFIGURE
'ALLOW
UPDATES',0
RECONFIGURE
WITH
OVERRIDE
GO
到此修復工程完畢。註:一般此修復步驟需要5-8次,只需執行第7步即可。 這個方法絕對好用。
⑸ 登錄sqlserver時出現伺服器處於單用戶模式。目前只有一位管理員能夠連接,怎麼辦啊
樓主,這個問題其實和你安裝報的錯誤是沒任何關系的。首先我說下ReportingServices是做什麼的。這個也通常被大家簡稱為SSRS,是微軟推出的商務智能報表開發軟體,是一種可視化的數據報表開發軟體。如果是你這個地方安裝報錯了,事實上是不關繫到你登錄資料庫引擎的,最多是SSRS用不了。那麼在說說你單用戶模式的問題。資料庫在設定建立之初,管理員可以設定一個模式,即單用戶模式還是多用戶模式。所謂單用戶模式,即資料庫當前只能有一個賬戶登錄,多用戶模式,即不限制用戶個數。此選項設置菜單在資料庫的屬性菜單-選項-狀態-訪問限制裡面。同樣也可以使用SQL語句來更改對應的資料庫訪問用戶模式,SQL為:
USE [master]
GO
ALTER DATABASE [dbname] SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [dbname] SET MULTI_USER
GO
其中MULTI_USER代表的是多用戶模式,如果寫SINGLE USER即代表單用戶模式。若需要從單用戶恢復到多用戶,使用windows驗證登錄後,在屬性裡面修改或者通過SQL修改即可。
⑹ linux單用戶模式怎樣關閉資料庫自啟動
修改配置文件或者chkconfig mysql off
⑺ sql2005設置為單用戶模式,怎麼操作
請參考:http://blog.csdn.net/yubofighting/article/details/6640739
兩種方法:
一、sqlservr.exe -m -c
1、 如圖所示,關閉sqlserver(實例)服務
2、 運行---->cmd--->cd C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe –m
註:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe -m這個路徑按照自己的sql server安裝路徑自行調整
3、 經過上面兩步就設置好的單用戶登陸,你既可以使用企業管理器登陸,又可以通過在運行框中執行sqlcmd.exe運行doc下的命令
二、在sql server2005的配置管理工具中設置
1、如圖打開配置管理工具,在sql server(實例名稱)上右鍵打開屬性,在高級的啟動參數前加上-m; 別忘了『;『因為參數是通過』;『來分隔的
2、設置完成後重啟sql server 服務即可
⑻ sqlserver2000還原資料庫出現單用戶模式問題
資料庫"置疑"了應該是文件損壞了,例如你把資料庫分離後,用記事本打開他會看到很多內亂碼,強行改動里容邊的那些亂碼,保存後附加資料庫,由於里邊格式亂了,資料庫就"置疑"了。你首先要進入「單用戶模式」,讓你可以重新操作資料庫,然後用SELECT 命令可以看出什麼表出錯了(上帝保佑你只是某個表出錯了),如果只是某個表出錯,而又只是數據錯誤,不是結構錯誤,還可以通過運行帶WHERE子句的SQL看看數據是到哪裡出錯,把,錯誤點以後的數據都刪除掉,那至少資料庫還可以用。如果你的數據不是真的都那麼要緊的話,用還原功能是最方便可行的辦法。當然備份檔之後的數據是沒有了。
⑼ sql2008資料庫單用戶模式怎麼改回來
1、打開SQL Server Management Studio。如下圖所示。