佳木斯湛栽影视文化发展公司

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

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

熱門標簽:服務外包 呼叫中心市場需求 Linux服務器 百度競價排名 網(wǎng)站排名優(yōu)化 AI電銷 地方門戶網(wǎng)站 鐵路電話系統(tǒng)
Server 2005 專用管理員連接 (DAC) 使用技巧
1 什么是專用管理員連接?
SQL Server 2005 為管理員提供了一種特殊的診斷連接,以供在無法與服務器建立標準連接時使用。
2 專用管理員連接有什么用?
即使在 SQL Server 不響應標準連接請求時,管理員也可以使用這種連接訪問 SQL Server,以便執(zhí)行診斷查詢并解決問題。
管理員可以通過 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 連接已經(jīng)激活,則通過 DAC 進行連接的任何新請求都將被拒絕,并出現(xiàn)錯誤 17810。
(2)DAC 最初嘗試連接到與登錄帳戶關聯(lián)的默認數(shù)據(jù)庫。連接成功后,可以連接到 master 數(shù)據(jù)庫。如果默認數(shù)據(jù)庫離線或不可用,則連接返回錯誤 4060。但是,如果使用以下命令覆蓋默認數(shù)據(jù)庫,改為連接到 master 數(shù)據(jù)庫,則連接會成功:
sqlcmd –A –d master
由于只要啟動數(shù)據(jù)庫引擎 實例,就能保證 master 數(shù)據(jù)庫處于可用狀態(tài),因此建議使用 DAC 連接到 master 數(shù)據(jù)庫。
(4)SQL Server 禁止使用 DAC 運行并行查詢或命令。例如,如果使用 DAC 執(zhí)行以下任何命令,都會生成錯誤 3637。
RESTORE或BACKUP
(5)DAC 只能使用有限的資源。請勿使用 DAC 運行需要消耗大量資源的查詢(例如,對大型表執(zhí)行復雜的聯(lián)接)或可能造成阻塞的查詢。這有助于防止將 DAC 與任何現(xiàn)有的服務器問題混淆。為避免潛在的阻塞情況,當需要運行可能造成阻塞的查詢時,
請盡可能在基于快照的隔離級別下運行查詢;否則,請將事務隔離級別設置為 READ UNCOMMITTED 和/或?qū)?LOCK_TIMEOUT 值設置為較短的值(如 2000 毫秒)。這可以防止 DAC 會話被阻塞。
但是,根據(jù) SQL Server 所處的狀態(tài),DAC 會話可能會在閂鎖上被阻塞??梢允褂?CNTRL-C 終止 DAC 會話,但不能保證一定成功。如果失敗,唯一的選擇是重新啟動 SQL Server。
為保證連接成功并排除 DAC 故障,SQL Server 保留了一定的資源用于處理 DAC 上運行的命令。通常這些資源只夠執(zhí)行簡單的診斷和故障排除功能,如下所示。
為了保留資源,DAC 連接在 SQL Server 2005 Express Edition 中不可用。
5 如何啟用遠程DAC連接?
只有 SQL Server sysadmin 角色的成員可以使用 DAC 連接。默認情況下,只能從服務器上運行的客戶端建立連接。除非通過 sp_configure 使用 remote admin connections 選項進行配置,否則不允許使用網(wǎng)絡連接。
DAC 支持加密和 SQL Server 的其他安全性功能。DAC 只允許將用戶上下文切換到其他管理用戶。
默認情況下,DAC 僅偵聽環(huán)回 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
-- 查詢動態(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 提供程序: 由于目標機器積極拒絕,無法連接。
Sqlcmd: 錯誤: Microsoft SQL Native Client : 建立到服務器的連接時發(fā)生錯誤。連接到
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。
------------------------------
其他信息:
已成功與服務器建立連接,但是在登錄過程中發(fā)生錯誤。 (provider: TCP 提供程序, error: 0 - 遠程主機強迫關閉了一個現(xiàn)有的連接。)
(Microsoft SQL Server,錯誤: 10054)

解決:已經(jīng)建立一個DAC連接,請先關閉后,再連接。
文章出處:http://www.diybl.com/course/7_databases/sql/sqlServer/200863/120812.html
================================================================ 作者:lansz | 可以轉(zhuǎn)載, 轉(zhuǎn)載時務必以超鏈接形式標明文章原始出處和作者信息及版權聲明
鏈接:http://www.lansz.com/html/2008/05/system_catalog_change_in_sql2005.html 問題:
在使用SQL Server 2000的時候,大家可能已經(jīng)很習慣用下面的語句在修改系統(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中,你還是想通過運行上面的語句來修改系統(tǒng)表,那你就大錯特錯了,雖然在SQL Server 2005中運行上面的語句是不會有任何報錯的,但是但你試圖去修改系統(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只是一個擺設了,根本不能用,而且系統(tǒng)表也不能直接被修改了。但是如果你確實需要修改系統(tǒng)表那怎么辦呢?
還好,Microsoft還是沒有做絕的,雖然allow updates不能用了,但還是可以通過別的途徑修改系統(tǒng)表,那就是:先用單用戶模式啟動SQL Server 2005實例,然后再用DAC(Dedicated Administrator Connection/專用管理員連接)連接到SQL實例,然后不用運行什么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加強了字典管理功能,如果要修改系統(tǒng)表的操作能有存儲過程支持的情況下一定要用存儲過程,不要去直接修改系統(tǒng)表,以維護數(shù)據(jù)字典的一致性。
參考資料:
1、allow updates Option
2、Using a Dedicated Administrator Connection
3、Starting SQL Server in Single-User Mode

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

一 什么是DAC SQL Server 2005 為管理員提供了一種特殊的診斷連接,以供在無法與服務器建立標準連接時使用。即使在 SQL Server 不響應標準連接請求時,管理員也可以使用這種連接訪問 SQL Server,以便執(zhí)行診斷查詢并解決問題。命令行界面 (sqlcmd) 通過使用特殊的管理員開關 (-A),提供并支持這種專用管理員連接 (DAC)。二如何使用DAC登錄到服務器1 本機DAC登錄 命令行方式下執(zhí)行 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 登錄后, 可以通過查詢動態(tài)管理視圖來診斷問題

標簽:仙桃 衡水 湖南 銅川 崇左 蘭州 湘潭 黃山

巨人網(wǎng)絡通訊聲明:本文標題《SQL 2005使用專用管理員連接(DAC)的技巧及修改系統(tǒng)表的方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    舞钢市| 溧水县| 凯里市| 南昌市| 巴中市| 博白县| 赤水市| 赫章县| 筠连县| 衡南县| 上杭县| 芒康县| 彭泽县| 吉木乃县| 剑阁县| 平谷区| 张家港市| 攀枝花市| 车致| 山东| 克山县| 甘南县| 徐汇区| 平乐县| 北流市| 吉木萨尔县| 永济市| 岢岚县| 翼城县| 阿坝| 平乡县| 万全县| 黔江区| 含山县| 同德县| 通许县| 湘西| 调兵山市| 织金县| 祥云县| 奉节县|