美高梅官方网站3045-mgm6608美高梅app下载
深入探讨SQL Server中DAC连接及其它

深入探讨SQL Server中DAC连接及其它

作者:美高梅官方网站3045    来源:未知    发布时间:2019-11-26 18:20    浏览量:

DAC(Dedicated Admin Connection卡塔 尔(英语:State of Qatar)是SQL Server 2006引进的叁个东西,指标是在SQL Server发生严重质量难题的时候仍保留少数的财富保险管理员能够执行一些简便的授命用于难点确诊、释放财富、杀死肇事进度等。微软官方对DAC的求证:利用专项使用管理员连接.aspx)。对于DAC使用的相通景观,有八个科学的Blog值得推荐:

SQL Server 为大班提供了意气风发种独特的确诊连接,以供在不大概与服务器创立正式连接时利用。尽管在 SQL Server 不响应规范连接诉求时,管理员也足以动用此确诊连接待上访谈 SQL Server,以便实行确诊查询并缓和难点。

下边包车型大巴两篇blog涉及到的为主是DAC访谈单机单实例的情况。本文试图对DAC访谈单机多实例的意况也做个钻探。

此专项使用管理员连接 (DAC) 协理 SQL Server 的加密效用和其余安全功效。DAC 只允许将客商上下文切换成别的处理客商。

1卡塔尔单机单SQL Server实例,且SQL Server实例使用默许端口(1433卡塔尔国

SQL Server 尽力使 DAC 连接成功,但在特别独特的景况下也大概会并发一而再三番五次失利。

--以下的形式都可以访问
sqlcmd -S myServer -U myUser -P myPassword -A
sqlcmd -S ADMIN:myServer -U myUser -P myPassword
sqlcmd -S myServer,1434 -U myUser -P myPassword
sqlcmd -S xxx.xxx.xxx.xxx -U myUser -P myPassword -A
sqlcmd -S xxx.xxx.xxx.xxx,1434 -U myUser -P myPassword

说明:
a) sqlcmd命令行中参数与参数值之间可以有空格也可以没有;如果你的密码中有空格,你可以用双引号把你的密码引起来;
b) sqlcmd命令中的“-S”其实也可以用"/S",其它参数也一样;
c) 1434是SQL Server连接的默认端口号;
d) 在服务器前加"ADMIN:"也是为了指定进行DAC连接;
e) “-A”是在sqlcmd命令行中指定DAC连接的参数;
f) "-A","ADMIN:",",1434"不能在一条命令中出现两个或以上,否则会报错;
g) 不在命令行中加入这3个参数("-A","ADMIN:",",1434")的任何一个,登录也能成功,差别在于你使用的连接是普通连接,不是DAC连接。一般来说,普通连接能用的资源更多,但是当系统性能出现严重问题的时候普通连接可能没法建立,这也是引入DAC的初衷;再就是DAC连接下能看到一些有助于诊断的秘密视图(参见上面推荐的第一个blog)。

使用 DAC 连接

暗许情状下,只好从服务器上运维的客户端创建连接。不允许实行网络连接,除非它们是应用带 的 sp_configure 存款和储蓄进程配置的。

只有 SQL Server sysadmin 剧中人物的积极分子能够使用 DAC 连接。

透过利用专项使用的组织者开关 (-A) 的 sqlcmd 命令提示实用工具,能够支撑和行使 DAC。有关使用 sqlcmd 的详细消息,请参阅。您还足以将前缀 admin: 连接到实例名上,格式为 sqlcmd -Sadmin:*<instance_name>。还足以经过三番五次到 admin:<实例名*>,从 SQL Server Management Studio 查询编辑器运行 DAC。

2卡塔尔单机单SQL Server实例,SQL Server实例使用非暗许端口

限制

