Перемещение путей sql server powershell

Проверка журналов ошибок 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

  1. Разверните раздел Агент SQL Server, создайте задание или щелкните правой кнопкой мыши существующее задание и выберите Свойства. Дополнительные сведения о создании заданий см. в разделе Создание заданий.

  2. В диалоговом окне Свойства задания выберите страницу Шаги и щелкните Создать.

  3. В диалоговом окне Новый шаг задания введите имя шагазадания.

  4. В раскрывающемся списке Тип выберите PowerShell.

  5. В списке Выполнять как выберите учетную запись-посредник с учетными данными, используемыми в задании.

  6. В поле Команда введите синтаксис скрипта PowerShell, который будет выполняться в данном шаге. Или щелкните Открыть и выберите файл, содержащий скрипт.

  7. Выберите страницу Дополнительно, чтобы задать следующие параметры шага задания: какие действия будут предприняты в случае успешного или неуспешного выполнения шага задания, сколько раз агенту 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

  1. Разверните раздел Агент SQL Server, создайте задание или щелкните правой кнопкой мыши существующее задание и выберите Свойства. Дополнительные сведения о создании заданий см. в разделе Создание заданий.

  2. В диалоговом окне Свойства задания выберите страницу Шаги и щелкните Создать.

  3. В диалоговом окне Новый шаг задания введите имя шагазадания.

  4. В раскрывающемся списке Тип выберите PowerShell.

  5. В списке Выполнять как выберите учетную запись-посредник с учетными данными, используемыми в задании.

  6. В поле Команда введите синтаксис скрипта PowerShell, который будет выполняться в данном шаге. Или щелкните Открыть и выберите файл, содержащий скрипт.

  7. Выберите страницу Дополнительно, чтобы задать следующие параметры шага задания: какие действия будут предприняты в случае успешного или неуспешного выполнения шага задания, сколько раз агенту 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 могут записывать выходные данные шага задания в файл операционной системы.

Тестирование сеанса событий

Чтобы протестировать сеанс событий, выполните указанные ниже несложные действия.

  1. В обозревателе объектовSSMS щелкните узел сеанса событий правой кнопкой мыши и выберите пункт Начать сеанс.
  2. Выполните приведенную ниже инструкцию два раза.
  3. Щелкните узел сеанса правой кнопкой мыши и выберите пункт Остановить сеанс.
  4. Прочитайте следующий подраздел о .

Для полноты ниже приведен образец результата предыдущей инструкции 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.

Создание пользовательского диска

Создание и использование пользовательского диска

  1. Используйте New-PSDrive для определения пользовательского диска. Используйте параметр Root для указания пути, представляемого именем пользовательского диска.

  2. Используйте имя пользовательского диска в таких командлетах перехода по пути, как Set-Location.

Пример пользовательского диска (PowerShell)

В приведенном ниже примере создается виртуальный диск AWDB, сопоставленный с узлом для развернутой копии образца базы данных AdventureWorks2012. Виртуальный диск затем используется для перехода к таблице в базе данных.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: