導航:首頁 > 編程大全 > sql調整資料庫多用戶模式

sql調整資料庫多用戶模式

發布時間:2022-09-28 07:21:12

⑴ 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;

(1)sql調整資料庫多用戶模式擴展閱讀:

機制結構

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),使用其他機制並通常直接與中間層交互,而不是直接與資料庫系統交互。

⑵ 如何使用Transact-SQL將資料庫設置為單用戶模式

即使設置此選項的用戶已注銷,資料庫仍保持單用戶模式。這時,其他用戶(但只能是一個)可以連接到資料庫。
將資料庫設置為單用戶模式

1.

在對象資源管理器中,連接到 SQL Server 資料庫引擎實例,然後展開該實例。
2.

右鍵單擊要更改的資料庫,再單擊「屬性」。
3.

在「資料庫屬性」對話框中,單擊「選項」頁。
4.

在「限制訪問」選項中,選擇「單用戶」。
5.

如果其他用戶連接到資料庫,將出現「打開的連接」消息。若要更改屬性並關閉所有其他連接,請單擊「是」。

還可以使用此過程將資料庫設置為「多用戶」訪問或「限制」訪問。有關「限制訪問」選項的詳細信息,請參閱資料庫屬性(「選項」頁)。

1.

在對象資源管理器中,連接到 SQL Server 資料庫引擎實例,然後展開該實例。
2.

右鍵單擊要更改的資料庫,再單擊「屬性」。
3.

在「資料庫屬性」對話框中,單擊「選項」頁。
4.

在「限制訪問」選項中,選擇「單用戶」。
5.

如果其他用戶連接到資料庫,將出現「打開的連接」消息。若要更改屬性並關閉所有其他連接,請單擊「是」。

還可以使用此過程將資料庫設置為「多用戶」訪問或「限制」訪問。有關「限制訪問」選項的詳細信息,請參閱資料庫屬性(「選項」頁)。
請參閱
其他資源
ALTER DATABASE (Transact-SQL)
http://msdn.microsoft.com/zh-cn/library/ms174269.aspx

⑶ SQL Server資料庫成為緊急模式怎麼恢復

1、使資料庫變為單用戶模式
ALTER DATABASE 資料庫名 SET SINGLE_USER
(當變成單用戶的模式只能在同一個窗口執行語句)
2、修正資料庫日誌重新生成,此命令檢查的分配,結構,邏輯完整性和所有資料庫中的對象不正確。當您指定「REPAIR_ALLOW_DATA_LOSS」作為DBCC CHECKDB命令參數,該程序將檢查和修正報告的不正確。但是,這些修正可能會導致一些數據丟失。
DBCC CheckDB (資料庫名, REPAIR_ALLOW_DATA_LOSS)
3、使資料庫變回為多用戶模式
ALTER DATABASE 資料庫名 SET MULTI_USER

⑷ 什麼是單用戶模式什麼叫多用戶模式

原理是先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;

⑸ 如何用sql重命名資料庫

在修改資料庫名稱之前,如果有用戶連接到資料庫的話會造成資料庫重命名失敗,可以先執行
select
spid
from
master.dbo.sysprocesses
where
dbid=db_id('OldDbName')
結果集中顯示的是當前連接到資料庫OldDbName的連接
比如結果是
79
81
當然,實際值應該不是這兩個
然後執行
kill
79
kill
81
關閉已建立的連接,之後再執行
EXEC
sp_dboption
'OldDbName',
'Single
User',
'TRUE'
EXEC
sp_renamedb
'OldDbName',
'NewDbName'
EXEC
sp_dboption
'NewDbName',
'Single
User',
'FALSE'

⑹ sql2008資料庫單用戶模式怎麼改回來

1、打開SQL Server Management Studio。如下圖所示。

⑺ SQL Server資料庫成為緊急模式怎麼恢復

Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go

update sysdatabases set status = 32768 where name = 'DBname'

⑻ SQL多用戶訪問資料庫怎樣解決沖突

