のソースとしての Microsoft SQL Server データベースの使用 AWS DMS - AWS データベース移行サービス

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

のソースとしての Microsoft SQL Server データベースの使用 AWS DMS

を使用して、1 つ以上の Microsoft SQL Server データベースからデータを移行します AWS DMS。SQL サーバーデータベースをソースとして、別のSQLサーバーデータベース、または他の AWS DMS サポートされているデータベースのいずれかにデータを移行できます。

がソースとして AWS DMS サポートする SQL Server のバージョンについては、「」を参照してくださいのソース AWS DMS

ソースSQLサーバーデータベースは、ネットワーク内の任意のコンピュータにインストールできます。で使用するには、選択したタスクのタイプに応じてソースデータベースへの適切なアクセス権限を持つSQLサーバーアカウントが必要です AWS DMS。詳細については、「SQL サーバータスクのアクセス許可」を参照してください。

AWS DMS は、 SQL Server の名前付きインスタンスからのデータの移行をサポートします。ソースエンドポイントを作成するとき、サーバー名では次の表記を使用できます。

IPAddress\InstanceName

たとえば、正しいソースエンドポイントサーバー名を以下に示します。ここで、名前の最初の部分はサーバーの IP アドレスで、2 番目の部分はSQLサーバーインスタンス名 (この例では ) ですSQLTest。

10.0.0.25\SQLTest

また、サーバーの名前付きインスタンスがSQLリッスンするポート番号を取得し、それを使用して AWS DMS ソースエンドポイントを設定します。

注記

Microsoft SQL Server のデフォルトはポート 1433 です。ただし、SQLサーバーが起動するたびに変化する動的ポートや、ファイアウォール経由でSQLサーバーに接続するために使用する特定の静的ポート番号もよく使用されます。したがって、 AWS DMS ソースエンドポイントを作成するときに、SQLサーバーの名前付きインスタンスの実際のポート番号を知りたいとします。

を使用してSSL、SQLサーバーエンドポイントとレプリケーションインスタンス間の接続を暗号化できます。サーバーエンドポイントSSLで を使用する方法の詳細については、SQL「」を参照してくださいでの SSL の使用 AWS Database Migration Service

サーバーSQLデータベースからの継続的な移行CDCに を使用できます。のソースSQLサーバーデータベースの設定についてはCDC、「」を参照してくださいSQL サーバーからの継続的なレプリケーションのためのデータ変更のキャプチャ

SQL Server ソースデータベースと の操作の詳細については AWS DMS、以下を参照してください。

のソースとしての SQL Server の使用に関する制限 AWS DMS

