Используйте PowerShell в Windows для управления SQL Server в Linux
Область применения: SQL Server — Linux
В этой статье рассматривается модуль SQL Server PowerShell и приводится несколько примеров того, как можно использовать его для работы с SQL Server на Linux. Сейчас поддержка PowerShell для SQL Server реализована в Windows, macOS и Linux. В этой статье описывается использование компьютера под управлением Windows для подключения к удаленному экземпляру SQL Server на Linux.
Установка последней версии SQL PowerShell в Windows
Модуль SQL Server PowerShell в Windows поддерживается в коллекция PowerShell. При работе с SQL Server следует всегда использовать последнюю версию модуля SqlServer PowerShell.
Подготовка к работе
Ознакомьтесь с известными проблемами для SQL Server на Linux.
Запуск PowerShell и импорт модуля sqlserver
Для начала запустим PowerShell в Windows. Нажмите клавиши Win+R на компьютере под управлением Windows и введите PowerShell, чтобы запустить новый сеанс Windows PowerShell.
В SQL Server представлен модуль PowerShell под названием SqlServer. Вы можете использовать модуль SqlServer для импорта компонентов SQL Server (поставщик и командлеты SQL Server) в скрипт или среду PowerShell.
Скопируйте следующую команду и вставьте ее в командную строку PowerShell, чтобы импортировать модуль SqlServer в текущий сеанс PowerShell:
Import-Module SqlServer
Введите следующую команду в командной строке PowerShell, чтобы убедиться в том, что модуль SqlServer был импортирован правильно:
Get-Module -Name SqlServer
В PowerShell должны отображаться данные примерно следующего вида:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
Подключение к SQL Server и получение сведений о сервере
Теперь мы используем PowerShell в Windows для подключения к вашему экземпляру SQL Server на Linux и просмотра некоторых свойств сервера.
Скопируйте следующие команды и вставьте их в командную строку PowerShell. При запуске этих команд в PowerShell будут выполнены следующие действия:
- отображение диалогового окна с запросом на ввод имени узла и IP-адреса экземпляра;
- Откройте диалоговое окно Запрос учетных данных Windows PowerShell, в котором необходимо ввести соответствующие сведения. для подключения к экземпляру SQL Server на Linux вы можете использовать свои имя пользователя SQL и пароль SQL;
- использование командлета Get-SqlInstance для подключения к серверу и просмотра некоторых свойств.
При необходимости можно заменить переменную $serverInstance
IP-адресом или именем узла вашего экземпляра SQL Server.
# Prompt for instance & credentials to login into SQL Server
$serverInstance = Read-Host "Enter the name of your instance"
$credential = Get-Credential
# Connect to the Server and get a few properties
Get-SqlInstance -ServerInstance $serverInstance -Credential $credential
# done
В PowerShell должны отображаться данные примерно следующего вида:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Примечание.
Если эти значения не отображаются, скорее всего, подключение к целевому экземпляру SQL Server установить не удалось. Убедитесь в том, что эти же данные можно использовать для подключения из SQL Server Management Studio. Затем ознакомьтесь с рекомендациями по устранению неполадок с подключением.
Использование поставщика SQL Server PowerShell
В качестве альтернативы для подключения к экземпляру SQL Server можно использовать поставщик SQL Server PowerShell. Этот поставщик позволяет работать с экземпляром SQL Server из командной строки так же, как с древовидной структурой в обозревателе объектов. По умолчанию этот поставщик представлен как диск PSDrive с именем SQLSERVER:\
, который можно использовать для подключения к экземплярам SQL Server и навигации по ним, к которым есть доступ у вашей учетной записи домена. Дополнительные сведения о настройке проверки подлинности Active Directory для SQL Server в Linux см. в разделе Шаги настройки.
Также вы можете использовать проверку подлинности SQL в поставщике SQL Server PowerShell. Для этого с помощью командлета New-PSDrive
создайте новый диск PSDrive и укажите учетные данные для подключения.
В приведенном ниже примере показано, как создать новый диск PSDrive с использованием проверки подлинности SQL.
# NOTE: We are reusing the values saved in the $credential variable from the above example.
New-PSDrive -Name SQLonDocker -PSProvider SqlServer -Root 'SQLSERVER:\SQL\localhost,10002\Default\' -Credential $credential
Чтобы убедиться в том, что диск был создан, выполните командлет Get-PSDrive
.
Get-PSDrive
Создав новый диск PSDrive, вы можете начать работу с ним.
dir SQLonDocker:\Databases
Выходные данные могут выглядеть следующим образом: Вы можете заметить, что выходные данные аналогичны тому, что SQL Server Management Studio (SSMS) отобразит в узле "Базы данных". В нем представлены пользовательские, а не системные базы данных.
Name Status Size Space Recovery Compat. Owner
Available Model Level
---- ------ ---- ---------- -------- ------- -----
AdventureWorks2022 Normal 209.63 MB 1.31 MB Simple 130 sa
AdventureWorksDW2022 Normal 167.00 MB 32.47 MB Simple 110 sa
AdventureWorksDW2022 Normal 188.00 MB 78.10 MB Simple 120 sa
AdventureWorksDW2022 Normal 172.00 MB 74.76 MB Simple 130 sa
AdventureWorksDW2022 Normal 208.00 MB 40.57 MB Simple 140 sa
Чтобы просмотреть все базы данных в вашем экземпляре, можно использовать командлет Get-SqlDatabase.
Проверка журналов ошибок 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
При необходимости можно заменить переменную $serverInstance
IP-адресом или именем узла вашего экземпляра SQL Server.
# Prompt for instance & credentials to login into SQL Server
$serverInstance = Read-Host "Enter the name of your instance"
$credential = Get-Credential
# Retrieve error logs since yesterday
Get-SqlErrorLog -ServerInstance $serverInstance -Credential $credential -Since Yesterday | Out-GridView
# done