

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SQL Server 診断 Support スクリプト
<a name="CHAP_SupportScripts.SQLServer"></a>

以下は、 AWS DMS 移行設定でオンプレミスまたは Amazon RDS for SQL Server データベースを分析するために使用できる診断サポートスクリプトの説明です。これらのスクリプトは、ソース エンドポイントまたはターゲット エンドポイントで使用できます。オンプレミス データベースの場合は、sqlcmd コマンドライン ユーティリティでこれらのスクリプトを実行します。ユーティリティの使用方法の詳細については、Microsoft ドキュメントの「[sqlcmd-ユーティリティを使用する](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 データベースの両方で、SQL Server データベースへの `SysAdmin` ロールなしのアクセスに使用するのと同じアクセス許可を使用できます。

**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) を使用してパスワード認証する `on-prem-user` など新しい SQL Server アカウントを作成します。

1. SSMS の **[User Mappings]** セクションで、**MSDB** および **MASTER** データベース (公開許可を付与します) を選択し、スクリプトを実行するデータベースに `DB_OWNER` ロールを割り当てます。

1. 新しいアカウントのコンテキストメニュー (右クリック) を開き、**[Security]** (セキュリティ) を選択して `Connect SQL` 権限を明示的に付与します。

1. 以下の付与コマンドを実行します。

   ```
   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) を使用してパスワード認証する `rds-user` など新しい SQL Server アカウントを作成します。

1. SSMS の **[ユーザーマッピング]** セクションで、**[MSDB]** データベース (パブリックアクセス権限を付与) を選択して、スクリプトを実行するデータベースに `DB_OWNER` ロールを割り当てます。

1. 新しいアカウントのコンテキストメニュー (右クリック) を開き、**[Security]** (セキュリティ) を選択して `Connect SQL` 権限を明示的に付与します。

1. 以下の付与コマンドを実行します。

   ```
   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)」をご参照ください。