Usar o PowerShell no Windows para gerenciar o SQL Server no Linux
Aplica-se a: SQL Server – Linux
Este artigo apresenta o SQL Server PowerShell e descreve alguns exemplos de como usá-lo com o SQL Server em Linux. O suporte do PowerShell para SQL Server está atualmente disponível no Windows, macOS e Linux. Este artigo explica como usar um computador Windows para se conectar a uma Instância remota do SQL Server em Linux.
Instalar a última versão do SQL PowerShell no Windows
O módulo do SQL Server PowerShell no Windows é mantido na Galeria do PowerShell. Ao trabalhar com o SQL Server, você sempre deve usar a versão mais recente do módulo SqlServer do PowerShell.
Antes de começar
Leia os Problemas conhecidos do SQL Server em Linux.
Iniciar o PowerShell e importar o módulo sqlserver
Vamos começar iniciando o PowerShell no Windows. Use Win+R no computador Windows e digite PowerShell para iniciar uma nova sessão do Windows PowerShell.
O SQL Server fornece um módulo do PowerShell chamado SqlServer. Você pode usar o módulo SqlServer para importar os componentes do SQL Server (provedor e cmdlets do SQL Server) para um ambiente ou um script do PowerShell.
Copie e cole o seguinte comando no prompt do PowerShell para importar o módulo SqlServer para a sessão atual do PowerShell:
Import-Module SqlServer
Digite o seguinte comando no prompt do PowerShell para verificar se o módulo SqlServer foi importado corretamente:
Get-Module -Name SqlServer
O PowerShell deverá exibir informações semelhantes à seguinte saída:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18102 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...
Conectar-se ao SQL Server e obter informações do servidor
Vamos usar o PowerShell no Windows para se conectar à sua Instância do SQL Server em Linux e exibir algumas propriedades de servidor.
Copie e cole os comandos a seguir no prompt do PowerShell. Quando você executar esses comandos, o PowerShell:
- Exibem uma caixa de diálogo que solicita o nome do host ou o endereço IP de sua instância
- Exibem a caixa de diálogo de solicitação de credenciais do Windows PowerShell, que solicitará as credenciais. É possível usar o nome de usuário do SQL e a senha do SQL para se conectar à sua instância do SQL Server em Linux
- Usará o cmdlet Get-SqlInstance para se conectar ao Servidor e exibir algumas propriedades
Opcionalmente, você pode simplesmente substituir a variável $serverInstance
pelo endereço IP ou pelo nome do host da Instância do 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
O PowerShell deverá exibir informações semelhantes à seguinte saída:
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
your_server_instance 14.0.3048 RTM CU13 Linux Ubuntu
Observação
Se nada for exibido para esses valores, a conexão com a Instância do SQL Server de destino provavelmente terá falhado. Verifique se você pode usar as mesmas informações de conexão para se conectar no SQL Server Management Studio. Em seguida, examine as recomendações de solução de problemas de conexão.
Usar o provedor do SQL Server PowerShell.
Outra opção para se conectar à Instância do SQL Server é usar o Provedor do SQL Server PowerShell. Esse provedor permite que você navegue pela Instância do SQL Server de forma semelhante a como se estivesse navegando pela estrutura de árvore do Pesquisador de Objetos, mas na cmdline. Por padrão, esse provedor é apresentado como um PSDrive chamado SQLSERVER:\
, que você poderá usar para se conectar às instâncias do SQL Server às quais sua conta de domínio tem acesso e navegar por elas. Para obter mais informações sobre como configurar a autenticação do Active Directory para o SQL Server no Linux, confira Etapas de configuração.
Use também a autenticação SQL com o Provedor SQL Server PowerShell. Para fazer isso, use o cmdlet New-PSDrive
para criar um novo PSDrive e forneça as credenciais apropriadas para se conectar.
Neste exemplo abaixo, você verá um exemplo de como criar um novo PSDrive usando a autenticação 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
Você pode confirmar se a unidade foi criada executando o cmdlet Get-PSDrive
.
Get-PSDrive
Depois de criar seu novo PSDrive, você pode começar a navegar.
dir SQLonDocker:\Databases
Esta é a aparência da saída. Você pode notar que a saída é semelhante ao que o SQL Server Management Studio (SSMS) exibirá no nó Bancos de dados. Ele exibe os bancos de dados de usuário, mas não os bancos de dados do sistema.
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
Se você precisar ver todos os bancos de dados da instância, uma opção será usar o cmdlet Get-SqlDatabase.
Examinar os logs de erros do SQL Server
As etapas a seguir usam o PowerShell no Windows para examinar os logs de erros e se conectar à sua Instância do SQL Server em Linux. Também usaremos o cmdlet Out-GridView para mostrar informações dos logs de erros em uma exibição de grade.
Copie e cole os comandos a seguir no prompt do PowerShell. Pode levar alguns minutos para que eles sejam executados. Esses comandos fazem o seguinte:
- Exibem uma caixa de diálogo que solicita o nome do host ou o endereço IP de sua instância
- Exibem a caixa de diálogo de solicitação de credenciais do Windows PowerShell, que solicitará as credenciais. É possível usar o nome de usuário do SQL e a senha do SQL para se conectar à sua instância do SQL Server em Linux
- Usam o cmdlet Get-SqlErrorLog para se conectar à Instância do SQL Server em Linux e recuperar os logs de erros desde Ontem
- Direcionam a saída para o cmdlet Out-GridView
Opcionalmente, você pode substituir a variável $serverInstance
pelo endereço IP ou pelo nome do host da Instância do 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