

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

# 에서 진단 지원 스크립트 작업 AWS DMS
<a name="CHAP_SupportScripts"></a>

작업 시 문제가 발생하면 AWS DMS지원 엔지니어가 소스 또는 대상 데이터베이스에 대한 추가 정보가 필요할 수 있습니다. AWS Support는 가능한 한 짧은 시간 내에 필요한 정보를 최대한 많이 확보하고자 합니다. 따라서 여러 주요 관계형 데이터베이스 엔진에서 이러한 정보를 쿼리하는 스크립트를 개발했습니다.

지원 스크립트를 데이터베이스에 사용할 수 있는 경우, 아래에 설명된 해당 스크립트 주제의 링크를 사용하여 이를 다운로드할 수 있습니다. 스크립트를 확인하고 검토한 후(아래 설명 참조), 스크립트 주제에 설명된 프로시저에 따라 스크립트를 실행할 수 있습니다. 스크립트 실행이 완료되면 출력을 AWS 지원 사례(다시 설명)에 업로드할 수 있습니다.

스크립트를 실행하기 전에, 지원 스크립트를 다운로드하거나 저장할 때 발생했을 가능성이 있는 오류를 감지할 수 있습니다. 이렇게 하려면 스크립트 파일의 체크섬을에서 제공한 값과 비교합니다 AWS.는 체크섬에 SHA256 알고리즘을 AWS 사용합니다.

**체크섬을 사용하여 지원 스크립트 파일을 확인하려면**

