Server 2005 專用管理員連接 (DAC) 使用技巧

 

1 什麼是專用管理員連接?
SQL Server 2005 爲管理員提供了一種特殊的診斷連接,以供在無法與服務器建立標準連接時使用。
2 專用管理員連接有什麼用?
即使在 SQL Server 不響應標準連接請求時,管理員也可以使用這種連接訪問 SQL Server,以便執行診斷查詢並解決問題。
管理員可以通過 DAC 訪問正在運行的 SQL Server Database Engine 實例來排除服務器的故障(即使該服務器已停止響應其他客戶端連接)。
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 連接已經激活,則通過 DAC 進行連接的任何新請求都將被拒絕,並出現錯誤 17810。
(2)DAC 最初嘗試連接到與登錄帳戶關聯的默認數據庫。連接成功後,可以連接到 master 數據庫。如果默認數據庫離線或不可用,則連接返回錯誤 4060。但是,如果使用以下命令覆蓋默認數據庫,改爲連接到 master 數據庫,則連接會成功:
sqlcmd –A –d master
由於只要啓動數據庫引擎 實例,就能保證 master 數據庫處於可用狀態,因此建議使用 DAC 連接到 master 數據庫。
(4)SQL Server 禁止使用 DAC 運行並行查詢或命令。例如,如果使用 DAC 執行以下任何命令,都會生成錯誤 3637。
RESTORE或BACKUP
(5)DAC 只能使用有限的資源。請勿使用 DAC 運行需要消耗大量資源的查詢(例如,對大型表執行復雜的聯接)或可能造成阻塞的查詢。這有助於防止將 DAC 與任何現有的服務器問題混淆。爲避免潛在的阻塞情況,當需要運行可能造成阻塞的查詢時,
請儘可能在基於快照的隔離級別下運行查詢;否則,請將事務隔離級別設置爲 READ UNCOMMITTED 和/或將 LOCK_TIMEOUT 值設置爲較短的值(如 2000 毫秒)。這可以防止 DAC 會話被阻塞。
但是,根據 SQL Server 所處的狀態,DAC 會話可能會在閂鎖上被阻塞。可以使用 CNTRL-C 終止 DAC 會話,但不能保證一定成功。如果失敗,唯一的選擇是重新啓動 SQL Server。
爲保證連接成功並排除 DAC 故障,SQL Server 保留了一定的資源用於處理 DAC 上運行的命令。通常這些資源只夠執行簡單的診斷和故障排除功能,如下所示。
爲了保留資源,DAC 連接在 SQL Server 2005 Express Edition 中不可用。
5 如何啓用遠程DAC連接?
只有 SQL Server sysadmin 角色的成員可以使用 DAC 連接。默認情況下,只能從服務器上運行的客戶端建立連接。除非通過 sp_configure 使用 remote admin connections 選項進行配置,否則不允許使用網絡連接。
DAC 支持加密和 SQL Server 的其他安全性功能。DAC 只允許將用戶上下文切換到其他管理用戶。
默認情況下,DAC 僅偵聽環回 IP 地址 (127.0.0.1) 端口 1434。
remote admin connections 設置的可能值如下:
0 - 指明僅允許本地連接使用 DAC
1 - 指明允許遠程連接使用 DAC
--啓用遠程DAC連接
sp_configure 'remote admin connections', 1;
GO
RECONFIGURE;
GO
注意:配置遠程管理連接之後,會立即啓用 DAC 偵聽器而不必重新啓動 SQL Server,並且客戶端可以立即遠程連接到 DAC。
6 常用腳本
--利用sqlcmd
sqlcmd -Sqiangguo\ods -A
sqlcmd -Sadmin:qiangguo\ods
-- 查詢動態視圖
select * from sys.dm_os_memory_cache_counters
select * from sys.dm_exec_requests
select * from sys.dm_exec_sessions
-- 結束會話
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,狀態 1
TCP 提供程序: 由於目標機器積極拒絕,無法連接。
Sqlcmd: 錯誤: Microsoft SQL Native Client : 建立到服務器的連接時發生錯誤。連接到
 SQL Server 2005 時,默認設置 SQL Server 不允許遠程連接這個事實可能會導致失敗。

Sqlcmd: 錯誤: Microsoft SQL Native Client : 登錄超時已過期。
解決:
問題(2)
標題: 連接到服務器------------------------------
無法連接到 ADMIN:QIANGGUO\ODS。
------------------------------
其他信息:
不支持專用管理員連接。 (ObjectExplorer)
解決:
問題(3)
C:\Documents and Settings\guoqiang>sqlcmd -Sadmin:qiangguo\ods
Sqlcmd: 錯誤: Microsoft SQL Native Client : 由於打開服務器連接過程中的延遲,無法
完成登錄過程。
解決:試着不用DAC 連接,用正常的連接成功後,再用DAC連接。
如:
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods -A
Sqlcmd: 錯誤: Microsoft SQL Native Client : 由於打開服務器連接過程中的延遲,無法
完成登錄過程。
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods
1> quit
C:\Documents and Settings\guoqiang>sqlcmd -S qiangguo\ods -A
1>
問題(4)
標題: 連接到服務器
------------------------------
無法連接到 ADMIN:QIANGGUO\ODS。
------------------------------
其他信息:
已成功與服務器建立連接,但是在登錄過程中發生錯誤。 (provider: TCP 提供程序, error: 0 - 遠程主機強迫關閉了一個現有的連接。)
(Microsoft SQL Server,錯誤: 10054)

解決:已經建立一個DAC連接,請先關閉後,再連接。
文章出處

 

================================================================
 如何使用SQL Server 2005 專用管理員連接(DAC)登錄到服務器
 
一 什麼是DAC   SQL Server 2005 爲管理員提供了一種特殊的診斷連接,以供在無法與服務器建立標準連接時使用。即使在 SQL Server 不響應標準連接請求時,管理員也可以使用這種連接訪問 SQL Server,以便執行診斷查詢並解決問題。命令行界面 (sqlcmd) 通過使用特殊的管理員開關 (-A),提供並支持這種專用管理員連接 (DAC)。二如何使用DAC登錄到服務器1 本機DAC登錄 命令行方式下執行  sqlcmd -A -S sql服務器名2  遠程DAC登錄  1) 打開遠程DAC選項    '程序'->'Sql Server2005'->  '配置工具'-> 'Sql Server  外圍應用配置器'-> '功能的外圍應用配置器'-> 'DataBase Engine'->  'DAC' -> '啓用遠程DAC'  2)  登錄到遠程服務器  sqlcmd -A -S 192.168.0.1 -U sa -P 1234563  登錄後, 可以通過查詢動態管理視圖來診斷問題

 

簡單點說就是:

 開始-->運行-->cmd-->DOS窗口

sqlcmd -S [服務器名] -U sa -P [密碼]

drop trigger tr_LoginCheck on all server;

go

exit

 

 

文章借鑑網址:http://www.cnblogs.com/ffufeng


文章來自學IT網:http://www.xueit.com/html/2009-05/26_2051_00.html

發佈了2 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章