sql多用戶訪問資料庫其實就是事務並發,會引起如下問題:
1、臟讀:一個事務讀取到了另外一個事務沒有提交的數據
事務1:更新一條數據
事務2:讀取事務1更新的記錄
事務1:調用commit進行提交
此時事務2讀取到的數據是保存在資料庫內存中的數據,稱為臟讀。
讀到的數據為臟數據
詳細解釋:
臟讀就是指:當一個事務正在訪問數據,並且對數據進行了修改,而這種修改還沒有提交到資料庫中,這時,
另外一個事務也訪問這個數據,然後使用了這個數據。因為這個數據是還沒有提交的數據,那麼另外一個
事務讀到的這個數據是臟數據,依據臟數據所做的操作可能是不正確的。
2、不可重復讀:在同一事務中,兩次讀取同一數據,得到內容不同
事務1:查詢一條記錄
事務2:更新事務1查詢的記錄
事務2:調用commit進行提交
事務1:再次查詢上次的記錄
此時事務1對同一數據查詢了兩次,可得到的內容不同,稱為不可重復讀。
3、幻讀:同一事務中,用同樣的操作讀取兩次,得到的記錄數不相同
事務1:查詢表中所有記錄
事務2:插入一條記錄
事務2:調用commit進行提交
事務1:再次查詢表中所有記錄
此時事務1兩次查詢到的記錄是不一樣的,稱為幻讀
詳細解釋:
幻讀是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據進行了修改,
這種修改涉及到表中的全部數據行。同時,第二個事務也修改這個表中的數據,這種修改是向表
中插入一行新數據。那麼,以後就會發生操作第一個事務的用戶發現表中還有沒有修改的數據行,
就好象發生了幻覺一樣。
處理以上隔離級別的問題,採用如下方是:
事務隔離五種級別:
TRANSACTION_NONE 不使用事務。
TRANSACTION_READ_UNCOMMITTED 允許臟讀。
TRANSACTION_READ_COMMITTED 防止臟讀,最常用的隔離級別,並且是大多數資料庫的默認隔離級別
TRANSACTION_REPEATABLE_READ 可以防止臟讀和不可重復讀,
TRANSACTION_SERIALIZABLE 可以防止臟讀,不可重復讀取和幻讀,(事務串列化)會降低資料庫的效率
以上的五個事務隔離級別都是在Connection介面中定義的靜態常量,
使用setTransactionIsolation(int level) 方法可以設置事務隔離級別。
如:con.setTransactionIsolation(Connection.REPEATABLE_READ);
注意:事務的隔離級別受到資料庫的限制,不同的資料庫支持的的隔離級別不一定相同
1 臟讀:修改時加排他鎖,直到事務提交後才釋放,讀取時加共享鎖,讀取完釋放事務1讀取數據時加上共享鎖後(這 樣在事務1讀取數據的過程中,其他事務就不會修改該數據),不允許任何事物操作該數據,只能讀取,之後1如果有更新操作,那麼會轉換為排他鎖,其他事務更 無權參與進來讀寫,這樣就防止了臟讀問題。
但是當事務1讀取數據過程中,有可能其他事務也讀取了該數據,讀取完畢後共享鎖釋放,此時事務1修改數據,修改 完畢提交事務,其他事務再次讀取數據時候發現數據不一致,就會出現不可重復讀問題,所以這樣不能夠避免不可重復讀問題。
2 不可重復讀:讀取數據時加共享鎖,寫數據時加排他鎖,都是事務提交才釋放鎖。讀取時候不允許其他事物修改該數據,不管數據在事務過程中讀取多少次,數據都是一致的,避免了不可重復讀問題
3 幻讀問題:採用的是范圍鎖RangeS RangeS_S模式,鎖定檢索范圍為只讀,這樣就避免了幻影讀問題。

⑼ sql server資料庫從單用戶模式改為多用戶模式

今天想在sql
server2005下復制一個資料庫,結果最後一步出錯,復制沒成版功反而導致資料庫打不開了權,
名稱後出現"單個用戶",估計是進行復制的時候自動將其改為了單用戶模式,可通過執行如下語句恢復多用戶模式。
原理是先kill佔用了資料庫的那個進程,然後設置資料庫為多用戶模式。
USE
master;
GO
DECLARE
@SQL
VARCHAR(MAX);
SET
@SQL=''
SELECT
@SQL=@SQL+';
KILL
'+RTRIM(SPID)
FROM
mastersysprocesses
WHERE
dbid=DB_ID('資料庫名');
EXEC(@SQL);
GO
ALTER
DATABASE
資料庫名
SET
MULTI_USER;

閱讀全文

與sql調整資料庫多用戶模式相關的資料

熱點內容
前度2電影 瀏覽:89
看韓國倫理電影最好的app下載 瀏覽:976
天正導出t3後桌面無文件 瀏覽:474
紅羊電影公司的導演 瀏覽:932
臨海如何製作自己的卡盟網站 瀏覽:399
電影由幾個故事組成包括新郎出軌伴郎 瀏覽:393
叮咚金夕電影 瀏覽:400
阿布是什麼電影里的人物 瀏覽:419
少兒編程怎麼做幾加幾等於幾 瀏覽:987
bt1868,com 瀏覽:732
大眾點評網iphone裝不了 瀏覽:931
logo做微信頭像好嗎 瀏覽:938
今晚你會去看電影嗎?英語 瀏覽:356
一個電影裡面有樹人和小孩子 瀏覽:942
有床戲的外國電影 瀏覽:632
免費在線電視劇電影網址 瀏覽:192
韓國艷情電影合集在線觀看 瀏覽:203
看電影時女生手總是環抱著 瀏覽:73
公主和妓女 瀏覽:730
iphone5如何刪除其他 瀏覽:532

友情鏈接