마이그레이션 평가용 PowerShell cmdlet

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

cmdlet Save-SqlMigrationReport 은 SQL Server 데이터베이스에서 여러 개체의 마이그레이션 적합도를 평가하는 도구입니다.

현재 이 cmdlet은 메모리 내 OLTP에 대한 마이그레이션 적합성 평가로 제한됩니다. 이 cmdlet은 관리자 권한 Windows PowerShell 환경과 sqlps에서 모두 실행할 수 있습니다.

이 PowerShell cmdlet을 직접 실행하는 대신 SSMS(SQL Server Management Studio)를 사용하여 cmdlet을 암시적으로 실행할 수 있습니다. SSMS 개체 탐색기에서 테이블을 마우스 오른쪽 단추로 클릭한 다음 메모리 최적화 관리자를 클릭할 수 있습니다.

구문

Save-SqlMigrationReport
    -FolderPath <output_path>
    [ -MigrationType <migration_scenario_type> ]
    [
        [ -Server <server_name> -Database <database_name>
            [ -Schema <schema_name> ] [ -Object <object_name> ]
        ]
       |
        [ -InputObject <smo_object> ]
    ]
;

매개 변수

다음 표에서는 매개 변수에 대해 설명합니다.

구문과 관련하여 주의 사항이 있습니다. -InputObject 매개 변수를 지정하는 경우 다음 매개 변수를 지정할 수 없습니다.

  • -Server
  • -Database
  • -Schema
  • -Object

반대로, 지정하지 않으면 지정 -InputObject-Server 해야 합니다.-Database 지정 -Server하는 경우 둘 중 하나 -Schema 또는 -Object둘 다를 지정하여 범위를 좁힐 수 있습니다.

매개 변수 이름 설명
데이터베이스 대상 SQL Server 데이터베이스의 이름입니다. 필수인 경우 -Server 필수입니다.

SQLPS의 선택 사항입니다.
FolderPath cmdlet이 생성된 보고서를 저장해야 하는 폴더입니다.

필수.
InputObject cmdlet의 대상으로 지정해야 하는 SMO 개체입니다.

제공되지 않은 경우 -Server Windows Powershell 환경에서 필수입니다.

SQLPS의 선택 사항입니다.
MigrationType cmdlet의 대상인 마이그레이션 시나리오의 유형입니다. 현재 유일한 값은 기본 'OLTP'입니다.

선택 사항.
Object 보고할 개체의 이름입니다. 테이블 또는 저장 프로시저일 수 있습니다.
Password -Username이 필요한 경우 필요합니다.
스키마 보고할 개체를 소유하는 스키마의 이름입니다.

선택 사항.
Server 대상 SQL Server 인스턴스의 이름입니다. 매개 변수가 제공되지 않은 경우 -InputObject Windows Powershell 환경에서 필수입니다.

SQLPS의 선택 사항입니다.
Username Windows 인증이 아닌 SQL Server 인증을 통해 연결할 때 필요합니다. 이 외에는 생략됩니다.

전제 조건

이 cmdlet을 실행하려면 먼저 SqlServer라는 모듈을 설치해야 합니다.

  • Install-Module -Name SqlServer

참고 항목

이전 SQLPS 모듈은 더 이상 유지되지 않습니다. 최신 모듈을 SqlServer 사용합니다.

자세한 내용은 SQL Server PowerShell 모듈 설치를 참조 하세요.

예제 cmdlet 줄

다음은 이 문서의 뒷부분에 표시되는 보고서를 생성하기 위해 실행된 실제 cmdlet 줄입니다.

Save-SqlMigrationReport `
  -FolderPath 'C:\Test\PowerShell-ps1\Save-SqlMigrationReport\' `
  -Server 'MyUserName123456.database.windows.net' `
  -Database 'MyDatabaseName_31' `
  -Schema 'dbo' `
  -Object 'Table2' `
  -Username 'MyUserName' `
  -Password 'MyPassword' `
  -MigrationType 'OLTP' `
;

예제 출력 보고서

매개 변수에 -FolderPath 지정된 폴더 아래에는 이 cmdlet을 실행하여 다음 두 개의 폴더 경로가 만들어집니다. 두 경로 모두 server_name 값으로 시작합니다.

  • MyDatabaseName_31\Tables\
  • MyDatabaseName_31\Stored Procedures\

각 개체 보고서 파일은 해당 폴더 아래에 저장됩니다.

보고서 파일 이름에는 확장 명이 .html입니다. 예를 들어 실제 생성된 파일 이름은 MigrationAdvisorChecklistReport_Table2_20190728.html입니다.

HTML은 주로 다음과 같은 헤더가 있는 2열 테이블입니다.

  • 설명
  • 유효성 검사 결과

다음은 한 테이블에 대한 HTML 보고서의 실제 예제입니다.

<?xml version="1.0" encoding="utf-8"?>
<html>
  <head>
    <title>Memory optimization checklist for [MyDatabaseName_31].[Table2]</title>
  </head>
  <body>
    <p STYLE="font-family: Verdana, Arial, sans-serif; font-size: 14pt;">
      <b>Memory optimization checklist for [MyDatabaseName_31].[Table2]</b>
    </p>
    <p STYLE="font-family: Verdana, Arial, sans-serif; font-size: 10pt;">
      <b>Report Date/Time:</b>7/28/2019 2:25 PM<br /></p>
    <table border="1" cellpadding="5" cellspacing="0" STYLE="font-family: Verdana, Arial, sans-serif; font-size: 9pt;">
      <tr style="background-color:Silver">
        <th colspan="2" align="center">Description</th>
        <th align="center">Validation Result</th>
      </tr>
      <tr valign="top">
        <td colspan="2">No unsupported data types are defined on this table. </td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top" style="background-color:LightYellow">
        <td colspan="2">No sparse columns are defined for this table.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top">
        <td colspan="2">No identity columns with unsupported seed and increment are defined for this table.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top" style="background-color:LightYellow">
        <td colspan="2">No foreign key relationships are defined on this table.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top">
        <td colspan="2">No unsupported constraints are defined on this table.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top" style="background-color:LightYellow">
        <td colspan="2">No unsupported indexes are defined on this table.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top">
        <td colspan="2">No unsupported triggers are defined on this table.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top" style="background-color:LightYellow">
        <td colspan="2">Post migration row size does not exceed the row size limit of memory-optimized tables.</td>
        <td>Succeeded</td>
      </tr>
      <tr valign="top">
        <td colspan="2">Table is not partitioned or replicated.</td>
        <td>Succeeded</td>
      </tr>
    </table>
  </body>
</html>

그리고 그 다음은 테이블의 모양에 대한 대략적인 정보입니다.

설명 유효성 검사 결과
이 테이블에 지원되지 않는 데이터 형식이 정의되지 않았습니다. 성공함
이 테이블에 스파스 열이 정의되지 않았습니다. 성공함
지원되지 않는 시드 및 증가가 있는 ID 열은 이 테이블에 대해 정의되지 않습니다. 성공함
이 테이블에는 외래 키 관계가 정의되어 있지 않습니다. 성공함
이 테이블에는 지원되지 않는 제약 조건이 정의되어 있지 않습니다. 성공함
이 테이블에는 지원되지 않는 인덱스가 정의되어 있지 않습니다. 성공함
이 테이블에는 지원되지 않는 트리거가 정의되어 있지 않습니다. 성공함
마이그레이션 후 행 크기는 메모리 최적화 테이블의 행 크기 제한을 초과하지 않습니다. 성공함
테이블이 분할 또는 복제되지 않았습니다. 성공함