Діагностичне з'єднання для адміністраторів баз даних

SQL Server надає спеціальне діагностичне з'єднання для адміністраторів, коли стандартне з'єднання з сервером неможливо. Це діагностичне з'єднання дозволяє адміністратору отримати доступ до SQL Server для виконання діагностичних запитів і усунення проблем, навіть коли SQL Server не відповідає на стандартні запити на з'єднання.

Таке виділене адміністративне з'єднання (DAC) підтримує шифрування та інші засоби безпеки SQL Server. Виділене адміністративне з'єднання дозволяє тільки змінювати контекст користувача на іншого користувача з правами адміністратора.

SQL Server робить все можливе для успішного з'єднання виділеного адміністративного з'єднання, але в надзвичайних ситуаціях це може не дати результату.

За замовчуванням, з'єднання дозволено лише з клієнта, запущеного на сервері. Сумісність із мережею не дозволяються, поки вони не налаштовані за допомогою процедури, що sp_configure з параметром remote admin connections.

Тільки члени ролі SQL Server sysadmin можуть підключатися з використанням виділеного адміністративного з'єднання.

Так як виділене адміністративне з'єднання існує тільки для діагностики проблем на сервері в рідкісних обставин, у підключення є деякі обмеження.

Щоб гарантувати, що для підключення є доступні ресурси, на один екземпляр SQL Server дозволено тільки одне виділене адміністративне з'єднання. Якщо виділене адміністративне з'єднання вже активно, будь-який новий запит на з'єднання через DAC відхиляється з помилкою 17810.

Для економії ресурсів SQL Server Express прослуховує порт виділеного адміністративного з'єднання тільки при запуску з прапором трасування 7806.

Спочатку виділене адміністративне з'єднання підключається до бази даних за замовчуванням, пов'язаної з ім'ям входу. Після успішного з'єднання можна підключитися до бази даних master. Якщо база даних за замовчуванням знаходиться в режимі поза мережею або недоступна з іншої причини, з'єднання поверне помилку 4060. При цьому з'єднання буде успішним, якщо замість бази даних за замовчуванням підключитися до бази даних master за допомогою наступної команди:

Рекомендується підключатися до бази даних master через виділене адміністративне з'єднання, так як база даних master буде в будь-якому випадку доступна, якщо запущений екземпляр компонента Компонент Database Engine.

SQL Server забороняє виконання паралельних запитів або команд через виділене адміністративне з'єднання. Наприклад, помилка 3637 виникає при виконанні через виділене адміністративне з'єднання будь-якої з наступних інструкцій:

Щоб гарантувати з'єднання і усунення неполадок через виділене адміністративне з'єднання, SQL Server резервує обмежені ресурси для обробки команд, запущених через нього. Цих ресурсів зазвичай вистачає тільки для простих діагностичних функцій і усунення неполадок, які наведені нижче.

Запит таких динамічних адміністративних уявлень (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 повністю переглядає сховище версій, що може привести до різкого збільшення обсягу введення-виведення) або використовують складні з'єднання. Відомості про вплив на продуктивність см. В документації до конкретного динамічному адміністративному поданням.

Запит уявлень каталогу.

Основні команди DBCC, наприклад DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE, DBCC DROPCLEANBUFFERS. а також DBCC SQLPERF. Не об'єднуйте свій пристрій такі ресурсомісткі команди, як DBCC CHECKDB, DBCC DBREINDEX або DBCC SHRINKDATABASE.

Команда Transact-SQL KILL . Залежно від стану SQL Server команда KILL не завжди виконується успішно. В цьому випадку єдиним виходом залишається перезапуск SQL Server. Розглянемо кілька загальних правил.

За допомогою запиту SELECT * FROM sys.dm_exec_sessions WHERE session_id = переконайтеся, що SPID був дійсно відключений. Якщо рядки не повертаються, значить, сеанс був зупинений.

Якщо сеанс триває, перевірте за допомогою запиту SELECT * FROM sys.dm_os_tasks WHERE session_id = наявність завдань, призначених для цього сеансу. Якщо завдання присутній, то, швидше за все, сеанс закривається зараз. Зауважте, що це може зайняти чимало часу і завершитися неуспішно.

Якщо в поданні sys.dm_os_tasks немає завдань, пов'язаних з даними сеансом, але сеанс залишається в sys.dm_exec_sessions після виконання команди KILL, це означає, що відсутній доступний робочий процесор. Щоб звільнити робочий потік, виберіть одну з поточних завдань (завдання в поданні sys.dm_os_tasks зі значенням sessions_id <> NULL) і зупиніть пов'язаний з нею сеанс. Зауважте, що зупинка одного сеансу може виявитися недостатньою: можливо, буде потрібно зупинити кілька сеансів.

Для виділених адміністративних з'єднань SQL Server прослуховує TCP-порт 1434 якщо він доступний, або TCP-порт, динамічно призначається при запуску компонента Компонент Database Engine. Журнал помилок містить номер порту, на якому очікується виділене адміністративне з'єднання. За замовчуванням, виділене адміністративне з'єднання очікується тільки на місцевому порту. Зразок коду, що активує віддалені адміністративні підключення, див. Розділ Параметр конфігурації сервера «remote admin connections».

Після настройки адміністративного з'єднання засіб прослуховування виділених адміністративних з'єднань включається без необхідності перезапуску SQL Server, і клієнт може віддалено підключитися до DAC. Засобу прослуховування з'єднань DAC можна дозволити прийом віддалених з'єднань, навіть якщо SQL Server не відповідає. Для цього можна спочатку підключитися до SQL Server локально за допомогою виділеного адміністративного з'єднання, а потім виконати збережену процедуру sp_configure для прийому віддалених з'єднань.

Порт виділених адміністративних з'єднань присвоюється SQL Server динамічно під час запуску. При з'єднанні з екземпляром за замовчуванням DAC прагне не використовувати запит протоколу дозволу SQL Server (SSRP) до служби браузера SQL Server. Спочатку виконується спроба підключитися через TCP-порт 1434. У разі помилки слід виклик SSRP на отримання порту. Якщо браузер SQL Server не очікує запитів SSRP, запит на підключення повертає помилку. Зверніться до журналу помилок, щоб знайти номер порту, на якому очікується виділене адміністративне з'єднання. Якщо SQL Server налаштований для прийому віддалених адміністративних підключень, виділене адміністративне з'єднання повинно бути ініційовано з явно зазначеним номером порту:

Журнал помилок SQL Server призводить номер порту для виділеного адміністративного з'єднання; за замовчуванням він дорівнює 1434. Якщо SQL Server налаштований для прийому тільки локальних виділених адміністративних з'єднань, підключайтеся через адаптер замикання на себе з використанням наступної команди:

Схожі статті