

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SQL Server 진단 지원 스크립트
<a name="CHAP_SupportScripts.SQLServer"></a>

다음은 AWS DMS 마이그레이션 구성에서 온프레미스 또는 Amazon RDS for SQL Server 데이터베이스를 분석하는 데 사용할 수 있는 진단 지원 스크립트에 대한 설명입니다. 이러한 스크립트는 소스 또는 대상 엔드포인트에서 작동합니다. 온프레미스 데이터베이스의 경우, sqlcmd 명령줄 유틸리티에서 이러한 스크립트를 실행합니다. 이 유틸리티 사용에 대한 자세한 내용은 Microsoft 설명서의 [sqlcmd - Use the utility](https://docs.microsoft.com/en-us/sql/ssms/scripting/sqlcmd-use-the-utility?view=sql-server-ver15) 섹션을 참조하세요.

Amazon RDS 데이터베이스의 경우에는 sqlcmd 명령줄 유틸리티를 사용하여 연결할 수 없습니다. 대신 Amazon RDS SQL Server에 연결되는 클라이언트 도구를 사용하여 이러한 스크립트를 실행합니다.

스크립트를 실행하기 전에, 사용하려는 사용자 계정에 SQL Server 데이터베이스에 액세스하는 데 필요한 권한이 있는지 확인합니다. 온프레미스 및 Amazon RDS 데이터베이스의 경우, `SysAdmin` 역할 없이도 SQL Server 데이터베이스에 액세스할 때 사용하는 것과 동일한 권한을 사용할 수 있습니다.

**Topics**
+ [온프레미스 SQL Server 데이터베이스에 대한 최소 권한 설정](#CHAP_SupportScripts.SQLServer.onprem)
+ [Amazon RDS SQL Server 데이터베이스에 대한 최소 권한 설정](#CHAP_SupportScripts.SQLServer.rds)
+ [SQL Server 지원 스크립트](#CHAP_SupportScripts.SQLServer.Scripts)

## 온프레미스 SQL Server 데이터베이스에 대한 최소 권한 설정
<a name="CHAP_SupportScripts.SQLServer.onprem"></a>

**온프레미스 SQL Server 데이터베이스를 실행하기 위한 최소 권한을 설정하려면**

1. SQL Server Management Studio(SSMS)를 사용하여 암호 인증이 있는 새 SQL Server 계정을 생성합니다(예: `on-prem-user`).

1. SSMS의 **사용자 매핑** 섹션에서 **MSDB** 및 **MASTER** 데이터베이스(공용 권한 제공)를 선택하고, 스크립트를 실행할 데이터베이스에 `DB_OWNER` 역할을 할당합니다.

1. 새 계정의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고, **보안**을 선택한 후 명시적으로 `Connect SQL` 권한을 부여합니다.

1. 아래의 grant 명령을 실행합니다.

   ```
   GRANT VIEW SERVER STATE TO on-prem-user;
   USE MSDB;
   GRANT SELECT ON MSDB.DBO.BACKUPSET TO on-prem-user;
   GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO on-prem-user;
   GRANT SELECT ON MSDB.DBO.BACKUPFILE TO on-prem-user;
   ```

## Amazon RDS SQL Server 데이터베이스에 대한 최소 권한 설정
<a name="CHAP_SupportScripts.SQLServer.rds"></a>

**Amazon RDS SQL Server 데이터베이스에 대한 최소 권한으로 실행하려면**

1. SQL Server Management Studio(SSMS)를 사용하여 암호 인증이 있는 새 SQL Server 계정을 생성합니다(예: `rds-user`).

1. SSMS의 **사용자 매핑** 섹션에서 **MSDB** 데이터베이스(공용 권한 제공)를 선택하고, 스크립트를 실행할 데이터베이스에 `DB_OWNER` 역할을 할당합니다.

1. 새 계정의 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고, **보안**을 선택한 후 명시적으로 `Connect SQL` 권한을 부여합니다.

1. 아래의 grant 명령을 실행합니다.

   ```
   GRANT VIEW SERVER STATE TO rds-user;
   USE MSDB;
   GRANT SELECT ON MSDB.DBO.BACKUPSET TO rds-user;
   GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO rds-user;
   GRANT SELECT ON MSDB.DBO.BACKUPFILE TO rds-user;
   ```

## SQL Server 지원 스크립트
<a name="CHAP_SupportScripts.SQLServer.Scripts"></a>

다음 주제에서는 SQL Server에 사용할 수 있는 각 지원 스크립트를 다운로드, 검토, 실행하는 방법을 설명합니다. 스크립트 출력을 검토하고 이를 AWS Support 사례에 업로드하는 방법도 설명합니다.

**Topics**
+ [awsdms\$1support\$1collector\$1sql\$1server.sql 스크립트](#CHAP_SupportScripts.SQLServer.Awsdms_Support_Collector_SQLServer_Script)

### awsdms\$1support\$1collector\$1sql\$1server.sql 스크립트
<a name="CHAP_SupportScripts.SQLServer.Awsdms_Support_Collector_SQLServer_Script"></a>

[https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_sql_server.sql](https://d2pwp9zz55emqw.cloudfront.net/scripts/awsdms_support_collector_sql_server.sql) 스크립트를 다운로드합니다.

**참고**  
이 SQL Server 진단 지원 스크립트는 SQL Server 2014 이상 버전에서만 실행합니다.

이 스크립트는 SQL Server 데이터베이스 구성에 대한 정보를 수집합니다. 스크립트의 체크섬을 반드시 확인하고, 체크섬이 확인되면 스크립트의 SQL 코드를 검토하여 실행하기에 부적합한 코드는 모두 주석 처리합니다. 스크립트의 무결성 및 내용에 만족한다면 스크립트를 실행해도 됩니다.

**온프레미스 SQL Server 데이터베이스용 스크립트를 실행하려면**

1. 아래의 sqlcmd 명령줄을 사용하여 스크립트를 실행합니다.

   ```
   sqlcmd -Uon-prem-user -Ppassword -SDMS-SQL17AG-N1 -y 0 
   -iC:\Users\admin\awsdms_support_collector_sql_server.sql -oC:\Users\admin\DMS_Support_Report_SQLServer.html -dsqlserverdb01
   ```

   지정된 sqlcmd 명령 파라미터에는 다음 내용이 포함됩니다.
   + `-U` – 데이터베이스 사용자 이름.
   + `-P` – 데이터베이스 사용자 암호.
   + `-S` – SQL Server 데이터베이스 서버 이름.
   + `-y` – sqlcmd 유틸리티의 최대 출력 열 너비. 값이 0이면 너비가 무제한인 열이 지정됩니다.
   + `-i` – 실행할 지원 스크립트의 경로(이 경우 `awsdms_support_collector_sql_server.sql`).
   + `-o` – 수집된 데이터베이스 구성 정보가 포함된 출력 HTML 파일의 경로(지정한 파일 이름 포함).
   + `-d` – SQL Server 데이터베이스 이름.

1. 스크립트가 완료되면 출력 HTML 파일을 검토하고, 공유하기에 부적합한 정보는 모두 제거합니다. HTML을 공유할 수 있는 경우 AWS 지원 사례에 파일을 업로드합니다. 이 파일 업로드에 대한 자세한 내용은 [에서 진단 지원 스크립트 작업 AWS DMS](CHAP_SupportScripts.md) 섹션을 참조하세요.

Amazon RDS for SQL Server에서는 sqlcmd 명령줄 유틸리티를 사용하여 연결할 수 없으므로, 다음 프로시저를 사용합니다.

**온프레미스 RDS SQL Server 데이터베이스용 스크립트를 실행하려면**

1. RDS SQL Server에 `Master` 사용자로 연결하고 출력을 HTML 파일로 저장할 수 있는 클라이언트 도구를 사용하여 스크립트를 실행합니다.

1. 출력 HTML 파일을 검토하고, 공유하기에 부적합한 정보는 모두 제거합니다. HTML을 공유할 수 있는 경우 AWS 지원 사례에 파일을 업로드합니다. 이 파일 업로드에 대한 자세한 내용은 [에서 진단 지원 스크립트 작업 AWS DMS](CHAP_SupportScripts.md) 섹션을 참조하세요.