主頁 > 知識庫 > SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法

SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法

熱門標(biāo)簽:九鹿林外呼系統(tǒng)怎么收費(fèi) 浙江地圖標(biāo)注 松原導(dǎo)航地圖標(biāo)注 海南自動外呼系統(tǒng)價格 電銷機(jī)器人虛擬號碼 滄州營銷外呼系統(tǒng)軟件 舞鋼市地圖標(biāo)注app 創(chuàng)業(yè)電銷機(jī)器人 沈陽智能外呼系統(tǒng)代理
Server 2005 專用管理員連接 (DAC) 使用技巧
1 什么是專用管理員連接?
SQL Server 2005 為管理員提供了一種特殊的診斷連接,以供在無法與服務(wù)器建立標(biāo)準(zhǔn)連接時使用。
2 專用管理員連接有什么用?
即使在 SQL Server 不響應(yīng)標(biāo)準(zhǔn)連接請求時,管理員也可以使用這種連接訪問 SQL Server,以便執(zhí)行診斷查詢并解決問題。
管理員可以通過 DAC 訪問正在運(yùn)行的 SQL Server Database Engine 實例來排除服務(wù)器的故障(即使該服務(wù)器已停止響應(yīng)其他客戶端連接)。
3 專用管理員連接使用方法
(1)利用sqlcmd
sqlcmd -Sqiangguo\ods -A
sqlcmd -Sadmin:qiangguo\ods
(2)SQL Server Management Studio 查詢編輯器啟動 DAC
admin:實例名>
如:ADMIN:QIANGGUO\ODS
4 專用管理員連接使用限制
(1)為了保證有可用的連接資源,每個 SQL Server 實例只允許使用一個 DAC。如果 DAC 連接已經(jīng)激活,則通過 DAC 進(jìn)行連接的任何新請求都將被拒絕,并出現(xiàn)錯誤 17810。
(2)DAC 最初嘗試連接到與登錄帳戶關(guān)聯(lián)的默認(rèn)數(shù)據(jù)庫。連接成功后,可以連接到 master 數(shù)據(jù)庫。如果默認(rèn)數(shù)據(jù)庫離線或不可用,則連接返回錯誤 4060。但是,如果使用以下命令覆蓋默認(rèn)數(shù)據(jù)庫,改為連接到 master 數(shù)據(jù)庫,則連接會成功:
sqlcmd –A –d master
由于只要啟動數(shù)據(jù)庫引擎 實例,就能保證 master 數(shù)據(jù)庫處于可用狀態(tài),因此建議使用 DAC 連接到 master 數(shù)據(jù)庫。
(4)SQL Server 禁止使用 DAC 運(yùn)行并行查詢或命令。例如,如果使用 DAC 執(zhí)行以下任何命令,都會生成錯誤 3637。
RESTORE或BACKUP
(5)DAC 只能使用有限的資源。請勿使用 DAC 運(yùn)行需要消耗大量資源的查詢(例如,對大型表執(zhí)行復(fù)雜的聯(lián)接)或可能造成阻塞的查詢。這有助于防止將 DAC 與任何現(xiàn)有的服務(wù)器問題混淆。為避免潛在的阻塞情況,當(dāng)需要運(yùn)行可能造成阻塞的查詢時,
請盡可能在基于快照的隔離級別下運(yùn)行查詢;否則,請將事務(wù)隔離級別設(shè)置為 READ UNCOMMITTED 和/或?qū)?LOCK_TIMEOUT 值設(shè)置為較短的值(如 2000 毫秒)。這可以防止 DAC 會話被阻塞。
但是,根據(jù) SQL Server 所處的狀態(tài),DAC 會話可能會在閂鎖上被阻塞??梢允褂?CNTRL-C 終止 DAC 會話,但不能保證一定成功。如果失敗,唯一的選擇是重新啟動 SQL Server。
為保證連接成功并排除 DAC 故障,SQL Server 保留了一定的資源用于處理 DAC 上運(yùn)行的命令。通常這些資源只夠執(zhí)行簡單的診斷和故障排除功能,如下所示。
為了保留資源,DAC 連接在 SQL Server 2005 Express Edition 中不可用。
5 如何啟用遠(yuǎn)程DAC連接?
只有 SQL Server sysadmin 角色的成員可以使用 DAC 連接。默認(rèn)情況下,只能從服務(wù)器上運(yùn)行的客戶端建立連接。除非通過 sp_configure 使用 remote admin connections 選項進(jìn)行配置,否則不允許使用網(wǎng)絡(luò)連接。
DAC 支持加密和 SQL Server 的其他安全性功能。DAC 只允許將用戶上下文切換到其他管理用戶。
默認(rèn)情況下,DAC 僅偵聽環(huán)回 IP 地址 (127.0.0.1) 端口 1434。
remote admin connections 設(shè)置的可能值如下:
0 - 指明僅允許本地連接使用 DAC
1 - 指明允許遠(yuǎn)程連接使用 DAC
--啟用遠(yuǎn)程DAC連接
sp_configure 'remote admin connections', 1;
GO
RECONFIGURE;
GO
注意:配置遠(yuǎn)程管理連接之后,會立即啟用 DAC 偵聽器而不必重新啟動 SQL Server,并且客戶端可以立即遠(yuǎn)程連接到 DAC。
6 常用腳本
--利用sqlcmd
sqlcmd -Sqiangguo\ods -A
sqlcmd -Sadmin:qiangguo\ods
-- 查詢動態(tài)視圖
select * from sys.dm_os_memory_cache_counters
select * from sys.dm_exec_requests
select * from sys.dm_exec_sessions
-- 結(jié)束會話
KILL spid>
select * from sys.dm_exec_sessions where session_id = spid>
select * from sys.dm_os_tasks where session_id = spid>
7 常見錯誤
問題(1)
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods,1434
HResult 0x274D,級別 16,狀態(tài) 1
TCP 提供程序: 由于目標(biāo)機(jī)器積極拒絕,無法連接。
Sqlcmd: 錯誤: Microsoft SQL Native Client : 建立到服務(wù)器的連接時發(fā)生錯誤。連接到
SQL Server 2005 時,默認(rèn)設(shè)置 SQL Server 不允許遠(yuǎn)程連接這個事實可能會導(dǎo)致失敗。
。
Sqlcmd: 錯誤: Microsoft SQL Native Client : 登錄超時已過期。
解決:
問題(2)
標(biāo)題: 連接到服務(wù)器------------------------------
無法連接到 ADMIN:QIANGGUO\ODS。
------------------------------
其他信息:
不支持專用管理員連接。 (ObjectExplorer)
解決:
問題(3)
C:\Documents and Settings\guoqiang>sqlcmd -Sadmin:qiangguo\ods
Sqlcmd: 錯誤: Microsoft SQL Native Client : 由于打開服務(wù)器連接過程中的延遲,無法
完成登錄過程。
解決:試著不用DAC 連接,用正常的連接成功后,再用DAC連接。
如:
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods -A
Sqlcmd: 錯誤: Microsoft SQL Native Client : 由于打開服務(wù)器連接過程中的延遲,無法
完成登錄過程。
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods
1> quit
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods -A
1>
問題(4)
標(biāo)題: 連接到服務(wù)器
------------------------------
無法連接到 ADMIN:QIANGGUO\ODS。
------------------------------
其他信息:
已成功與服務(wù)器建立連接,但是在登錄過程中發(fā)生錯誤。 (provider: TCP 提供程序, error: 0 - 遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個現(xiàn)有的連接。)
(Microsoft SQL Server,錯誤: 10054)

