Partilhar via


Usar o PowerShell no Windows para gerenciar o SQL Server no Linux

Aplica-se a:SQL Server em Linux

Este artigo apresenta SQL Server PowerShell e orienta você por alguns exemplos sobre como usá-lo com o SQL Server no Linux. O suporte do PowerShell para SQL Server está atualmente disponível no Windows, macOS e Linux. Este artigo orienta você pelo uso de uma máquina Windows para se conectar a uma instância remota do SQL Server no Linux.

Instalar a versão mais recente do SQL PowerShell no Windows

O módulo 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 PowerShell.

Antes de começar

Consulte os Problemas conhecidos do SQL Server no Linux.

Inicie o PowerShell e importe o módulo sqlserver

Vamos começar iniciando o PowerShell no Windows. Use Win+R, em seu 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 (SQL Server Provider e cmdlets) para um ambiente ou script do PowerShell.

Copie e cole o seguinte comando no prompt do PowerShell para importar o módulo SqlServer para sua 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 deve 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 no Linux e exibir algumas propriedades do servidor.

Copie e cole os seguintes comandos no prompt do PowerShell. Quando você executa esses comandos, o PowerShell irá:

  • Exibir uma caixa de diálogo que solicita o nome do host ou o endereço IP da instância
  • Exiba a caixa de diálogo solicitação de credenciais do Windows PowerShell, que solicita as credenciais. Você pode usar o seu nome de usuário SQL e a sua senha SQL para se conectar à sua instância do SQL Server no Linux.
  • Utilize o cmdlet Get-SqlInstance para se conectar ao servidor e exibir várias propriedades.

Opcionalmente, você pode simplesmente substituir a variável $serverInstance pelo endereço IP ou pelo nome do host da sua 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 deve 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 de destino do SQL Server provavelmente falhará. Certifique-se de que você pode usar as mesmas informações de conexão para se conectar a partir do SQL Server Management Studio. Em seguida, revise as recomendações de solução de problemas de conexão .

Usar o provedor do SQL Server PowerShell

Outra opção para se conectar à sua instância do SQL Server é usar o SQL Server PowerShell Provider. Este provedor permite que o utilizador navegue pela instância do SQL Server de maneira semelhante a estar a navegar na estrutura de árvore no Pesquisador de Objetos, mas na linha de comandos. Por padrão, esse provedor é apresentado como um PSDrive chamado SQLSERVER:\, que você pode usar para se conectar e navegar pelas instâncias do SQL Server às quais sua conta de domínio tem acesso. Para obter mais informações sobre como configurar a autenticação do Ative Directory para o SQL Server no Linux, consulte Etapas de configuração.

Você também pode usar a autenticação SQL com o Provedor do SQL Server PowerShell. Para fazer isso, use o cmdlet New-PSDrive para criar um novo PSDrive e fornecer as credenciais adequadas 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 que a unidade foi criada executando o cmdlet Get-PSDrive.

Get-PSDrive

Depois de criar o seu novo PSDrive, pode começar a navegar nele.

dir SQLonDocker:\Databases

Veja como a saída pode ficar. Pode notar que a saída é semelhante à que o SQL Server Management Studio (SSMS) apresenta no nó de Bases de Dados. Ele exibe os bancos de dados de usuários, 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 em sua instância, uma opção é usar o cmdlet Get-SqlDatabase.

Examinar os logs de erro do SQL Server

As etapas a seguir usam o PowerShell no Windows para examinar os logs de erro na sua instância do SQL Server no Linux. Também usaremos o cmdlet Out-GridView para mostrar informações dos registos de erro numa exibição de grade.

Copie e cole os seguintes comandos no prompt do PowerShell. Eles podem levar alguns minutos para correr. Esses comandos fazem o seguinte:

  • Exibir uma caixa de diálogo que solicita o nome do host ou o endereço IP da instância
  • Exiba a caixa de diálogo solicitação de credenciais do Windows PowerShell, que solicita as credenciais. Você pode usar o seu nome de usuário SQL e a sua senha SQL para se conectar à sua instância do SQL Server no Linux.
  • Use o cmdlet Get-SqlErrorLog para se conectar à instância do SQL Server no Linux e recuperar logs de erro desde Ontem
  • Canalizar 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 sua 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