轉:http://www.cnblogs.com/kerrycode/archive/2010/09/18/1830071.html
SQL Server 提供了專用管理員連結(DAC)。DAC允許管理員訪問啟動並執行伺服器以執行診斷函數或Transact—SQL語句,或對伺服器上的問題進行故障排除,即使伺服器以鎖定或在非正常狀態下運行。
DAC預設情況下只有伺服器上可以使用DAC,但是你可以通過 SQL Server 2005 介面區配置器設定允許遠端電腦上的用戶端應用程式使用 DAC,如所示
你也可以通過下面的SP_CONFIGURE命令更改資料庫伺服器配置
--0 - 指明僅允許本地串連使用 DAC
--1 - 指明允許遠端連線使用 DAC
SP_CONFIGURE 'remote admin connections';
SP_CONFIGURE 'remote admin connections', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
DAC 連結到資料庫伺服器可以通過SQL Server Management Studio,也可以通過sqlcmd方式串連伺服器,但是需要注意的是如果像那樣開啟SSMS連結到伺服器,則會報錯(自己曾經在這裡折騰過很久)
DAC只支援查詢時段, 不支援Object Explorer. 如果你想在SSMS中用DAC連, 你應該用個正常的串連, 然後用DAC開啟查詢時段. DAC只支援一個視窗,如果你已經建立一個串連, 則會報錯。MSDN上面提示是並出現錯誤 17810,但是我在SQL Server 05 出現的錯誤64如所示。
命令列介面 (sqlcmd) 通過使用特殊的管理員開關 (-A
),提供並支援這種專用管理員連接 (DAC)。
下面詳細關於DAC內容摘自MSDN
只有 SQL Server sysadmin 角色的成員可以使用 DAC 串連。預設情況下,只能從伺服器上啟動並執行用戶端建立串連。除非通過 sp_configure 使用 remote admin connections 選項進行配置,否則不允許使用網路連接。DAC 支援加密和 SQL Server 的其他安全性功能。DAC 只允許將使用者環境切換到其他系統管理使用者。
由於 DAC 僅用於在極少數情況下診斷伺服器問題,因此對串連有一些限制:
儘管在理論上可以在 DAC 上運行無需並存執行的任何 Transact-SQL 陳述式,Microsoft 仍強烈建議您僅限於使用下列診斷和故障排除命令:
- 查詢動態管理檢視 (DMV) 以進行基本的診斷,例如查詢 sys.dm_tran_locks 以瞭解鎖定狀態,查詢 sys.dm_os_memory_cache_counters 檢查緩衝品質,以及查詢 sys.dm_exec_requests 和 sys.dm_exec_sessions 以瞭解活動的會話和請求。避免使用需要消耗大量資源的 DMV(例如,sys.dm_tran_version_store 需要掃描整個版本儲存區,並且會導致大量的 I/O)或使用了複雜聯結的 DMV。有關效能含義的詳細資料,請參閱特定的 DMV 文檔。
- 查詢目錄檢視。
- 基本 DBCC 命令,例如 DBCC FREEPROCCACHE、DBCC FREESYSTEMCACHE、DBCC DROPCLEANBUFFERS, 和 DBCC SQLPERF。請勿運行需要消耗大量資源的命令,如 DBCC CHECKDB、DBCC DBREINDEX 或 DBCC SHRINKDATABASE。
- Transact-SQL 命令 KILL <spid>。根據 SQL Server 的狀態,KILL 命令並非一定會成功。如果失敗,則唯一的選擇是重新啟動 SQL Server。下面是一般的指導原則。
- 通過查詢
select * from sys.dm_exec_sessions where session_id = <spid>
來驗證 SPID 是否已被終止。如果沒有返回任何行,則表明會話已被終止。
- 如果會話仍在運行,則通過執行查詢
select * from sys.dm_os_tasks where session_id = <spid>
來驗證是否為此會話分配了任務。如果發現還有任務,則很可能當前正在終止會話。請注意,此操作可能會持續很長時間,也可能根本不會成功。
- 如果在與此會話關聯的 sys.dm_os_tasks 中沒有任何任務,但是在執行 KILL 命令後該會話仍然出現在 sys.dm_exec_sessions 中,則表明沒有可用的背景工作執行緒。選擇某個當前正在啟動並執行任務(在 sys.dm_os_tasks 視圖中列出的
sessions_id <> NULL
的任務),並終止與其關聯的會話以釋放背景工作執行緒。請注意,終止單個會話可能不夠,可能需要終止多個會話。
DAC 連接埠
SQL Server 在專用的 TCP/IP 連接埠上偵聽 DAC。錯誤記錄檔包含所偵聽的 DAC 所在的連接埠號碼。預設情況下,DAC 接聽程式只接受本地連接埠上的串連。有關啟用遠端管理員串連的程式碼範例,請參閱 remote admin connections 選項。
配置遠端管理串連之後,會立即啟用 DAC 接聽程式而不必重新啟動 SQL Server