解決:已經(jīng)建立一個DAC連接,請先關(guān)閉后,再連接。
文章出處:http://www.diybl.com/course/7_databases/sql/sqlServer/200863/120812.html
================================================================ 作者:lansz | 可以轉(zhuǎn)載, 轉(zhuǎn)載時務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及版權(quán)聲明
鏈接:http://www.lansz.com/html/2008/05/system_catalog_change_in_sql2005.html 問題:
在使用SQL Server 2000的時候,大家可能已經(jīng)很習(xí)慣用下面的語句在修改系統(tǒng)表了
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE;

-- do some modification to system tables

EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE;但是如果在SQL Server 2005中,你還是想通過運(yùn)行上面的語句來修改系統(tǒng)表,那你就大錯特錯了,雖然在SQL Server 2005中運(yùn)行上面的語句是不會有任何報錯的,但是但你試圖去修改系統(tǒng)表的時候你會得到下面這樣的錯誤信息:
Msg 259, Level 16, State 1, Line 1
Ad hoc updates to system catalogs are not allowed.這時候你只要在SQL Server 2005的BOL中查一下”allow updates”你就會發(fā)現(xiàn)如下的說明:
allow updates Option

Updated: 14 April 2006

This option is still present in the sp_configure stored procedure, although its functionality is unavailable in Microsoft SQL Server 2005 (the setting has no effect). In SQL Server 2005, direct updates to the system tables are not supported.看來在SQL Server 2005中allow updates只是一個擺設(shè)了,根本不能用,而且系統(tǒng)表也不能直接被修改了。但是如果你確實需要修改系統(tǒng)表那怎么辦呢?
還好,Microsoft還是沒有做絕的,雖然allow updates不能用了,但還是可以通過別的途徑修改系統(tǒng)表,那就是:先用單用戶模式啟動SQL Server 2005實例,然后再用DAC(Dedicated Administrator Connection/專用管理員連接)連接到SQL實例,然后不用運(yùn)行什么sp_configure就可以直接修改系統(tǒng)表了。
基本的步驟:
1、啟動到單用戶模式
"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe" -m2、打開SQL Server Management Studio,在Connect to Server對話框中的Server Name處輸入admin:InstanceName,這樣就可以用DAC登陸啟動的SQL Server實例了。
友情提示:
另外,SQL Server 2005加強(qiáng)了字典管理功能,如果要修改系統(tǒng)表的操作能有存儲過程支持的情況下一定要用存儲過程,不要去直接修改系統(tǒng)表,以維護(hù)數(shù)據(jù)字典的一致性。
參考資料:
1、allow updates Option
2、Using a Dedicated Administrator Connection
3、Starting SQL Server in Single-User Mode

