SQL 2005使用专用管理员连接(DAC)的技巧及修改系统表的方法

2016-02-19 09:49 37 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享SQL 2005使用专用管理员连接(DAC)的技巧及修改系统表的方法教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 编程语言 】

Server 2005 专用管理员连接 (DAC) 使用技巧
1 什么是专用管理员连接?
SQL Server 2005 为管理员提供了一种特殊的诊断连接,以供在无法与服务器建立标准连接时使用。
2 专用管理员连接有什么用?
即使在 SQL Server 不响应标准连接请求时,管理员也可以使用这种连接访问 SQL Server,以便执行诊断查询并解决问题。
管理员可以通过 DAC 访问正在运行的 SQL Server Database Engine 实例来排除服务器的故障(即使该服务器已停止响应其他客户端连接)。
3 专用管理员连接使用方法
(1)利用sqlcmd
sqlcmd -Sqiangguoods -A
sqlcmd -Sadmin:qiangguoods
(2)SQL Server Management Studio 查询编辑器启动 DAC
admin:实例名
如:ADMIN:QIANGGUOODS
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 -Sqiangguoods -A
sqlcmd -Sadmin:qiangguoods
-- 查询动态视图
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 Settingsguoqiangsqlcmd -S qiangguoods,1434
HResult 0x274D,级别 16,状态 1
TCP 提供程序: 由于目标机器积极拒绝,无法连接。
Sqlcmd: 错误: Microsoft SQL Native Client : 建立到服务器的连接时发生错误。连接到
SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。

Sqlcmd: 错误: Microsoft SQL Native Client : 登录超时已过期。
解决:
问题(2)
标题: 连接到服务器------------------------------
无法连接到 ADMIN:QIANGGUOODS。
------------------------------
其他信息:
不支持专用管理员连接。 (ObjectExplorer)
解决:
问题(3)
C:Documents and Settingsguoqiangsqlcmd -Sadmin:qiangguoods
Sqlcmd: 错误: Microsoft SQL Native Client : 由于打开服务器连接过程中的延迟,无法
完成登录过程。
解决:试着不用DAC 连接,用正常的连接成功后,再用DAC连接。
如:
C:Documents and Settingsguoqiangsqlcmd -S qiangguoods -A
Sqlcmd: 错误: Microsoft SQL Native Client : 由于打开服务器连接过程中的延迟,无法
完成登录过程。
C:Documents and Settingsguoqiangsqlcmd -S qiangguoods
1 quit
C:Documents and Settingsguoqiangsqlcmd -S qiangguoods -A
1
问题(4)
标题: 连接到服务器
------------------------------
无法连接到 ADMIN:QIANGGUOODS。
------------------------------
其他信息:
已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)
(Microsoft SQL Server,错误: 10054)

解决:已经建立一个DAC连接,请先关闭后,再连接。
文章出处:http://www.diybl.com/course/7_databases/sql/sqlServer/200863/120812.html
================================================================ 作者:lansz | 可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
链接:http://www.lansz.com/html/2008/05/system_catalog_change_in_sql2005.html 问题:
在使用SQL Server 2000的时候,大家可能已经很习惯用下面的语句在修改系统表了
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中,你还是想通过运行上面的语句来修改系统表,那你就大错特错了,虽然在SQL Server 2005中运行上面的语句是不会有任何报错的,但是但你试图去修改系统表的时候你会得到下面这样的错误信息:
Msg 259, Level 16, State 1, Line 1
Ad hoc updates to system catalogs are not allowed.这时候你只要在SQL Server 2005的BOL中查一下”allow updates”你就会发现如下的说明:
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只是一个摆设了,根本不能用,而且系统表也不能直接被修改了。但是如果你确实需要修改系统表那怎么办呢?
还好,Microsoft还是没有做绝的,虽然allow updates不能用了,但还是可以通过别的途径修改系统表,那就是:先用单用户模式启动SQL Server 2005实例,然后再用DAC(Dedicated Administrator Connection/专用管理员连接)连接到SQL实例,然后不用运行什么sp_configure就可以直接修改系统表了。
基本的步骤:
1、启动到单用户模式
"C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBinnsqlservr.exe" -m2、打开SQL Server Management Studio,在Connect to Server对话框中的Server Name处输入admin:InstanceName,这样就可以用DAC登陆启动的SQL Server实例了。
友情提示:
另外,SQL Server 2005加强了字典管理功能,如果要修改系统表的操作能有存储过程支持的情况下一定要用存储过程,不要去直接修改系统表,以维护数据字典的一致性。
参考资料:
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,以便执行诊断查询并解决问题。命令行界面 (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 登录后, 可以通过查询动态管理视图来诊断问题

来源:https://www.tulaoshi.com/n/20160219/1592261.html

延伸阅读
标签: windows系统
Win8.1使用管理员权限运行CMD方法   有一些时候普通的命令提示符不足以满足我们的需求,需要管理员权限的命令提示符才能完成我们的设置或者修改。今天就给大家简单介绍如何管理员权限运行CMD。 Win8.1使用管理员权限运行CMD的方法如下: 方法一: 1、按Win键+R打开运行,在打开的运行中输入CMD打开命令提示符。 ...
标签: windows 操作系统
Windows XP凭借极高的安全性和稳定性,赢得了广大用户的青睐。我们可以通过建立个人账户、设定密码来保护自己的个人隐私,还可以用Administrators(超级管理员)的身份任意设置账户,为每一个账户设置不同的权限,可以说拥有至高无上的权利,也拥有系统的“生杀大权”,享有系统最高级别的安全保障。 但是,如果我告诉你,我能不费...
标签: 服务器
Fedora系统的管理员root密码怎么重置?   1、首先,我们需要进入Fedora GRUB操作系统引导界面,一般安装时,默认是不显示操作系统选项,经几秒后就直接启动操作系统的,因此,我们需要在系统启动的时候,使用任意键进入启动菜单项,如下图所示。 2、在进入的操作系统菜单里面,选择要重设root密码的操作系统,然后按e键编辑...
修改win7取得管理员最高权限   windows 7系统有很多设置需要用到最高权限的超级管理员账户,所以,如果你是一个狂热的diy玩家,可以把你的系统修改为超级管理员账户来使用。 第一步,在开始菜单中右键单击我的电脑,然后选择管理选项,也可以在桌面上右键计算机-进行管理选项。 之后进入计算机管理设置界面页,这里提供...
win7系统下创建管理员账户的方法   1、首先点击win7系统中的开始菜单,然后选中控制面板项; 2、进入控制面板之后,点击用户账户和家庭安全中的添加或删除账户项; 3、接着在出来的界面中,选择点击下方的创建一个新账户; 4、接着输入账户名称,用英文字母,不要用中文,因为在以后的使用中会出现错误。然后选...

经验教程

943

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部