鉴于 DAC 仅用于在极少数情景下确诊服务器难题,因而对连年有点范围:

  • 为了保障有可用的接连能源,每一种 SQL Server 实例只允许利用一个DAC。固然 DAC 连接已经激活,则通过 DAC 进行连接的别的新乞求都将被驳倒,并冒出谬误 17810。

  • 为了保留资源,SQL Server Express 不侦听 DAC 端口,除非选取追踪标记7806 举行运维。

  • DAC 最早尝试连选取与登陆帐户关联的暗中认可数据库。连接成功后,能够连接到 master 数据库。纵然默许数据库脱机或不可用,则三回九转重回错误 4060。不过,若是运用以下命令覆盖暗许数据库,改为连续几天来到 master 数据库,则连年会中标:

    sqlcmd –A –d master

    由于只要开动数据库引擎实例,就能够作保 master 数据库处于可用状态,因而提议使用 DAC 连接到 master 数据库。

  • SQL Server 禁用 DAC 运转并行查询或指令。举个例子,如若应用 DAC 实践下列任何语句,都会变动错误 3637。

    • RESTORE

    • BACKUP

  • DAC 只好接收有限的财富。请勿使用 DAC 运营需求消耗多量财富的查询(举例,对大型表试行复杂的联网卡塔尔或大概产生拥塞的询问。那推进防止将 DAC 与别的现存的服务器难点混淆。为了防止发生地下的不通情形,假使必需试行可能会产生围堵的询问,则尽量在依赖快照的隔断等级下运行查询;可能,将事情隔开分离品级设置为 READ UNCOMMITTED,将 LOCK_TIMEOUT 值设置为不够长的值(如 二零零一微秒卡塔尔国,大概同不常候实施那二种操作。那能够卫戍 DAC 会话被封堵。可是,依照 SQL Server 所处的情事,DAC 会话只怕会在闩锁上被打断。能够应用 CNT奥迪Q7L-C 终止 DAC 会话,但不能够有限支撑一定成功。如若败北,唯后生可畏的选拔是重复启航 SQL Server。

  • 为确认保证连接成功并解除 DAC 故障,SQL Server 保留了必然的财富用于拍卖 DAC 上运转的指令。通常这么些能源只够施行简单的确诊和故障清除效能,如下所示。

即使理论上得以运作任何不必在 DAC 上并行试行的 Transact-SQL 语句,但努力提出你约束使用下列确诊和故障祛除命令:

  • 查询动态管理视图以拓展着力的诊断,举例查询 sys.dm_tran_locks 以询问锁定状态,查询 sys.dm_os_memory_cache_counters 以检讨缓存质量,查询 sys.dm_exec_requests 和 sys.dm_exec_sessions 以通晓活动的对话和倡议。制止选取需求开支大批量能源的动态管理视图(举例,sys.dm_tran_version_store 扫描整个版本存储区,并且会招致大气的 I/O卡塔 尔(阿拉伯语:قطر‎或行使了复杂连接的动态管理视图。有关品质影响的音讯,请参阅特定的文书档案。

  • 查询目录视图。

  • 基本 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 的天职卡塔尔,并终止与其关系的对话以释放专门的学业线程。请介意,终止单个会话只怕非常不够,大概须求甘休多少个会话。

我通过测试得到的结论是:对于单机单SQL Server实例,使用非默认端口时候的DAC访问跟使用默认端口1433时候完全一样。网上的一些论坛说要确保“SQL Server Browser”在运行,似乎不是必要的,至少我测试(用的SQL Server 2008 R2 SP3)过程中“SQL Server Browser”是不是在运行不影响访问。

DAC 端口

SQL Server 在开发银行数据库引擎时动态分配的专项使用 TCP/IP 端口上侦听 DAC。错误日志蕴涵所侦听的 DAC 所在的端口号。私下认可情况下,DAC 侦听器只选取本地端口上的连天。有关激活远程管理员连接的代码示例,请参阅 。

安排远程处理连接之后,会应声启用 DAC 侦听器而毋庸再次起动 SQL Server,何况客户端可以即时远程连接到 DAC。通过先在地面利用 DAC 连接到 SQL Server,然后再试行 sp_configure 存款和储蓄进度接受远程连接,则便是SQL Server 截止响应,DAC 侦听器依旧能够担任远程连接。

对于集合配置,DAC 在私下认可情状下是剥夺的。客户能够施行 sp_configureremote admin connection 选项,使 DAC 侦听器能够访谈远程连接。要是SQL Server 结束响应而且未启用 DAC 侦听器,则也许必得重新起动 SQL Server 来连续 DAC。因而,提出在群集系统上启用 remote admin connections 配置选项。

DAC 端口由 SQL Server 在运行时动态分配。当连接到暗许实例时,DAC 会防止在连年时对 使用 SQL Server 解决合同 (SSRP) 乞求。它先经过 TCP 端口 1434 实行连接。假使失利,则透过 SSRP 调用来得到端口。若是 SQL Server 浏览器未有侦听 SSRP 央求,则连接央浼将重回错误。若要通晓 DAC 所侦听的端口号,请参阅错误日志。纵然将 SQL Server 配置为选拔远程管理连接,则必得使用显式端口号运营 DAC:

sqlcmd –Stcp:*<server>,<port>*

SQL Server 错误日志列出了 DAC 的端口号,暗许情况下为 1434。借使将 SQL Server 配置为只选拔地点 DAC 连接,请使用以下命令和环回适配器举行三番两次:

sqlcmd –S127.0.0.1,1434

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.zen-40.com. mgm美高梅有限公司 版权所有