Utilizzo di PowerShell in Windows per la gestione di SQL Server in LinuxUse PowerShell on Windows to Manage SQL Server on Linux

QUESTO ARGOMENTO SI APPLICA A: noSQL Server su WindowssìSQL Server su LinuxnoDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Questo argomento vengono presentate SQL Server PowerShell e illustra alcuni esempi su come utilizzarlo con 2017 di SQL Server in Linux.This topic introduces SQL Server PowerShell and walks you through a couple of examples on how to use it with SQL Server 2017 on Linux. Supporto di PowerShell per SQL Server è attualmente disponibile in Windows, pertanto è possibile utilizzare quando si dispone di un computer Windows in grado di connettersi a un'istanza remota di SQL Server in Linux.PowerShell support for SQL Server is currently available on Windows, so you can use it when you have a Windows machine that can connect to a remote SQL Server instance on Linux.

Installare la versione più recente di SQL PowerShell in WindowsInstall the newest version of SQL PowerShell on Windows

SQL PowerShell in Windows è incluso con SQL Server Management Studio (SSMS).SQL PowerShell on Windows is included with SQL Server Management Studio (SSMS). Quando si utilizza SQL Server, è necessario utilizzare sempre la versione più recente di SQL Server Management Studio e SQL PowerShell.When working with SQL Server, you should always use the most recent version of SSMS and SQL PowerShell. La versione più recente di SQL Server Management Studio viene aggiornata continuamente, ottimizzazione e attualmente funziona con SQL Server Linux su 2017.The latest version of SSMS is continually updated and optimized and currently works with SQL Server 2017 on Linux. Per scaricare e installare la versione più recente, vedere scaricare SQL Server Management Studio.To download and install the latest version, see Download SQL Server Management Studio. Per rimanere aggiornati, la versione più recente di SSMS chiede di quando è disponibile una nuova versione disponibile per il download.To stay up-to-date, the latest version of SSMS prompts you when there is a new version available to download.

Operazioni preliminariBefore you begin

Lettura di problemi noti per SQL Server, 2017 in Linux.Read the Known Issues for SQL Server 2017 on Linux.

Avviare PowerShell e importare il sqlserver moduloLaunch PowerShell and import the sqlserver module

Per iniziare, l'avvio di PowerShell in Windows.Let's start by launching PowerShell on Windows. Aprire un prompt dei comandi nel computer Windows e digitare PowerShell per avviare una nuova sessione di Windows PowerShell.Open a command prompt on your Windows computer, and type PowerShell to launch a new Windows PowerShell session.

PowerShell

SQL Server fornisce un modulo di Windows PowerShell denominato SqlServer che è possibile utilizzare per importare i componenti di SQL Server (provider di SQL Server e i cmdlet) in un ambiente di PowerShell o script.SQL Server provides a Windows PowerShell module named SqlServer that you can use to import the SQL Server components (SQL Server provider and cmdlets) into a PowerShell environment or script.

Copiare e incollare il comando seguente al prompt di PowerShell per importare il SqlServer modulo nella sessione corrente di PowerShell:Copy and paste the command below at the PowerShell prompt to import the SqlServer module into your current PowerShell session:

Import-Module SqlServer

Digitare il comando seguente al prompt di PowerShell per verificare che il SqlServer modulo è stato importato correttamente:Type the command below at the PowerShell prompt to verify that the SqlServer module was imported correctly:

Get-Module -Name SqlServer

PowerShell deve visualizzare informazioni simili a quelle descritte di seguito:PowerShell should display information similar to what's below:

ModuleType Version    Name          ExportedCommands
---------- -------    ----          ----------------
Script     0.0        SqlServer
Manifest   20.0       SqlServer     {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupList...

Connettersi a SQL Server e ottenere informazioni sul serverConnect to SQL Server and get server information

Utilizziamo PowerShell in Windows per connettersi all'istanza di SQL Server 2017 su Linux e visualizzare un paio di proprietà del server.Let's use PowerShell on Windows to connect to your SQL Server 2017 instance on Linux and display a couple of server properties.

Copiare e incollare i seguenti comandi al prompt di PowerShell.Copy and paste the commands below at the PowerShell prompt. Quando si eseguono questi comandi, verrà PowerShell:When you run these commands, PowerShell will:

  • Visualizzazione di richiesta delle credenziali di Windows PowerShell finestra di dialogo in cui vengono richieste le credenziali (nome utente SQL e password SQL) a cui connettersi il 2017 di SQL Server istanza in LinuxDisplay the Windows PowerShell credential request dialog that prompts you for the credentials (SQL username and SQL password) to connect to your SQL Server 2017 instance on Linux
  • Caricare l'assembly di SQL Server Management Objects (SMO)Load the SQL Server Management Objects (SMO) assembly
  • Creare un'istanza di Server oggettoCreate an instance of the Server object
  • Connettere il Server e visualizzare alcune proprietàConnect to the Server and display a few properties

Ricordarsi di sostituire <your_server_instance> con l'indirizzo IP o il nome host dell'istanza di SQL Server 2017 in Linux.Remember to replace <your_server_instance> with the IP address or the hostname of your SQL Server 2017 instance on Linux.

# Prompt for credentials to login into SQL Server
$serverInstance = "<your_server_instance>"
$credential = Get-Credential

# Load the SMO assembly and create a Server object
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$server = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $serverInstance

# Set credentials
$server.ConnectionContext.LoginSecure=$false
$server.ConnectionContext.set_Login($credential.UserName)
$server.ConnectionContext.set_SecurePassword($credential.Password)

# Connect to the Server and get a few properties
$server.Information | Select-Object Edition, HostPlatform, HostDistribution | Format-List
# done

PowerShell deve visualizzare informazioni simili a quello mostrato di seguito:PowerShell should display information similar to what's shown below:

Edition          : Developer Edition (64-bit)
HostPlatform     : Linux
HostDistribution : Ubuntu

Nota

Se viene visualizzato nulla per questi valori, molto probabilmente la connessione all'istanza di SQL Server di destinazione non riuscita.If nothing is displayed for these values, the connection to the target SQL Server instance most likely failed. Assicurarsi che è possibile utilizzare le stesse informazioni di connessione per la connessione da SQL Server Management Studio.Make sure that you can use the same connection information to connect from SQL Server Management Studio. Rivedere poi i consigli per la risoluzione dei problemi di connessione.Then review the connection troubleshooting recommendations.

Esaminare i log degli errori di SQL ServerExamine SQL Server error logs

Si usa PowerShell in Windows per esaminare i log degli errori connect nell'istanza SQL Server 2017 in Linux.Let's use PowerShell on Windows to examine error logs connect on your SQL Server 2017 instance on Linux. Si utilizzerà inoltre la Out-GridView registra cmdlet per visualizzare le informazioni dell'errore in una visualizzazione griglia.We will also use the Out-GridView cmdlet to show information from the error logs in a grid view display.

Copiare e incollare i seguenti comandi al prompt di PowerShell.Copy and paste the commands below at the PowerShell prompt. Si potrebbero richiedere alcuni minuti per l'esecuzione.They might take a few minutes to run. Questi comandi, eseguire le operazioni seguenti:These commands do the following:

  • Visualizzazione di richiesta delle credenziali di Windows PowerShell finestra di dialogo in cui vengono richieste le credenziali (nome utente SQL e password SQL) a cui connettersi il 2017 di SQL Server istanza in LinuxDisplay the Windows PowerShell credential request dialog that prompts you for the credentials (SQL username and SQL password) to connect to your SQL Server 2017 instance on Linux
  • Utilizzare il Get SqlErrorLog per connettersi all'istanza di SQL Server 2017 su Linux e recuperare l'errore registra dal ieriUse the Get-SqlErrorLog cmdlet to connect to the SQL Server 2017 instance on Linux and retrieve error logs since Yesterday
  • Reindirizzare l'output di Out-GridView cmdletPipe the output to the Out-GridView cmdlet

Ricordarsi di sostituire <your_server_instance> con l'indirizzo IP o il nome host dell'istanza di SQL Server 2017 in Linux.Remember to replace <your_server_instance> with the IP address or the hostname of your SQL Server 2017 instance on Linux.

# Prompt for credentials to login into SQL Server
$serverInstance = "<your_server_instance>"
$credential = Get-Credential

# Retrieve error logs since yesterday
Get-SqlErrorLog -ServerInstance $serverInstance -Credential $credential -Since Yesterday | Out-GridView
# done

Vedere ancheSee also