Windows PowerShell을 사용 하 여 Linux에서 SQL Server 관리Use PowerShell on Windows to Manage SQL Server on Linux

이 항목은 다음에 적용됩니다. 아니요Windows의 SQL Server예Linux의 SQL Server아니요Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

이 항목에서는 소개 SQL Server PowerShell 과정을 안내 하는 몇 가지 예 SQL Server 2017 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. PowerShell SQL Server에 대 한 지원은 windows에서 현재 사용할 수 있는 Linux에서 원격 SQL Server 인스턴스에 연결할 수 있는 Windows 컴퓨터에 있는 경우에 사용할 수 있도록 합니다.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.

Windows에서 최신 버전의 SQL PowerShell 설치Install the newest version of SQL PowerShell on Windows

SQL PowerShell windows에 포함 된 SQL Server Management Studio (SSMS)합니다.SQL PowerShell on Windows is included with SQL Server Management Studio (SSMS). SQL Server를 사용할 때는 가장 최신 버전의 SSMS 및 SQL PowerShell를 항상 사용 해야 합니다.When working with SQL Server, you should always use the most recent version of SSMS and SQL PowerShell. 최신 버전의 SSMS 지속적으로 업데이트 되 고 최적화 된와 현재 SQL Server on 2017 Linux 합니다.The latest version of SSMS is continually updated and optimized and currently works with SQL Server 2017 on Linux. 참조를 다운로드 하 여 최신 버전을 설치 하려면 SQL Server Management Studio 다운로드합니다.To download and install the latest version, see Download SQL Server Management Studio. 최신 상태로 유지, 최신 버전의 SSMS 묻는 메시지를 다운로드 하는 새 버전이 있는 경우.To stay up-to-date, the latest version of SSMS prompts you when there is a new version available to download.

시작하기 전 주의 사항Before you begin

읽기는 알려진 문제 for SQL Server 2017 Linux.Read the Known Issues for SQL Server 2017 on Linux.

PowerShell을 시작 하 고 가져올는 sqlserver 모듈Launch PowerShell and import the sqlserver module

Windows에서 PowerShell을 시작 하 여 시작 하겠습니다.Let's start by launching PowerShell on Windows. 열기는 명령 프롬프트 입력 하 여 Windows 컴퓨터에서 PowerShell 새 Windows PowerShell 세션을 시작 합니다.Open a command prompt on your Windows computer, and type PowerShell to launch a new Windows PowerShell session.

PowerShell

라는 Windows PowerShell 모듈을 제공 하는 SQL Server SqlServer PowerShell 환경 또는 스크립트로 (SQL Server 공급자 및 cmdlet) SQL Server 구성 요소를 가져오는 데 사용할 수 있습니다.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.

가져올 PowerShell 프롬프트에서 아래 명령을 복사한는 SqlServer 현재 PowerShell 세션에 모듈:Copy and paste the command below at the PowerShell prompt to import the SqlServer module into your current PowerShell session:

Import-Module SqlServer

아래 명령을 입력 하는 중인지 확인 하려면 PowerShell 프롬프트는 SqlServer 모듈을 올바르게 가져왔는지를:Type the command below at the PowerShell prompt to verify that the SqlServer module was imported correctly:

Get-Module -Name SqlServer

PowerShell과 유사한 아래 정보를 표시 되어야 합니다.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...

SQL Server에 연결 하 고 서버 정보 가져오기Connect to SQL Server and get server information

SQL Server 2017 Linux에서 인스턴스에 연결의 서버 속성을 표시 하 windows PowerShell을 사용 하겠습니다.Let's use PowerShell on Windows to connect to your SQL Server 2017 instance on Linux and display a couple of server properties.

복사한 PowerShell 프롬프트에서 다음 명령을 붙여 넣습니다.Copy and paste the commands below at the PowerShell prompt. 이러한 명령을 실행할 때 PowerShell 수행 합니다.When you run these commands, PowerShell will:

  • 표시는 Windows PowerShell 자격 증명 요청 자격 증명을 묻는 대화 상자 (SQL 사용자 이름SQL 암호) SQL Server 2017 연결할 Linux에서 인스턴스Display 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
  • SQL Server 관리 개체 (SMO) 어셈블리를 로드 합니다.Load the SQL Server Management Objects (SMO) assembly
  • 인스턴스를 만들고는 서버 개체Create an instance of the Server object
  • 에 연결 된 서버 몇 가지 속성을 표시 하 고Connect to the Server and display a few properties

대체 <your_server_instance> Linux에서 SQL Server 2017 인스턴스의 호스트 이름 또는 IP 주소입니다.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에는 아래에 표시 되는 내용을 유사한 정보가 표시 되어야 합니다.PowerShell should display information similar to what's shown below:

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

참고

이러한 값에 대해 아무 항목도 표시 하는 경우 대상 SQL Server 인스턴스에 대 한 연결 가장 실패할 수 있습니다.If nothing is displayed for these values, the connection to the target SQL Server instance most likely failed. SQL Server Management Studio에서 연결 하려면 동일한 연결 정보를 사용할 수 있는지 확인 합니다.Make sure that you can use the same connection information to connect from SQL Server Management Studio. 그런 다음 connection troubleshooting recommendations(연결 문제 해결 권장 사항)를 검토합니다.Then review the connection troubleshooting recommendations.

SQL Server 오류 로그를 검사 합니다.Examine SQL Server error logs

이제 오류 로그를 검사 하는 Windows에서 PowerShell을 사용 하 여 Linux에서 SQL Server 2017 인스턴스에 연결 합니다.Let's use PowerShell on Windows to examine error logs connect on your SQL Server 2017 instance on Linux. 또한 사용 합니다는 Out-gridview cmdlet에서 오류 정보를 표시할 그리드 뷰 디스플레이에 기록 합니다.We will also use the Out-GridView cmdlet to show information from the error logs in a grid view display.

복사한 PowerShell 프롬프트에서 다음 명령을 붙여 넣습니다.Copy and paste the commands below at the PowerShell prompt. 실행 하는 데 몇 분 정도 걸릴 수 있습니다.They might take a few minutes to run. 이 명령은 다음을 수행 합니다.These commands do the following:

  • 표시는 Windows PowerShell 자격 증명 요청 자격 증명을 묻는 대화 상자 (SQL 사용자 이름SQL 암호) SQL Server 2017 연결할 Linux에서 인스턴스Display 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
  • 사용 하 여는 Get SqlErrorLog cmdlet의 SQL Server 2017 Linux 인스턴스에 연결 하 고 오류를 검색할 이후 로그 어제Use the Get-SqlErrorLog cmdlet to connect to the SQL Server 2017 instance on Linux and retrieve error logs since Yesterday
  • 출력을 파이프는 Out-gridview cmdletPipe the output to the Out-GridView cmdlet

대체 <your_server_instance> Linux에서 SQL Server 2017 인스턴스의 호스트 이름 또는 IP 주소입니다.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

참고 항목See also