================================================================
如何使用SQL Server 2005 專用管理員連接(DAC)登錄到服務(wù)器

一 什么是DAC SQL Server 2005 為管理員提供了一種特殊的診斷連接,以供在無法與服務(wù)器建立標(biāo)準(zhǔn)連接時使用。即使在 SQL Server 不響應(yīng)標(biāo)準(zhǔn)連接請求時,管理員也可以使用這種連接訪問 SQL Server,以便執(zhí)行診斷查詢并解決問題。命令行界面 (sqlcmd) 通過使用特殊的管理員開關(guān) (-A),提供并支持這種專用管理員連接 (DAC)。二如何使用DAC登錄到服務(wù)器1 本機(jī)DAC登錄 命令行方式下執(zhí)行 sqlcmd -A -S sql服務(wù)器名2 遠(yuǎn)程DAC登錄 1) 打開遠(yuǎn)程DAC選項 '程序'->'Sql Server2005'-> '配置工具'-> 'Sql Server 外圍應(yīng)用配置器'-> '功能的外圍應(yīng)用配置器'-> 'DataBase Engine'-> 'DAC' -> '啟用遠(yuǎn)程DAC' 2) 登錄到遠(yuǎn)程服務(wù)器 sqlcmd -A -S 192.168.0.1 -U sa -P 1234563 登錄后, 可以通過查詢動態(tài)管理視圖來診斷問題

標(biāo)簽:臺灣 公主嶺 西藏 寶雞 咸寧 日喀則 商洛

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法》,本文關(guān)鍵詞  SQL,2005,使用,專用,管理員,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章