Server SQL データベースを のソースとして使用する場合は、次の制限が適用されます AWS DMS。

  • 列のアイデンティティプロパティは、ターゲットデータベース列に移行されません。

  • SQL サーバーエンドポイントは、スパース列を持つテーブルの使用をサポートしていません。

  • Windows 認証はサポートされていません。

  • SQL サーバー内の計算フィールドへの変更はレプリケートされません。

  • 一時テーブルはサポートされていません。

  • SQL サーバーパーティションの切り替えはサポートされていません。

  • WRITETEXT および UPDATETEXTユーティリティを使用する場合、ソースデータベースに適用されたイベントはキャプチャ AWS DMS されません。

  • 次のデータ操作言語 (DML) パターンはサポートされていません。

    SELECT * INTO new_table FROM existing_table
  • SQL Server をソースとして使用する場合、列レベルの暗号化はサポートされていません。

  • AWS DMS は、ソースとしての SQL Server 2008 または Server 2008 R2 でのSQLサーバーレベルの監査をサポートしていません。これは、SQLServer 2008 および 2008 R2 の既知の問題が原因です。例えば、次のコマンドを実行すると、 は失敗 AWS DMS します。

    USE [master] GO ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on) GO
  • Server をソースSQLとして使用する場合、ジオメトリ列はフルロブモードではサポートされていません。代わりに、制限付き LOB モードを使用するか、インライン LOB モードを使用するように InlineLobMaxSize タスク設定を行います。

  • レプリケーションタスクで Microsoft SQL Server ソースデータベースを使用する場合、タスクを削除しても SQL Server Replication Publisher 定義は削除されません。Microsoft SQL Server システム管理者は、Microsoft SQL Server からこれらの定義を削除する必要があります。

  • スキーマバインドおよび non-schema-bound ビューからのデータの移行は、全ロードのみのタスクでサポートされています。

  • sp_rename を使用したテーブルの名前の変更はサポートされていません (たとえば、sp_rename 'Sales.SalesRegion', 'SalesReg;))。

  • sp_rename を使用した列の名前の変更はサポートされていません (たとえば、sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';)。

  • AWS DMS では、列のデフォルト値を設定および設定解除する変更処理はサポートされていません ( ALTER TABLE ステートメントで ALTER COLUMN SET DEFAULT句を使用)。

  • AWS DMS は、列の nullability を設定する変更処理をサポートしていません ( ALTER COLUMN [SET|DROP] NOT NULL句を ALTER TABLEステートメントで使用)。

  • SQL Server 2012 および SQL Server 2014 では、可用性グループでDMSレプリケーションを使用する場合、ディストリビューションデータベースを可用性グループに配置することはできません。SQL 2016 では、マージ、双方向、または peer-to-peer レプリケーショントポロジで使用されるディストリビューションデータベースを除き、ディストリビューションデータベースを可用性グループに配置することができます。

  • パーティションテーブル AWS DMS の場合、パーティションごとに異なるデータ圧縮設定をサポートしていません。

  • SQL サーバー空間データ型 (GEOGRAPHY および GEOMETRY) に値を挿入するときは、空間参照システム識別子 (SRID) プロパティを無視するか、別の数値を指定できます。空間データ型のテーブルをレプリケートする場合、 SRIDは をデフォルト SRID ( の場合は 0、 の場合は GEOMETRY 4326) AWS DMS に置き換えますGEOGRAPHY。

  • データベースが MS-REPLICATION または MS- 用に設定されていない場合でもCDC、プライマリキーを持たないテーブルをキャプチャすることはできますが、INSERT/DELETE DMLイベントのみがキャプチャされます。UPDATE および TRUNCATETABLEイベントは無視されます。

  • Columnstore インデックスはサポートされていません。

  • メモリ最適化テーブル (メモリ内 を使用OLTP) はサポートされていません。

  • 複数の列で構成されるプライマリ キーを持つテーブルをレプリケーションする場合、全ロード中にプライマリ キー列の更新はサポートされません。

  • 遅延永続化はサポートされていません。

  • readBackupOnly=Y エンドポイント設定 (追加の接続属性) は、 がバックアップRDSを実行する方法のため、SQLサーバーソースインスタンスRDSでは機能しません。

  • EXCLUSIVE_AUTOMATIC_TRUNCATION は Amazon RDS SQL Server ソースインスタンスでは機能しません。これは、RDSユーザーが SQL Server ストアドプロシージャ を実行するためのアクセス権がないためですsp_repldone

  • AWS DMS は切り捨てコマンドをキャプチャしません。

  • AWS DMS は、高速データベース復旧 (ADR) が有効になっているデータベースからのレプリケーションをサポートしていません。

  • AWS DMS は、単一のトランザクション内のデータ定義言語 (DDL) およびデータ操作言語 (DML) ステートメントのキャプチャをサポートしていません。

  • AWS DMS は、データ層アプリケーションパッケージ () のレプリケーションをサポートしていませんDACPAC。

  • UPDATE プライマリキーまたは一意のインデックスを含む ステートメントで、複数のデータ行を更新すると、ターゲットデータベースに変更を適用するときに競合が発生する可能性があります。これは、例えば、ターゲットデータベースが 1 つのDELETEステートメントではなく、 INSERTおよび UPDATEステートメントとして更新を適用する場合に発生する可能性があります。バッチ最適化の適用モードでは、テーブルが無視されることがあります。トランザクション適用モードでは、 UPDATEオペレーションによって制約違反が発生する可能性があります。この問題を回避するには、関連するテーブルをもう一度ロードします。または、例外の適用コントロールテーブル (dmslogs.awsdms_apply_exceptions) で問題のあるレコードを検出して、ターゲットデータベースで手動で編集することもできます。詳細については、「変更処理のチューニング設定」を参照してください。

  • AWS DMS では、テーブルとスキーマのレプリケーションはサポートされていません。この名前には、次のセットの特殊文字が含まれます。

    \\ -- \n \" \b \r ' \t ;

  • データマスキングはサポートされていません。 は、マスキングなしでマスクされたデータを AWS DMS 移行します。

  • AWS DMS は、プライマリキーを持つテーブルを最大 32,767 個、テーブルごとに最大 1,000 個の列をレプリケートします。これは、 がレプリケートされたテーブルごとにSQLサーバーレプリケーション記事 AWS DMS を作成し、SQLサーバーレプリケーション記事にはこれらの制限があるためです。

  • 変更データキャプチャ (CDC) を使用する場合は、一意のインデックスを構成するすべての列を として定義する必要がありますNOT NULL。この要件が満たされない場合、SQLサーバーシステムエラー 22838 が発生します。

  • SQL サーバーがアクティブなトランザクションログからバックアップログにアーカイブしたり、アクティブなトランザクションログからイベントを切り捨てたりすると、イベントが失われる可能性があります。

バックアップトランザクションログにアクセスするときには、次の制限が適用されます。

  • 暗号化バックアップはサポートされていません。

  • URL または Windows Azure に保存されているバックアップはサポートされていません。

  • AWS DMS は、代替共有フォルダからのファイルレベルでのトランザクションログのバックアップの直接処理をサポートしていません。

  • Amazon RDS for Microsoft SQL Server 以外の Cloud SQL Server ソースの場合、 はアクティブなトランザクションログでのみ継続的なレプリケーション (CDC) AWS DMS をサポートします。バックアップログを で使用することはできませんCDC。SQL サーバーがアクティブなトランザクションログからバックアップログにアーカイブしたり、 がDMS読み取る前にアクティブなトランザクションログからイベントを切り捨てたりすると、イベントが失われる可能性があります。

  • Amazon RDS for Microsoft SQL Server ソースの場合、 は でバックアップログにアクセスできないため、 AWS DMS 3.5.2 以前DMSはアクティブなトランザクションログのみを含む継続的なレプリケーション (CDC) をサポートしていますCDC。for RDS SQL Server がアクティブなトランザクションログからバックアップログにアーカイブした場合、または がDMS読み取る前にアクティブなトランザクションログからイベントを切り捨てた場合、イベントが失われる可能性があります。この制限はバージョン 3.5.3 AWS DMS 以降には適用されません。

SQL サーバータスクのアクセス許可

全ロードのみのタスクに対する許可

全ロード専用タスクを実行するには、次の許可が必要です。 AWS DMS はdms_userログインを作成しないことに注意してください。SQL サーバーのログインの作成については、「」を参照してくださいMicrosoft SQL Server でのデータベースユーザーの作成

USE db_name; CREATE USER dms_user FOR LOGIN dms_user; ALTER ROLE [db_datareader] ADD MEMBER dms_user; GRANT VIEW DATABASE STATE to dms_user; GRANT VIEW DEFINITION to dms_user; USE master; GRANT VIEW SERVER STATE TO dms_user;

レプリケーションが進行中のタスクのアクセス許可

セルフマネージドSQLサーバーインスタンスは、 sysadmin ロールを使用するかどうかにかかわらずDMS、 を使用して継続的なレプリケーション用に設定できます。sysadmin ロールを付与できないSQLサーバーインスタンスの場合、DMSユーザーに次のように説明されている権限があることを確認します。

セルフマネージドSQLサーバーデータベースからの継続的なレプリケーションのアクセス許可を設定する
  1. Server Management Studio (SSMS) を使用して、または など全ロードのみのタスクに対する許可、 で前述したように、パスワード認証を使用して新しいSQLサーバーSQLアカウントを作成しますself_managed_user

  2. 次のGRANTコマンドを実行します。

    GRANT VIEW SERVER STATE TO self_managed_user; USE MSDB; GRANT SELECT ON MSDB.DBO.BACKUPSET TO self_managed_user; GRANT SELECT ON MSDB.DBO.BACKUPMEDIAFAMILY TO self_managed_user; GRANT SELECT ON MSDB.DBO.BACKUPFILE TO self_managed_user; USE db_name; CREATE USER self_managed_user FOR LOGIN self_managed_user; ALTER ROLE [db_owner] ADD MEMBER self_managed_user; GRANT VIEW DEFINITION to self_managed_user;
  3. 上記のアクセス許可に加えて、ユーザーには次のいずれかが必要です。

クラウドSQLサーバーデータベースからの継続的なレプリケーションのアクセス許可を設定する

クラウドホストSQLサーバーインスタンスは、Amazon RDS for Microsoft SQL Server、Azure SQLマネージドインスタンス、または でサポートされているその他のマネージドクラウドSQLサーバーインスタンスで実行されるインスタンスですDMS。

Server Management Studio (SSMS) を使用して、または など、 で前述したように全ロードのみのタスクに対する許可、パスワード認証を使用して新しいSQLサーバーSQLアカウントを作成しますrds_user

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

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; USE db_name; CREATE USER rds_user FOR LOGIN rds_user; ALTER ROLE [db_owner] ADD MEMBER rds_user; GRANT VIEW DEFINITION to rds_user;

Amazon RDS for Microsoft SQL Server ソースの場合、DMSバージョン 3.5.3 以降では、トランザクションログのバックアップからの読み取りがサポートされています。DMS がログバックアップにアクセスできるようにするには、上記に加えて、masterユーザー権限を付与するか、RDSSQLサーバーソースで次の権限を付与します。

//DMS 3.5.3 version onwards GRANT EXEC ON msdb.dbo.rds_dms_tlog_download TO rds_user; GRANT EXEC ON msdb.dbo.rds_dms_tlog_read TO rds_user; GRANT EXEC ON msdb.dbo.rds_dms_tlog_list_current_lsn TO rds_user; GRANT EXEC ON msdb.dbo.rds_task_status TO rds_user;

SQL サーバーソースから継続的なレプリケーション (CDC) を使用するための前提条件

オンプレミスまたは Amazon 上のセルフマネージドSQLサーバーデータベース、または Amazon や Microsoft Azure SQLマネージドインスタンスなどのクラウドデータベースにはEC2、継続的なレプリケーション (変更データキャプチャRDS、または CDC) を使用できます。

次の要件は、SQLサーバーデータベースを のソースとして継続的なレプリケーションを使用する場合に特に適用されます AWS DMS。

  • SQL サーバーはフルバックアップ用に設定する必要があり、データのレプリケートを開始する前にバックアップを実行する必要があります。

  • 復旧モデルを [Bulk logged] または [Full] に設定する必要があります。

  • SQL 複数のディスクへのサーバーバックアップはサポートされていません。異なるディスク上の複数のファイルにデータベースバックアップを書き込むようにバックアップが定義されている場合、 AWS DMS はデータを読み取れず、 AWS DMS タスクは失敗します。

  • セルフマネージドSQLサーバーソースの場合、DMSCDCタスクで使用されているソースのSQLサーバーレプリケーションパブリッシャー定義は、タスクを削除しても削除されません。SQL サーバーシステム管理者は、自己管理型ソースのこれらの定義をSQLサーバーから削除する必要があります。

  • ではCDC、変更を読み取るためにSQLサーバートランザクションログのバックアップを検索 AWS DMS する必要があります。 、ネイティブ形式ではないサードパーティー AWS DMS のバックアップソフトウェアを使用して作成されたSQLサーバートランザクションログのバックアップをサポートしていません。ネイティブフォーマットトランザクションログバックアップをサポートするには、サードパーティーのバックアップソフトウェアを使用して作成されている場合は、ソース エンドポイントへの use3rdPartyBackupDevice=Y の接続属性を追加します。

  • 自己管理型SQLサーバーソースの場合、SQLサーバーは新しく作成されたテーブルの変更を公開されるまでキャプチャしないことに注意してください。テーブルがSQLサーバーソースに追加されると、 はパブリケーションの作成 AWS DMS を管理します。ただし、この処理には数分かかることがあります。この遅延中に新たに作成されたテーブルに行われたオペレーションは、ターゲットにキャプチャまたはレプリケーションされません。

  • AWS DMS 変更データキャプチャでは、SQLサーバーで完全なトランザクションログを有効にする必要があります。SQL Server でトランザクションログ記録を有効にするには、MS-REPLICATION または CHANGE DATA CAPTURE () を有効にしますCDC。

  • SQL MS CDCキャプチャジョブがこれらの変更を処理するまで、サーバーログエントリは再利用対象としてマークされません。

  • CDC オペレーションは、メモリ最適化テーブルではサポートされていません。この制限は、SQLServer 2014 (この機能が最初に導入された時点) 以降に適用されます。

  • AWS DMS 変更データキャプチャには、Amazon EC2またはオンプレミスSQLサーバーをソースとするディストリビューションデータベースがデフォルトで必要です。このため、プライマリキーがあるテーブルの MS レプリケーションを設定する際は、ディストリビューターを有効にしていることを確認します。

Server でサポートされている圧縮方法 SQL

でのSQLサーバー圧縮メソッドのサポートについては、次の点に注意してください AWS DMS。

  • AWS DMS は、SQLサーバーバージョン 2008 以降で行/ページ圧縮をサポートします。

  • AWS DMS は Vardecimal ストレージ形式をサポートしていません。

  • AWS DMS は、スパース列と列構造圧縮をサポートしていません。

セルフマネージド型の SQL Server AlwaysOn 可用性グループの使用

SQL Server Always On 可用性グループは、データベースミラーリングのエンタープライズレベルの代替として、高可用性とディザスタリカバリを提供します。

では AWS DMS、1 つのプライマリまたはセカンダリの可用性グループレプリカから変更を移行できます。

プライマリ可用性グループレプリカの使用

プライマリ可用性グループを のソースとして使用するには AWS DMS、次の手順を実行します。
  1. 可用性レプリカ内のすべてのSQLサーバーインスタンスのディストリビューションオプションをオンにします。詳細については、「セルフマネージドSQLサーバーでの継続的なレプリケーションの設定」を参照してください。

  2. AWS DMS コンソールで、SQLサーバーソースデータベース設定を開きます。サーバー名 には、可用性グループリスナー用に設定されたドメインネームサービス (DNS) 名または IP アドレスを指定します。

AWS DMS タスクを初めて開始すると、開始に通常よりも時間がかかる場合があります。このような速度の低下は、テーブルアーティクルの作成が可用性グループサーバーによりレプリケートされるために発生します。

セカンダリ可用性グループレプリカの使用

セカンダリ可用性グループを のソースとして使用するには AWS DMS、次の手順を実行します。
  1. AWS DMS ソースエンドポイントユーザーが使用するものと同じ認証情報を使用して、個々のレプリカに接続します。

  2. AWS DMS レプリケーションインスタンスが既存のすべてのレプリカDNSの名前を解決できることを確認し、それらに接続してください。次のSQLクエリを使用して、すべてのレプリカDNSの名前を取得できます。

    select ar.replica_server_name, ar.endpoint_url from sys.availability_replicas ar JOIN sys.availability_databases_cluster adc ON adc.group_id = ar.group_id AND adc.database_name = '<source_database_name>';
  3. ソースエンドポイントを作成するときは、エンドポイントのサーバーDNS名またはエンドポイントシークレットのサーバーアドレス に可用性グループリスナーの名前を指定します。 可用性グループリスナーの詳細については、SQLサーバードキュメントの「可用性グループリスナーとは」を参照してください。

    パブリックDNSサーバーまたはオンプレミスDNSサーバーのいずれかを使用して、可用性グループリスナー、プライマリレプリカ、およびセカンダリレプリカを解決できます。オンプレミスDNSサーバーを使用するには、Amazon Route 53 Resolver を設定します。詳細については、「 独自のオンプレミスネームサーバーの使用」を参照してください。

  4. 次の追加の接続属性をソースエンドポイントに追加します。

    追加の接続属性 メモ
    applicationIntent ReadOnly ODBC この設定がないと、レプリケーションタスクはプライマリ可用性グループレプリカにルーティングされます。詳細については、SQLサーバードキュメントの「高可用性のサーバーネイティブクライアントサポート」、「ディザスタリカバリ」を参照してください。 SQL
    multiSubnetFailover yes 詳細については、SQLサーバードキュメントの「高可用性のサーバーネイティブクライアントサポート」、「ディザスタリカバリ」を参照してください。 SQL
    alwaysOnSharedSynchedBackupIsEnabled false 詳細については、「のソースとして SQL Server を使用する場合のエンドポイント設定 AWS DMS」を参照してください。
    activateSafeguard false 詳細については、「制限事項」を参照してください。
    setUpMsCdcForTables false 詳細については、「制限事項」を参照してください。
  5. 可用性グループ内のすべてのレプリカでディストリビューションオプションを有効にします。すべてのノードをディストリビューターリストに追加します。詳細については、「ディストリビューションを設定するには」を参照してください。

  6. プライマリ読み取り/書き込みレプリカで次のクエリを実行して、データベースの公開を有効にします。このクエリはデータベースに対して 1 回だけ実行します。

    sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';

制限事項

セカンダリ可用性グループレプリカを使用する場合の制限は次のとおりです。

  • AWS DMS は、読み取り専用の可用性グループレプリカをソースとして使用する場合の Safeguard をサポートしていません。詳細については、「のソースとして SQL Server を使用する場合のエンドポイント設定 AWS DMS」を参照してください。

  • AWS DMS は、読み取り専用の可用性グループレプリカをソースとして使用する場合、setUpMsCdcForTables追加の接続属性をサポートしていません。詳細については、「のソースとして SQL Server を使用する場合のエンドポイント設定 AWS DMS」を参照してください。

  • AWS DMS は、バージョン 3.4.7 以降の継続的なレプリケーション (変更データキャプチャ、または CDC) のソースデータベースとして、セルフマネージドセカンダリ可用性グループレプリカを使用できます。Cloud SQL Server マルチ AZ リードレプリカはサポートされていません。の以前のバージョンを使用する場合は AWS DMS、プライマリ可用性グループレプリカを のソースデータベースとして使用してくださいCDC。

他のノードへのフェイルオーバー

エンドポイントApplicationIntentの追加の接続属性を に設定するとReadOnly、 AWS DMS タスクは読み取り専用ルーティングの優先度が最も高い読み取り専用ノードに接続します。その後、最も優先度の高い読み取り専用ノードが使用できない場合は、可用性グループ内のその他の読み取り専用ノードにフェイルオーバーします。を設定しない場合ApplicationIntent、 AWS DMS タスクは可用性グループのプライマリ (読み取り/書き込み) ノードにのみ接続されます。

のソースとして SQL Server を使用する場合のエンドポイント設定 AWS DMS

エンドポイント設定を使用して、追加の接続属性の使用と同様に、SQLサーバーソースデータベースを設定できます。ソースエンドポイントを作成するときは、 AWS DMS コンソールを使用するか、 で create-endpoint コマンドを使用してAWS CLI--microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'JSON構文で設定を指定します。

次の表は、SQLサーバーをソースとして使用できるエンドポイント設定を示しています。

名前 説明

ActivateSafeguard

この属性は Safeguard をオンまたはオフにする。SafeguardPolicy の詳細については、次を参照。

デフォルト値: true

有効な値: {false, true}

例: '{"ActivateSafeguard": true}'

AlwaysOnSharedSynchedBackupIsEnabled

この属性は、Always On 可用性グループクラスターの一部としてホストされているSQLサーバーソースデータベースから移行 AWS DMS する際の の動作を調整します。

AWS DMS は、Always On クラスターで実行するように設定されたSQLサーバーソースデータベースのサポートを強化しました。この場合、 AWS DMS は、ソースデータベース インスタンスがホストされているノード以外の Always On クラスタ内のノードからトランザクション バックアップが実行されているかどうかを追跡しようとします。移行タスクの起動時に、 はクラスター内の各ノードに接続 AWS DMS しようとしますが、どのノードにも接続できない場合に失敗します。

Always On クラスター内のすべてのノード AWS DMS でトランザクションバックアップをポーリングする必要がある場合は、この属性を に設定しますfalse

デフォルト値: true

有効な値: true または false

例: '{"AlwaysOnSharedSynchedBackupIsEnabled": false}'

"ApplicationIntent": "readonly"

このODBCドライバー属性設定により、SQLサーバーはレプリケーションタスクを最も優先度の高い読み取り専用ノードにルーティングします。この設定がないと、SQLサーバーはレプリケーションタスクをプライマリ読み取り/書き込みノードにルーティングします。

EnableNonSysadminWrapper

sysadmin ユーザーなしでスタンドアロンSQLサーバーで継続的なレプリケーションを設定する場合は、このエンドポイント設定を使用します。このパラメータは、 AWS DMS バージョン 3.4.7 以降でサポートされています。スタンドアロンSQLサーバーでの継続的なレプリケーションの設定については、「」を参照してくださいSQL サーバーからの継続的なレプリケーションのためのデータ変更のキャプチャ

デフォルト値: false

有効な値: truefalse

例: '{"EnableNonSysadminWrapper": true}'

ExecuteTimeout

この追加の接続属性 (ECA) を使用して、SQLサーバーインスタンスのクライアントステートメントのタイムアウトを秒単位で設定します。デフォルト値は 60 秒です。

例: '{"ExecuteTimeout": 100}'

FatalOnSimpleModel

に設定するとtrue、SQLサーバーデータベース復旧モデルが に設定されている場合、この設定は致命的なエラーを生成しますsimple

デフォルト値: false

有効な値: true または false

例: '{"FatalOnSimpleModel": true}'

ForceLobLookup

インライン でLOBルックアップを強制しますLOB。

デフォルト値: false

有効な値: truefalse

例: '{"ForceLobLookup": false}'

"MultiSubnetFailover": "Yes"

このODBCドライバー属性はDMS、可用性グループのフェイルオーバーが発生した場合に新しいプライマリに接続するのに役立ちます。この属性は、接続が切断されているか、リスナーの IP アドレスが正しくない状況向けに設計されています。このような状況では、 AWS DMS はアベイラビリティグループリスナーに関連付けられているすべての IP アドレスに接続しようとします。

ReadBackupOnly

この属性を使用するには、sysadmin 権限が必要です。この属性が に設定されている場合Y、継続的なレプリケーション中には、トランザクションログのバックアップからのみ変更が AWS DMS 読み取られ、アクティブなトランザクションログファイルからは読み取られません。このパラメータを Y に設定すると、完全ロードおよび継続的なレプリケーションタスク中に、アクティブなトランザクションのログファイルの拡張を制御することができます。ただし、これによって継続的なレプリケーションに一部のソースレイテンシーが生じることがあります。

有効な値: N または Y。デフォルト: N

例: '{"ReadBackupOnly": Y}'

注: がバックアップRDSを実行する方法のため、このパラメータは Amazon RDS SQL Server ソースインスタンスでは機能しません。

SafeguardPolicy

最適なパフォーマンスを得るために、 AWS DMS はアクティブなトランザクションログ () から未読の変更をすべてキャプチャしようとしますTLOG。ただし、切り捨てが原因で、アクティブな に未読の変更がすべて含まれていないTLOG場合があります。これが発生すると、 はログバックアップ AWS DMS にアクセスして欠落している変更をキャプチャします。ログバックアップにアクセスする必要性を最小限に抑えるために、 は次のいずれかの方法を使用して切り捨て AWS DMS を防止します。

  1. RELY_ON_SQL_SERVER_REPLICATION_AGENT (データベースでトランザクションを開始する): これは のデフォルトです AWS DMS。

    この設定を使用する場合、 AWS DMS では SQL Server Log Reader Agent が実行されている必要があります。これにより、 はアクティブな からレプリケーション対象としてマークされたトランザクションを移動 AWS DMS できますTLOG。Log Reader Agent が実行されていない場合、アクティブな がいっぱいTLOGになり、問題を解決するまでソースデータベースが読み取り専用モードに切り替わる可能性があることに注意してください。以外の目的でデータベースで Microsoft レプリケーションを有効にする必要がある場合は AWS DMS、この設定を選択する必要があります。

    この設定を使用すると、 は というテーブルを作成してログバックアップの読み取り AWS DMS を最小限に抑えawsdms_truncation_safeguard、データベース内の開いているトランザクションを模倣してTLOG切り捨てるのを防ぎます。これにより、5 分間 (デフォルト)、データベースがイベントを切り捨ててバックアップログに移動することを回避できる。メンテナンスジョブが失敗する可能性があるため、このテーブルがいずれのメンテナンスプランにも含まれていないことを確認する。Start Transactions データベースオプションで設定されたタスクがない場合は、テーブルを削除しても問題ない。

  2. EXCLUSIVE_AUTOMATIC_TRUNCATION (1 つのタスクsp_repldoneで のみを使用): この設定を使用すると、 AWS DMS は、ログエントリを ready for truncationの使用としてマークするレプリケーションエージェントプロセスを完全に制御しますsp_repldone。この設定では、 RELY_ON_SQL_SERVER_REPLICATION_AGENT (デフォルト) 設定のようにダミートランザクションを使用し AWS DMS ません。この設定は、MS レプリケーションがソースデータベース AWS DMS 以外の目的で使用されていない場合にのみ使用できます。また、この設定を使用する場合、データベースにアクセスできる AWS DMS タスクは 1 つだけです。同じデータベースに対して並列 AWS DMS タスクを実行する必要がある場合は、 を使用しますRELY_ON_SQL_SERVER_REPLICATION_AGENT

    • この設定では、データベース内でログリーダーエージェントを停止する必要がある。タスクの開始時に Log Reader Agent が実行されている場合、 AWS DMS タスクは強制的に停止させます。タスクを開始する前にログリーダーエージェントを手動で停止することもできる。

    • MS- でこのメソッドを使用する場合はCDC、MS- キャプチャジョブと MS-CDC CDCクリーンアップジョブを停止および無効にする必要があります。

    • はリモートマシン AWS DMS にアクセスできないため、Microsoft SQL Server Migration ジョブがリモートディストリビューターマシンで実行されている場合、この設定は使用できません。

    • EXCLUSIVE_AUTOMATIC_TRUNCATION は Amazon RDS for SQL Server ソースインスタンスでは機能しません。これは、Amazon RDS ユーザーが sp_repldoneストアドプロシージャを実行するためのアクセス権がないためです。

    • sysadmin ロールを使用せずに SafeguardPolicyEXCLUSIVE_AUTOMATIC_TRUNCATION に設定する場合は、dbo.syscategories オブジェクトと dbo.sysjobs オブジェクトに対するアクセス権限を dmsuser ユーザーに付与する必要がある。

デフォルト値: RELY_ON_SQL_SERVER_REPLICATION_AGENT

有効な値: {EXCLUSIVE_AUTOMATIC_TRUNCATION, RELY_ON_SQL_SERVER_REPLICATION_AGENT}

例: '{"SafeguardPolicy": "EXCLUSIVE_AUTOMATIC_TRUNCATION"}'

SetUpMsCdcForTables

この属性は、ソースデータベースと、MS CDCレプリケーションが有効になっていないタスクマッピング内のテーブルの MS- を有効にします。この値を true に設定すると、ソースデータベースで sp_cdc_enable_db ストアドプロシージャが実行され、ソースデータベースで MS-Replication が有効になっていないタスクの各テーブルで sp_cdc_enable_table ストアドプロシージャが実行される。ディストリビューションの有効化の詳細については、「セルフマネージドSQLサーバーでの継続的なレプリケーションの設定」を参照。

有効な値: {true, false}

例: '{"SetUpMsCdcForTables": true}'

TlogAccessMode

CDC データの取得に使用されるモードを示します。

デフォルト値: PreferTlog

有効な値: BackupOnlyPreferBackupPreferTlogTlogOnly

例: '{"TlogAccessMode": "PreferTlog"}'

Use3rdPartyBackupDevice

この属性がYに設定されている場合, AWS DMS は、サードパーティのトランザクション ログ バックアップがネイティブ形式で作成されている限り処理します。

SQL サーバーのソースデータ型

のソースとして SQL Server を使用するデータ移行は、ほとんどの SQL Server データ型 AWS DMS をサポートします。次の表は、 の使用時にサポートされるSQLサーバーソースデータ型 AWS DMS と、 AWS DMS データ型からのデフォルトのマッピングを示しています。

ターゲットにマッピングされるデータ型を表示する方法については、使用しているターゲットエンドポイントのセクションをご参照ください。

AWS DMS データ型の詳細については、「」を参照してくださいAWS Database Migration Service のデータ型

SQL サーバーデータ型

AWS DMS データ型

BIGINT

INT8

BIT

BOOLEAN

DECIMAL

NUMERIC

INT

INT4

MONEY

NUMERIC

NUMERIC (p,s)

NUMERIC

SMALLINT

INT2

SMALLMONEY

NUMERIC

TINYINT

UINT1

REAL

REAL4

FLOAT

REAL8

DATETIME

DATETIME

DATETIME2 (SQL Server 2008 以降)

DATETIME

SMALLDATETIME

DATETIME

DATE

DATE

TIME

TIME

DATETIMEOFFSET

WSTRING

CHAR

STRING

VARCHAR

STRING

VARCHAR (最大)

CLOB

TEXT

このデータ型を で使用するには AWS DMS、特定のタスクCLOBのデータ型の使用を有効にする必要があります。

Server テーブルの場合、 SQL は Server のLOB列の値を変更しないUPDATEステートメントでもターゲットのLOB列 AWS DMS を更新しますSQL。

中CDC、 はプライマリキーを含むテーブルでのみCLOBデータ型 AWS DMS をサポートします。

NCHAR

WSTRING

NVARCHAR (長さ)

WSTRING

NVARCHAR (最大)

NCLOB

NTEXT

このデータ型を で使用するには AWS DMS、特定のタスク SupportLobs で の使用を有効にする必要があります。Lob サポートの有効化に関する詳細については、AWS DMS タスクでのソースデータベースLOBのサポートの設定 をご参照ください。

Server テーブルの場合、 SQL は Server のLOB列の値を変更しないUPDATEステートメントでもターゲットのLOB列 AWS DMS を更新しますSQL。

中CDC、 はプライマリキーを含むテーブルでのみCLOBデータ型 AWS DMS をサポートします。

BINARY

BYTES

VARBINARY

BYTES

VARBINARY (最大)

BLOB

IMAGE

Server テーブルの場合、 SQL は Server のLOB列の値を変更しないUPDATEステートメントでもターゲットのLOB列 AWS DMS を更新しますSQL。

このデータ型を で使用するには AWS DMS、特定のタスクBLOBのデータ型の使用を有効にする必要があります。

AWS DMS は、プライマリキーを含むテーブルでのみBLOBデータ型をサポートします。

TIMESTAMP

BYTES

UNIQUEIDENTIFIER

STRING

HIERARCHYID

SQL サーバーターゲットエンドポイントにレプリケートHIERARCHYIDするときに を使用します。

他のすべてのターゲットエンドポイントにレプリケートする場合は、 WSTRING (250) を使用します。

XML

NCLOB

Server テーブルの場合、 SQL は Server のLOB列の値を変更しないUPDATEステートメントでもターゲットのLOB列 AWS DMS を更新しますSQL。

このデータ型を で使用するには AWS DMS、特定のタスクNCLOBのデータ型の使用を有効にする必要があります。

中CDC、 はプライマリキーを含むテーブルでのみNCLOBデータ型 AWS DMS をサポートします。

GEOMETRY

このデータ型をサポートするターゲットエンドポイントにレプリケートGEOMETRYするときに を使用します。

このデータ型をサポートしていないターゲットエンドポイントにレプリケートCLOBするときに を使用します。

GEOGRAPHY

このデータ型をサポートするターゲットエンドポイントにレプリケートGEOGRAPHYするときに を使用します。

このデータ型をサポートしていないターゲットエンドポイントにレプリケートCLOBするときに を使用します。

AWS DMS は、次のデータ型のフィールドを含むテーブルをサポートしていません。

  • CURSOR

  • SQL_VARIANT

  • TABLE

注記

ユーザー定義のデータ型は、基本型に従ってサポートされます。例えば、 に基づくユーザー定義のデータ型DATETIMEはDATETIME、データ型として処理されます。