1. 제공된 최신 체크섬 파일을 열어 [https://d2pwp9zz55emqw.cloudfront.net/sha256Check.txt](https://d2pwp9zz55emqw.cloudfront.net/sha256Check.txt)에서 이러한 지원 스크립트를 확인합니다. 예를 들어, 파일에 아래와 같은 내용이 포함되어 있을 수 있습니다.

   ```
   MYSQL  dfafd0d511477c699f96c64693ad0b1547d47e74d5c5f2f2025b790b1422e3c8
   ORACLE  6c41ebcfc99518cfa8a10cb2ce8943b153b2cc7049117183d0b5de3d551bc312
   POSTGRES  6ccd274863d14f6f3146fbdbbba43f2d8d4c6a4c25380d7b41c71883aa4f9790
   SQL_SERVER  971a6f2c46aec8d083d2b3b6549b1e9990af3a15fe4b922e319f4fdd358debe7
   ```

1. 지원 파일이 포함된 디렉터리에서 운영 체제의 SHA256 검증 명령을 실행합니다. 예를 들어, macOS 운영 체제에서는 이 주제의 뒷부분에 설명된 Oracle 지원 스크립트에서 아래의 명령을 실행할 수 있습니다.

   ```
   shasum -a 256 awsdms_support_collector_oracle.sql
   ```

1. 명령 결과를 최근에 열어본 `sha256Check.txt` 파일에 표시된 값과 비교합니다. 두 값이 일치해야 합니다. 일치하지 않을 경우, 지원 엔지니어에게 불일치하는 부분을 이야기하고 깨끗한 지원 스크립트 파일을 얻을 수 있는 방법을 문의합니다.

깨끗한 지원 스크립트 파일을 보유한 경우, 스크립트를 실행하기 전에 성능 및 보안 측면에서 SQL을 읽고 이해해야 합니다. 이 스크립트에서 SQL을 실행하는 것이 마음에 걸릴 경우 문제의 SQL을 주석 처리하거나 제거할 수 있습니다. 지원 엔지니어에게 적절한 해결 방법을 문의할 수도 있습니다.

스크립트가 성공적으로 완료되고 달리 명시되지 않는 한, 스크립트는 읽기 가능한 HTML 형식으로 출력을 반환합니다. 스크립트는 업무에 영향을 미칠 수 있는 모든 데이터 또는 보안 세부 정보를 이 HTML에서 제외하도록 설계되었습니다. 또한 스크립트는 데이터베이스나 해당 환경을 수정하지 않습니다. 하지만 HTML에서 공유하기에 부적합한 정보를 발견한 경우, HTML을 업로드하기 전에 문제의 정보를 얼마든지 제거해도 됩니다. HTML이 허용되는 경우, 지원 사례의 **사례 세부 정보**에 있는 **첨부 파일**을 사용하여 업로드합니다.

다음 각 주제에서는 지원되는 AWS DMS 데이터베이스에 사용할 수 있는 스크립트와 이를 실행하는 방법을 설명합니다. 지원 엔지니어가 아래에 설명된 특정 스크립트를 안내합니다.

**Topics**
+ [Oracle 진단 지원 스크립트](CHAP_SupportScripts.Oracle.md)
+ [SQL Server 진단 지원 스크립트](CHAP_SupportScripts.SQLServer.md)
+ [MySQL 호환 데이터베이스용 진단 지원 스크립트](CHAP_SupportScripts.MySQL.md)
+ [PostgreSQL 진단 지원 스크립트](CHAP_SupportScripts.PostgreSQL.md)

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

다음은 AWS DMS 마이그레이션 구성에서 온프레미스 또는 Amazon RDS for Oracle 데이터베이스를 분석하는 데 사용할 수 있는 진단 지원 스크립트입니다. 이러한 스크립트는 소스 또는 대상 엔드포인트에서 작동합니다. 스크립트는 모두 SQL\$1Plus 명령줄 유틸리티에서 실행하도록 작성되었습니다. 이 유틸리티 사용에 대한 자세한 내용은 Oracle 설명서의 [A Using SQL Command Line](https://docs.oracle.com/cd/B25329_01/doc/appdev.102/b25108/xedev_sqlplus.htm)을 참조하세요.

스크립트를 실행하기 전에, 사용하려는 사용자 계정에 Oracle 데이터베이스에 액세스하는 데 필요한 권한이 있는지 확인합니다. 표시된 권한 설정에서는 다음과 같이 사용자를 생성한 것으로 가정합니다.

```
CREATE USER script_user IDENTIFIED BY password;
```

온프레미스 데이터베이스의 경우, 다음과 같이 `script_user`에 대한 최소 권한을 설정합니다.

```
GRANT CREATE SESSION TO script_user;
GRANT SELECT on V$DATABASE to script_user;
GRANT SELECT on V$VERSION to script_user;
GRANT SELECT on GV$SGA to script_user;
GRANT SELECT on GV$INSTANCE to script_user;
GRANT SELECT on GV$DATAGUARD_CONFIG to script_user;
GRANT SELECT on GV$LOG to script_user;
GRANT SELECT on DBA_TABLESPACES to script_user;
GRANT SELECT on DBA_DATA_FILES to script_user;
GRANT SELECT on DBA_SEGMENTS to script_user;
GRANT SELECT on DBA_LOBS to script_user;
GRANT SELECT on V$ARCHIVED_LOG to script_user;
GRANT SELECT on DBA_TAB_MODIFICATIONS to script_user;
GRANT SELECT on DBA_TABLES to script_user;
GRANT SELECT on DBA_TAB_PARTITIONS to script_user;
GRANT SELECT on DBA_MVIEWS to script_user;
GRANT SELECT on DBA_OBJECTS to script_user;
GRANT SELECT on DBA_TAB_COLUMNS to script_user;
GRANT SELECT on DBA_LOG_GROUPS to script_user;
GRANT SELECT on DBA_LOG_GROUP_COLUMNS to script_user;
GRANT SELECT on V$ARCHIVE_DEST to script_user;
GRANT SELECT on DBA_SYS_PRIVS to script_user;
GRANT SELECT on DBA_TAB_PRIVS to script_user;
GRANT SELECT on DBA_TYPES to script_user;
GRANT SELECT on DBA_CONSTRAINTS to script_user;
GRANT SELECT on V$TRANSACTION to script_user;
GRANT SELECT on GV$ASM_DISK_STAT to script_user;
GRANT SELECT on GV$SESSION to script_user;
GRANT SELECT on GV$SQL to script_user;
GRANT SELECT on DBA_ENCRYPTED_COLUMNS to script_user;
GRANT SELECT on DBA_PDBS to script_user;

GRANT EXECUTE on dbms_utility to script_user;
```

Amazon RDS 데이터베이스의 경우, 다음과 같이 최소 권한을 설정합니다.

```
GRANT CREATE SESSION TO script_user;
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$VERSION','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$SGA','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$INSTANCE','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$DATAGUARD_CONFIG','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$LOG','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLESPACES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DATA_FILES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_SEGMENTS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_LOBS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_MODIFICATIONS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TABLES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_PARTITIONS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_MVIEWS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_LOG_GROUPS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_LOG_GROUP_COLUMNS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVE_DEST','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_SYS_PRIVS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_PRIVS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TYPES','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_CONSTRAINTS','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$ASM_DISK_STAT','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('GV_$SQL','script_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ENCRYPTED_COLUMNS','script_user','SELECT');

exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_PDBS','script_user','SELECT');

exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY','script_user','EXECUTE');
```

아래에는 Oracle에서 사용할 수 있는 각 SQL\$1Plus 지원 스크립트를 다운로드, 검토, 실행하는 방법에 대한 설명이 나와 있습니다. 출력을 검토하고 이를 AWS Support 사례에 업로드하는 방법도 참조할 수 있습니다.

**Topics**
+ [awsdms\$1support\$1collector\$1oracle.sql 스크립트](#CHAP_SupportScripts.Oracle.Awsdms_Support_Collector_Oracle_Script)

## awsdms\$1support\$1collector\$1oracle.sql 스크립트
<a name="CHAP_SupportScripts.Oracle.Awsdms_Support_Collector_Oracle_Script"></a>

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

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

**스크립트를 실행하고 결과를 지원 사례에 업로드하려면**

1. 아래의 SQL\$1Plus 명령줄을 사용하여 데이터베이스 환경에서 스크립트를 실행합니다.

   ```
   SQL> @awsdms_support_collector_oracle.sql
   ```

   스크립트에 간단한 설명이 표시되며, 실행을 계속할지 중단할지 묻는 프롬프트가 표시됩니다. [Enter] 키를 눌러 계속 진행합니다.

1. 다음에 나오는 프롬프트에서 마이그레이션할 스키마 중 하나의 이름만 입력합니다.

1. 다음에 나오는 프롬프트에서 데이터베이스에 연결하기 위해 정의한 사용자 이름(*script\$1user*)을 입력합니다.

1. 다음에 나오는 프롬프트에서 검사할 데이터의 일수를 입력하거나, 기본값을 수락합니다. 이렇게 하면 스크립트가 데이터베이스에서 지정된 데이터를 수집합니다.

   스크립트가 완료되면 출력 HTML 파일의 이름(예: `dms_support_oracle-2020-06-22-13-20-39-ORCL.html`)이 표시됩니다. 스크립트는 이 파일을 작업 디렉터리에 저장합니다.

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

# 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) 섹션을 참조하세요.

# MySQL 호환 데이터베이스용 진단 지원 스크립트
<a name="CHAP_SupportScripts.MySQL"></a>

다음은 AWS DMS 마이그레이션 구성에서 온프레미스 또는 Amazon RDS for MySQL 호환 데이터베이스를 분석하는 데 사용할 수 있는 진단 지원 스크립트입니다. 이러한 스크립트는 소스 또는 대상 엔드포인트에서 작동합니다. 스크립트는 모두 MySQL SQL 명령줄 유틸리티에서 실행하도록 작성되었습니다.

MySQL 클라이언트 설치에 대한 자세한 내용은 MySQL 설명서의 [Installing MySQL Shell](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html) 섹션을 참조하세요. MySQL 클라이언트 사용에 대한 자세한 내용은 MySQL 설명서의 [Using MySQL Shell Commands](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-configuring.html) 섹션을 참조하세요.

스크립트를 실행하기 전에, 사용하려는 사용자 계정에 MySQL 호환 데이터베이스에 액세스하는 데 필요한 권한이 있는지 확인합니다. 아래의 절차를 사용하여 사용자 계정을 생성하고, 이 스크립트를 실행하는 데 필요한 최소 권한을 제공합니다.

**이러한 스크립트를 실행할 수 있는 최소 권한으로 사용자 계정을 설정하려면**

1. 스크립트를 실행할 사용자를 생성합니다.

   ```
   create user 'username'@'hostname' identified by password;
   ```

1. 데이터베이스에서 `select` 명령을 부여하여 데이터베이스를 분석합니다.

   ```
   grant select on database-name.* to username;
   grant replication client on *.* to username;
   ```

1. 

   ```
   grant execute on procedure mysql.rds_show_configuration to username;
   ```

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

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

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

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

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

명령줄을 사용하여 데이터베이스 환경에 연결한 후 스크립트를 실행합니다.

**이 스크립트를 실행하고 결과를 지원 사례에 업로드하려면**

1. 아래의 `mysql` 명령을 사용하여 데이터베이스에 연결합니다.

   ```
   mysql -p -h hostname -P port -u username database-name
   ```

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

   ```
   source awsdms_support_collector_MySQL.sql
   ```

   생성된 보고서를 검토하고, 공유하기에 부적합한 정보는 모두 제거합니다. 내용을 공유해도 괜찮다면 AWS Support 사례에 파일을 업로드합니다. 이 파일 업로드에 대한 자세한 내용은 [에서 진단 지원 스크립트 작업 AWS DMS](CHAP_SupportScripts.md) 섹션을 참조하세요.

**참고**  
[MySQL 호환 데이터베이스용 진단 지원 스크립트](#CHAP_SupportScripts.MySQL)에 설명된 필수 권한을 보유한 사용자 계정이 이미 있는 경우, 기존 사용자 계정을 사용하여 스크립트를 실행할 수도 있습니다.
스크립트를 실행하기 전에 데이터베이스에 연결해야 합니다.
스크립트는 텍스트 형식으로 출력을 생성합니다.
보안 모범 사례를 고려한다면, 이 MySQL 진단 지원 스크립트를 실행하기 위한 용도로만 새 사용자 계정을 생성할 경우 스크립트를 실행한 후에는 이 사용자 계정을 삭제하는 것이 좋습니다.

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

다음은 AWS DMS 마이그레이션 구성에서 PostgreSQL RDBMS(온프레미스, Amazon RDS 또는 Aurora PostgreSQL)를 분석하는 데 사용할 수 있는 진단 지원 스크립트입니다. 이러한 스크립트는 소스 또는 대상 엔드포인트에서 작동합니다. 스크립트는 모두 psql 명령줄 유틸리티에서 실행하도록 작성되었습니다.

이러한 스크립트를 실행하기 전에, 사용하려는 사용자 계정에 PostgreSQL RDBMS에 액세스하는 데 필요한 다음과 같은 권한이 있는지 확인합니다.
+ PostgreSQL 10.x 이상 버전 – `pg_catalog.pg_ls_waldir` 함수에 대한 실행 권한이 있는 사용자 계정. 
+ PostgreSQL 9.x 이전 버전 – 기본 권한이 있는 사용자 계정.

이러한 스크립트를 실행하려면 적절한 권한이 있는 기존 계정을 사용하는 것이 좋습니다.

새 사용자 계정을 생성하거나 기존 계정에 이러한 스크립트를 실행할 수 있는 권한을 부여해야 하는 경우, PostgreSQL 버전을 기반으로 하는 모든 PostgreSQL RDBMS에 대해 다음과 같은 SQL 명령을 실행할 수 있습니다.

**PostgreSQL 데이터베이스 버전 10.x 이상에서 이러한 스크립트를 실행할 수 있는 권한을 계정에 부여하려면**
+ 다음 중 하나를 수행하세요.
  + 새 사용자 계정의 경우 다음을 실행합니다.

    ```
    CREATE USER script_user WITH PASSWORD 'password';
    GRANT EXECUTE ON FUNCTION pg_catalog.pg_ls_waldir TO script_user;
    ```
  + 새 사용자 계정의 경우 다음을 실행합니다.

    ```
    GRANT EXECUTE ON FUNCTION pg_catalog.pg_ls_waldir TO script_user;
    ```

**PostgreSQL 9.x 이하 버전의 데이터베이스에서 이러한 스크립트를 실행할 수 있는 권한을 계정에 부여하려면**
+ 다음 중 하나를 수행하세요.
  + 새 사용자 계정의 경우 기본 권한으로 다음을 실행합니다.

    ```
    CREATE USER script_user WITH PASSWORD password;
    ```
  + 기존 사용자 계정의 경우 기존 권한을 사용합니다.

**참고**  
이러한 스크립트는 PostgreSQL 9.x 이하 버전 데이터베이스의 WAL 크기 확인과 관련된 특정 기능을 지원하지 않습니다. 자세한 내용은 AWS Support에 문의하세요.

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

**Topics**
+ [awsdms\$1support\$1collector\$1postgres.sql 스크립트](#CHAP_SupportScripts.PostgreSQL.Awsdms_Support_Collector_PostgreSQL_Script)

## awsdms\$1support\$1collector\$1postgres.sql 스크립트
<a name="CHAP_SupportScripts.PostgreSQL.Awsdms_Support_Collector_PostgreSQL_Script"></a>

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

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

**참고**  
psql 클라이언트 버전 10 이상에서 이 스크립트를 실행할 수 있습니다.

다음 절차에 따라 데이터베이스 환경 또는 명령줄에서 이 스크립트를 실행할 수 있습니다. 둘 중 어떤 경우든 나중에 AWS Support에 파일을 업로드할 수 있습니다.

**이 스크립트를 실행하고 결과를 지원 사례에 업로드하려면**

1. 다음 중 하나를 수행하세요.
   + 아래의 psql 명령줄을 사용하여 데이터베이스 환경에서 스크립트를 실행합니다.

     ```
     dbname=# \i awsdms_support_collector_postgres.sql
     ```

     다음에 나오는 프롬프트에서 마이그레이션할 스키마 중 하나의 이름만 입력합니다.

     다음에 나오는 프롬프트에서 데이터베이스에 연결하기 위해 정의한 사용자 이름(`script_user`)을 입력합니다.
   + 명령줄에서 직접 아래의 스크립트를 실행합니다. 이 옵션을 사용하면 스크립트 실행 전에 프롬프트가 표시되지 않습니다.

     ```
     psql -h database-hostname -p port -U script_user -d database-name -f awsdms_support_collector_postgres.sql
     ```

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