Проверка журналов ошибок SQL Server
Далее описывается использование PowerShell Core для проверки журналов ошибок подключения в вашем экземпляре SQL Server на Linux.
Скопируйте следующие команды и вставьте их в командную строку PowerShell. Это может занять несколько минут. Данные команды выполняют следующие действия:
- отображение диалогового окна с запросом на ввод имени узла и IP-адреса экземпляра;
- открытие диалогового окна Запрос учетных данных PowerShell, в котором необходимо ввести соответствующие сведения; для подключения к экземпляру SQL Server на Linux вы можете использовать свои имя пользователя SQL и пароль SQL;
- Использование командлета Get-SqlErrorLog для подключения к экземпляру SQL Server на Linux и извлечения журналов ошибок, обнаруженных со вчерашнего дня
При необходимости можно заменить переменную IP-адресом или именем узла вашего экземпляра SQL Server.
Подключение к SQL Server и получение сведений о сервере
В приведенных ниже инструкциях мы используем PowerShell Core для подключения к экземпляру SQL Server на Linux и просмотра некоторых свойств сервера.
Скопируйте следующие команды и вставьте их в командную строку PowerShell. При запуске этих команд в PowerShell будут выполнены следующие действия:
- отображение диалогового окна с запросом на ввод имени узла и IP-адреса экземпляра;
- открытие диалогового окна Запрос учетных данных PowerShell, в котором необходимо ввести соответствующие сведения; для подключения к экземпляру SQL Server на Linux вы можете использовать свои имя пользователя SQL и пароль SQL;
- использование командлета Get-SqlInstance для подключения к серверу и просмотра некоторых свойств.
При необходимости можно заменить переменную IP-адресом или именем узла вашего экземпляра SQL Server.
В PowerShell должны отображаться данные примерно следующего вида:
Примечание
Если эти значения не отображаются, скорее всего, подключение к целевому экземпляру SQL Server установить не удалось. Убедитесь в том, что эти же данные можно использовать для подключения из SQL Server Management Studio. Затем ознакомьтесь с .
Использование поставщика SQL Server для PowerShell
В качестве альтернативы для подключения к экземпляру SQL Server можно использовать поставщик SQL Server PowerShell. Этот поставщик позволяет работать с экземпляром SQL Server из командной строки так же, как с древовидной структурой в обозревателе объектов. По умолчанию этот поставщик представлен как диск PSDrive с именем , который можно использовать для подключения к экземплярам SQL Server и навигации по ним, к которым есть доступ у вашей учетной записи домена. Дополнительные сведения о настройке проверки подлинности Active Directory для SQL Server в Linux см. в разделе .
Также вы можете использовать проверку подлинности SQL в поставщике SQL Server PowerShell. Для этого с помощью командлета создайте новый диск PSDrive и укажите учетные данные для подключения.
В приведенном ниже примере показано, как создать новый диск PSDrive с использованием проверки подлинности SQL.
Чтобы убедиться в том, что диск был создан, выполните командлет .
Создав новый диск PSDrive, вы можете начать работу с ним.
Выходные данные могут выглядеть следующим образом: Вы можете заметить, что выходные данные аналогичны тому, что SQL Server Management Studio (SSMS) отобразит в узле «Базы данных». В нем представлены пользовательские, а не системные базы данных.
Чтобы просмотреть все базы данных в вашем экземпляре, можно использовать командлет Get-SqlDatabase.
Использование модуля SqlServer
Для начала запустим PowerShell Core. Если вы используете macOS или Linux, откройте сеанс терминала на своем компьютере и введите pwsh, чтобы запустить новый сеанс PowerShell Core. В Windows нажмите клавиши Win+R и введите , чтобы запустить новый сеанс PowerShell Core.
В SQL Server представлен модуль PowerShell под названием SqlServer. Вы можете использовать модуль SqlServer для импорта компонентов SQL Server (поставщик и командлеты SQL Server) в скрипт или среду PowerShell.
Скопируйте следующую команду и вставьте ее в командную строку PowerShell, чтобы импортировать модуль SqlServer в текущий сеанс PowerShell:
Введите следующую команду в командной строке PowerShell, чтобы убедиться в том, что модуль SqlServer был импортирован правильно:
В PowerShell должны отображаться данные примерно следующего вида:
Аргументы
-NoLogo
Указывает, что служебная программа sqlps не должна отображать баннер со сведениями об авторских правах при запуске.
-NoExit
Указывает, что служебная программа sqlps должна продолжать выполняться после выполнения команд запуска.
-NoProfile
Указывает служебной программе sqlps не загружать профиль пользователя. В профилях пользователей записываются часто используемые псевдонимы, функции и переменные для использования в различных сеансах PowerShell.
-OutPutFormat { Text | XML }
Указывает, что выходные данные служебной программы sqlps будут отформатированы в виде текстовых строк (Text) либо представлены в сериализованном формате CLIXML (XML).
-InPutFormat { Text | XML }
Указывает, что входные данные служебной программы sqlps отформатированы в виде текстовых строк (Text) либо представлены в сериализованном формате CLIXML (XML).
-Command
Указывает команду для выполнения служебной программой sqlps . Служебная программа sqlps выполняет команду, а затем завершает работу, если только не указан параметр -NoExit . После параметра -Commandне следует указывать какие-либо иные параметры, так как они будут интерпретироваться как параметры команды.
—Command — указывает, что служебная программа sqlps считывает входные данные с помощью стандартного ввода.
блок_скрипта
Указывает блок команд PowerShell для выполнения, который должен быть заключен в фигурные скобки: {}. Параметрблок_скрипта можно указывать только в случае вызова служебной программы sqlps из PowerShell или другого сеанса служебной программы sqlps . Параметр массив_аргументов представляет собой массив переменных PowerShell, содержащий аргументы для команд PowerShell из параметра блок_скрипта.
string
Указывает строку, содержащую команды PowerShell для запуска. Используйте формат «&{command}». Кавычки определяют строку, а оператор вызова (&) предписывает служебной программе sqlps выполнить команду.
Показывает синтаксис параметров служебной программы sqlps .
SQL Server сведения, возвращаемые командлетом Get-ChildItem
Данные, возвращаемые командлетом Get-ChildItem (или его псевдонимами dir и ls ), зависят от текущего расположения на диске SQLSERVER.
Положение на пути | Результаты выполнения Get-ChildItem |
---|---|
SQLSERVER:\SQL | Возвращает имя локального компьютера. Если соединения с экземплярами ядра СУБД на других компьютерах устанавливались с помощью SMO или WMI, эти компьютеры также будут перечислены. |
SQLSERVER:\SQL\ИмяКомпьютера | Список экземпляров ядра СУБД на компьютере. |
SQLSERVER:\SQL\ИмяКомпьютера\ИмяЭкземпляра | Список типов объектов верхнего уровня в экземпляре, таких как «Конечные точки», «Сертификаты» и «Базы данных». |
Узел класса объектов, например «Базы данных» | Список объектов этого типа, например список баз данных: master, model, AdventureWorks20008R2. |
Узел имени объекта, например AdventureWorks2012 | Список типов объектов, содержащихся в этом объекте. Например, для базы данных будет выведен список типов объектов, таких как таблицы и представления. |
По умолчанию командлет Get-ChildItem не выводит системные объекты. Воспользуйтесь параметром Force для просмотра таких системных объектов, как объекты в схеме sys
Определение нестандартных дисков
Windows PowerShell позволяет определять виртуальные диски, которые называются дисками PowerShell. Они сопоставляются начальным узлам в указании пути. Обычно они используются в качестве краткой записи для часто используемых путей. Пути диска SQLSERVER: могут оказаться длинными, занимать много места в окне Windows PowerShell и требовать много времени на ввод с клавиатуры. Если планируется выполнить большой объем работы для некоторого узла пути, для него можно определить нестандартный диск Windows PowerShell.
Создание шага задания PowerShell
Создание шага задания PowerShell
-
Разверните раздел Агент SQL Server, создайте задание или щелкните правой кнопкой мыши существующее задание и выберите Свойства. Дополнительные сведения о создании заданий см. в разделе Создание заданий.
-
В диалоговом окне Свойства задания выберите страницу Шаги и щелкните Создать.
-
В диалоговом окне Новый шаг задания введите имя шагазадания.
-
В раскрывающемся списке Тип выберите PowerShell.
-
В списке Выполнять как выберите учетную запись-посредник с учетными данными, используемыми в задании.
-
В поле Команда введите синтаксис скрипта PowerShell, который будет выполняться в данном шаге. Или щелкните Открыть и выберите файл, содержащий скрипт.
-
Выберите страницу Дополнительно, чтобы задать следующие параметры шага задания: какие действия будут предприняты в случае успешного или неуспешного выполнения шага задания, сколько раз агенту SQL Server пытаться его выполнить и как нужно часто повторять эти попытки.
Создание шага задания командной строки
Создание шага задания CmdExec
Разверните раздел Агент SQL Server, создайте задание или щелкните правой кнопкой мыши существующее задание и выберите Свойства. Дополнительные сведения о создании заданий см. в разделе Создание заданий.
В диалоговом окне Свойства задания выберите страницу Шаги и щелкните Создать.
В диалоговом окне Новый шаг задания введите имя шагазадания.
В списке Тип выберите Операционная система (CmdExec) .
В списке Выполнять как выберите учетную запись-посредник с учетными данными, используемыми в задании. По умолчанию шаги задания CmdExec выполняются под учетной записью службы агента SQL Server.
В поле Код завершения процесса успешной команды введите значение от 0 до 999999.
В поле Команда введите команды, которые начинаются с PowerShell.exe с параметрами, указывающими скрипт PowerShell для запуска. Эти примеры аналогичны синтаксису для выполнения команд PowerShell из командной строки Windows. Все возможные варианты синтаксиса см. можно просмотреть, введя .
Пример 1. Запуск простого командлета.
Пример 2. Выполнение запроса с помощью SQLCmd.exe к текущему серверу (в примере используется замена токена Агента SQL).
Пример 3. Запуск скрипта PowerShell (с использованием , имени исполняемого файла в PowerShell 7.0, который должен быть установлен на сервере)
Обратите внимание, что путь к скрипту является локальным для сервера, на котором работает Агент SQL.
Откройте страницу Дополнительно, чтобы задать следующие параметры шага задания: какие действия будут предприняты в случае успешного или неуспешного выполнения шага задания, сколько раз агенту SQL Server пытаться его выполнить и в какой файл агент SQL Server может записывать результат выполнения шага задания. Только члены предопределенной роли сервера sysadmin могут записывать выходные данные шага задания в файл операционной системы.
Проверка журналов ошибок SQL Server
Далее описывается использование PowerShell Core для проверки журналов ошибок подключения в вашем экземпляре SQL Server на Linux.
Скопируйте следующие команды и вставьте их в командную строку PowerShell. Это может занять несколько минут. Данные команды выполняют следующие действия:
- отображение диалогового окна с запросом на ввод имени узла и IP-адреса экземпляра;
- открытие диалогового окна Запрос учетных данных PowerShell, в котором необходимо ввести соответствующие сведения; для подключения к экземпляру SQL Server на Linux вы можете использовать свои имя пользователя SQL и пароль SQL;
- Использование командлета Get-SqlErrorLog для подключения к экземпляру SQL Server на Linux и извлечения журналов ошибок, обнаруженных со вчерашнего дня
При необходимости можно заменить переменную IP-адресом или именем узла вашего экземпляра SQL Server.
SQL Server сведения, возвращаемые командлетом Get-ChildItem
Данные, возвращаемые командлетом Get-ChildItem (или его псевдонимами dir и ls ), зависят от текущего расположения на диске SQLSERVER.
Положение на пути | Результаты выполнения Get-ChildItem |
---|---|
SQLSERVER:\SQL | Возвращает имя локального компьютера. Если соединения с экземплярами ядра СУБД на других компьютерах устанавливались с помощью SMO или WMI, эти компьютеры также будут перечислены. |
SQLSERVER:\SQL\ИмяКомпьютера | Список экземпляров ядра СУБД на компьютере. |
SQLSERVER:\SQL\ИмяКомпьютера\ИмяЭкземпляра | Список типов объектов верхнего уровня в экземпляре, таких как «Конечные точки», «Сертификаты» и «Базы данных». |
Узел класса объектов, например «Базы данных» | Список объектов этого типа, например список баз данных: master, model, AdventureWorks20008R2. |
Узел имени объекта, например AdventureWorks2012 | Список типов объектов, содержащихся в этом объекте. Например, для базы данных будет выведен список типов объектов, таких как таблицы и представления. |
По умолчанию командлет Get-ChildItem не выводит системные объекты. Воспользуйтесь параметром Force для просмотра таких системных объектов, как объекты в схеме sys
Определение нестандартных дисков
Windows PowerShell позволяет определять виртуальные диски, которые называются дисками PowerShell. Они сопоставляются начальным узлам в указании пути. Обычно они используются в качестве краткой записи для часто используемых путей. Пути диска SQLSERVER: могут оказаться длинными, занимать много места в окне Windows PowerShell и требовать много времени на ввод с клавиатуры. Если планируется выполнить большой объем работы для некоторого узла пути, для него можно определить нестандартный диск Windows PowerShell.
Создание шага задания PowerShell
Создание шага задания PowerShell
-
Разверните раздел Агент SQL Server, создайте задание или щелкните правой кнопкой мыши существующее задание и выберите Свойства. Дополнительные сведения о создании заданий см. в разделе Создание заданий.
-
В диалоговом окне Свойства задания выберите страницу Шаги и щелкните Создать.
-
В диалоговом окне Новый шаг задания введите имя шагазадания.
-
В раскрывающемся списке Тип выберите PowerShell.
-
В списке Выполнять как выберите учетную запись-посредник с учетными данными, используемыми в задании.
-
В поле Команда введите синтаксис скрипта PowerShell, который будет выполняться в данном шаге. Или щелкните Открыть и выберите файл, содержащий скрипт.
-
Выберите страницу Дополнительно, чтобы задать следующие параметры шага задания: какие действия будут предприняты в случае успешного или неуспешного выполнения шага задания, сколько раз агенту SQL Server пытаться его выполнить и как нужно часто повторять эти попытки.
Проверка журналов ошибок SQL Server
Далее описывается использование PowerShell в Windows для проверки журналов ошибок подключения в вашем экземпляре SQL Server на Linux. Кроме того, мы будем использовать командлет Out-GridView для просмотра журналов ошибок в представлении сетки.
Скопируйте следующие команды и вставьте их в командную строку PowerShell. Это может занять несколько минут. Эти команды выполняют следующие действия:
- отображение диалогового окна с запросом на ввод имени узла и IP-адреса экземпляра;
- Откройте диалоговое окно Запрос учетных данных Windows PowerShell, в котором необходимо ввести соответствующие сведения. для подключения к экземпляру SQL Server на Linux вы можете использовать свои имя пользователя SQL и пароль SQL;
- Использование командлета Get-SqlErrorLog для подключения к экземпляру SQL Server на Linux и извлечения журналов ошибок, обнаруженных со вчерашнего дня
- Передача выходных данных в командлет Out-GridView
При необходимости можно заменить переменную IP-адресом или именем узла вашего экземпляра SQL Server.
Задачи поставщика SQL Server
Описание задачи | Статья |
---|---|
Описано, как использовать командлеты Windows PowerShell для перехода по узлам пути и получения в каждом узле списка объектов этого узла. | Перемещение путей SQL Server PowerShell |
Описано, как использовать методы и свойства объектов SMO для получения отчета и выполнения работы над объектом, представленным узлом пути. Кроме того, описано, как получить список методов и свойств объектов SMO для этого узла. | Работа с путями SQL Server PowerShell |
Описывает, как преобразовать универсальное имя ресурса объекта SMO в путь поставщика SQL Server. | Преобразование URNs в пути поставщика SQL Server |
Описано, как открывать соединения проверки подлинности SQL Server с использованием поставщика SQL Server . По умолчанию поставщик использует соединения проверки подлинности Windows, установленные с помощью учетных данных той учетной записи Windows, которая используется в сеансе Windows PowerShell. | Управление проверкой подлинности в PowerShell ядра СУБД |
Создание шага задания командной строки
Создание шага задания CmdExec
Разверните раздел Агент SQL Server, создайте задание или щелкните правой кнопкой мыши существующее задание и выберите Свойства. Дополнительные сведения о создании заданий см. в разделе Создание заданий.
В диалоговом окне Свойства задания выберите страницу Шаги и щелкните Создать.
В диалоговом окне Новый шаг задания введите имя шагазадания.
В списке Тип выберите Операционная система (CmdExec) .
В списке Выполнять как выберите учетную запись-посредник с учетными данными, используемыми в задании. По умолчанию шаги задания CmdExec выполняются под учетной записью службы агента SQL Server.
В поле Код завершения процесса успешной команды введите значение от 0 до 999999.
В поле Команда введите команды, которые начинаются с PowerShell.exe с параметрами, указывающими скрипт PowerShell для запуска. Эти примеры аналогичны синтаксису для выполнения команд PowerShell из командной строки Windows. Все возможные варианты синтаксиса см. можно просмотреть, введя .
Пример 1. Запуск простого командлета.
Пример 2. Выполнение запроса с помощью SQLCmd.exe к текущему серверу (в примере используется замена токена Агента SQL).
Пример 3. Запуск скрипта PowerShell (с использованием , имени исполняемого файла в PowerShell 7.0, который должен быть установлен на сервере)
Обратите внимание, что путь к скрипту является локальным для сервера, на котором работает Агент SQL.
Откройте страницу Дополнительно, чтобы задать следующие параметры шага задания: какие действия будут предприняты в случае успешного или неуспешного выполнения шага задания, сколько раз агенту SQL Server пытаться его выполнить и в какой файл агент SQL Server может записывать результат выполнения шага задания. Только члены предопределенной роли сервера sysadmin могут записывать выходные данные шага задания в файл операционной системы.
Тестирование сеанса событий
Чтобы протестировать сеанс событий, выполните указанные ниже несложные действия.
- В обозревателе объектовSSMS щелкните узел сеанса событий правой кнопкой мыши и выберите пункт Начать сеанс.
- Выполните приведенную ниже инструкцию два раза.
- Щелкните узел сеанса правой кнопкой мыши и выберите пункт Остановить сеанс.
- Прочитайте следующий подраздел о .
Для полноты ниже приведен образец результата предыдущей инструкции SELECT…HAVING.
Выбор полных результатов в формате XML
В SSMS выполните приведенную ниже инструкцию T-SQL SELECT, чтобы получить результаты, каждая строка которых содержит данные по отдельному экземпляру события. С помощью инструкции CAST AS XML можно легко просмотреть результаты.
Примечание
Система событий всегда добавляет длинный номер к указанному имени XEL -файла event_file. Перед выполнением приведенной ниже инструкции SELECT из файла необходимо скопировать полное имя, предоставленное системой, и вставить его в инструкцию SELECT.
Приведенная выше инструкция SELECT позволяет просмотреть полные результаты из любой строки двумя способами.
- Выполните инструкцию SELECT в SSMS, а затем щелкните ячейку в столбце event_data_XML . Это очень удобно.
- Скопируйте длинную строку XML из ячейки в столбце event_data . Вставьте строку в любой простой текстовый редактор, например Notepad.exe, и сохраните ее в файле с расширением XML. Затем откройте XML-файл в браузере.
Отображение результатов для одного события
Ниже приведена часть результатов в формате XML. Этот код XML сокращен для наглядности
Обратите внимание на то, что в элементе показано значение , что соответствует 6 строкам результатов, показанным ранее. И мы можем видеть всю инструкцию SELECT
Использование поставщика SQL Server для PowerShell
В качестве альтернативы для подключения к экземпляру SQL Server можно использовать поставщик SQL Server PowerShell. Этот поставщик позволяет работать с экземпляром SQL Server из командной строки так же, как с древовидной структурой в обозревателе объектов. По умолчанию этот поставщик представлен как диск PSDrive с именем , который можно использовать для подключения к экземплярам SQL Server и навигации по ним, к которым есть доступ у вашей учетной записи домена. Дополнительные сведения о настройке проверки подлинности Active Directory для SQL Server в Linux см. в разделе .
Также вы можете использовать проверку подлинности SQL в поставщике SQL Server PowerShell. Для этого с помощью командлета создайте новый диск PSDrive и укажите учетные данные для подключения.
В приведенном ниже примере показано, как создать новый диск PSDrive с использованием проверки подлинности SQL.
Чтобы убедиться в том, что диск был создан, выполните командлет .
Создав новый диск PSDrive, вы можете начать работу с ним.
Выходные данные могут выглядеть следующим образом: Вы можете заметить, что выходные данные аналогичны тому, что SQL Server Management Studio (SSMS) отобразит в узле «Базы данных». В нем представлены пользовательские, а не системные базы данных.
Чтобы просмотреть все базы данных в вашем экземпляре, можно использовать командлет Get-SqlDatabase.
Создание пользовательского диска
Создание и использование пользовательского диска
-
Используйте New-PSDrive для определения пользовательского диска. Используйте параметр Root для указания пути, представляемого именем пользовательского диска.
-
Используйте имя пользовательского диска в таких командлетах перехода по пути, как Set-Location.
Пример пользовательского диска (PowerShell)
В приведенном ниже примере создается виртуальный диск AWDB, сопоставленный с узлом для развернутой копии образца базы данных AdventureWorks2012. Виртуальный диск затем используется для перехода к таблице в базе данных.