カテゴリ | 説明 |
サポートバージョン | 1. ソースデータベース 自社構築データベース PostgreSQL 10-17 第三者クラウドプロバイダー(Alibaba Cloud RDS PostgreSQL/AWS RDS PostgreSQL/Huawei Cloud RDS for PostgreSQL)10-17 TencentDB for PostgreSQL 10-17(同一メインアカウント間の移行/異なるメインアカウント間の移行) 2. ターゲットデータベース TencentDB for PostgreSQL 10-17 |
ソースデータベースへの影響 | 1. DTSはフルデータ同期を実行する際に、一定のソースインスタンスリソースを占有し、ソースインスタンスの負荷上昇を引き起こし、データベース自体の圧力を高める可能性があります。データベースの設定が低すぎる場合は、ビジネスのオフピーク期に操作することをお勧めします。 2. デフォルトではロックフリー方式を採用し、同期中はソースデータベースにグローバルロックをかけません。 3. データ同期時、DTSは同期タスクを実行するアカウントを使用してソースデータベースにpostgres.public.identify、{database}.__tencentdb__sync_*.*を作成し、タスク状態、設定情報を記録します。ターゲットインスタンスは{database}.__tencentdb__ schemaを使用して同期状態情報を記録します。postgres.public.identify、{database}.__tencentdb__sync_*.*、{database}.__tencentdb__ schemaが占有する領域は非常に小さく、ソースデータベースのストレージ領域の約1000分の1から10000分の1であるため、ソースデータベースのパフォーマンスに影響を与えず、リソースを占有することもありません。 4. 同期タスクはmax_replication_slotsパラメータに依存します(各データベースで同期タスクを設定する際に1つのreplication_slotsを占有します)。SQL文select * from pg_replication_slotsを使用して使用状況を確認できます。設定済み同期データベース数 + replication_slots > max_replication_slotsの場合、新しい同期タスクは失敗します。ユーザーがタスクを自発的に終了した後にのみ、システムはreplication_slotsを解放します(失敗したタスクが終了していない場合、replication_slotsは解放されません)。 |
同期オブジェクト | 1. サポートされていないオブジェクトの同期:ROLE、PROCEDURE、TRIGGER、FUNCTION、RULEなど。 2. 公共オブジェクトと権限変更の同期はサポートされていません。 3. フル段階の構造初期化では外部キーのインポートをサポートしていません。外部キー制約を自動的に削除してからインポートします。 4. データ同期はFOREIGN TABLEテーブルタイプをサポートしていません。フル段階のエクスポート/インポートはTEMPORARY TABLEをサポートしていません。増分同期段階ではUNLOGGED TABLEデータ構造の同期のみをサポートします。 5. ソースデータベースが増分段階でSEQUENCEオブジェクトを更新した場合、ターゲットデータベースに同期した後、SEQUENCEのlast_valueの更新はサポートされません。ユーザーが同期結果を自ら確認し、ターゲットデータベース上の値を手動で変更する必要がある場合があります。 6. ソースデータベースのオブジェクトがターゲット側に同期された後、オブジェクトのownerはターゲットデータベースのアカウントに変更されます。例えば、以前の表1のownerがAで、ターゲットデータベースがBアカウントを使用して同期する場合、ターゲットデータベースに書き込まれた後、表1のownerはBに変更されます。 7. ソース側インスタンス全体を選択しての同期はサポートされていません。後続の同期タスクで、ソース側に新しいデータベースを作成する操作(CREATE DATABASE)がある場合、同期タスクの開始前に、ターゲット側で該当するデータベースオブジェクトをあらかじめ作成することをお勧めします。 8. 同期タスクの進行中に、ソース側でCREATE TABLE、RENAME TABLEの操作が発生した場合、設定段階で同期オブジェクトを選択する際に、該当テーブルが属するデータベース全体を選択してください。そうしないと、新規作成されたテーブルやRENAME後のテーブルはターゲット側に同期されません。 9. データベース全体の同期を選択する場合、ターゲット側に同じ名前のschemaまたは同じ名前のテーブルオブジェクトが存在してはなりません。 10. 読み取り専用インスタンスは、ソースインスタンスおよびターゲットインスタンスとしてサポートされていません。 11. 増分同期段階では、トリガーとストアドプロシージャの同期はまだサポートされていません。 12. 同期オブジェクトに含まれないオブジェクトに対して、増分検証の開始はサポートされていません。 13. 一時テーブルの同期は現在サポートされていません。 |
データ型 | 1. サポートされるデータ型 Aclitem、Bit、Bool、Box、Bpchar、Bytea、Char、Cid、Cidr、Circle、Date、Float4、Float8、Inet、Int2、Int4、Int8、Interval、JSON、Jsonb、Jsonpath、Line、Lseg、Macaddr、Name、Numeric、Oid、Path、Point、Polygon、Record、Text、Tid、Time、Timestamp、Timestamptz、Unknown、UUID、Varbit、Varchar、XID、Daterange、Int4range、Int8range、Numrange、Tsrange、Tstzrange、Datemultirange、Int4multirange、Int8multirange、Nummultirange、 Tsmultirange、Tstzmultirange、XML、Money、Time with time zone、Tsvector、Tsquery、pg_lsn、txid_snapshot。 2. タイムゾーン ソースインスタンスのタイムゾーン付きフィールド(timestamp with time zone)は、ターゲットインスタンスに同期された後、自動的にターゲットインスタンスのタイムゾーンの対応する値に変換されます。 3. UTF8文字セットの使用を推奨します。そうしないと、コンソール画面の表示に問題が発生する可能性があります。 |
サポートされるSQL | 1. DML INSERT、UPDATE、DELETE 2. DDL DROP DATABASE、ALTER DATABASE CREATE SCHEMA、DROP SCHEMA CREATE TABLE、ALTER TABLE、DROP TABLE CREATE VIEW、DROP VIEW CREATE INDEX、DROP INDEX CREATE SEQUENCE、DROP SEQUENCE 説明: CREATE TABLE テーブル名 AS SELECT文は現在サポートされていません。 WHERE条件でフィルタリングするSQLフィルタリングポリシーは現在サポートされていません。 |
同期機能の説明 | 1. 同期タスクの段階では、ターゲット側のオブジェクトを削除することはできません。 2. 増分同期中に外部キー制約付きテーブルを作成し、データを書き込むと、タスクが失敗する原因となります。 3. フル初期化のシナリオでは、一部の未同期のパーティションテーブルとそのインデックスが存在する場合、フルインポート時のパーティションテーブルインデックスの同期が失敗する原因となります。パーティションテーブルを同期オブジェクトに追加することをお勧めします。 4. 構造のみの同期、全量のみの同期は現在サポートされていません。 |
操作制限 | 1. 同期中に以下の操作を行わないでください。行った場合、同期タスクが失敗する可能性があります。 ソースデータベースとターゲットデータベース内のユーザー情報(ユーザー名、パスワード、権限を含む)とポート番号を変更、削除しないでください。 増分同期段階で同時に高並行のDDLおよびDML操作を行うと、データ競合が発生する可能性があります。増分段階でのDDLを減らすことをお勧めします。 ソースデータベース上でWALを削除する操作を実行しないでください。 同期増分段階では、システムデータベースおよびschema postgres.public.identify、__tencentdb__sync_*.*、{database}.__tencentdb__ schemaを削除しないでください。 ソースとターゲットのデータベースタイプがTencent Cloudデータベースの場合、データベースインスタンスのネットワークを変更しないでください。ソースインスタンスとターゲットインスタンスのネットワークが変更され、元のVIPが削除されると、同期タスクが失敗するか、実行中の状態のままになります(この時点で同期は機能していません)。この場合、同期タスクは再試行できません。手動でタスクを終了してから、新しい同期タスクを再作成する必要があります。 2. 増分DDLは、plsql内(匿名ブロック、procedure、function)で実行されるDDLを同期しません。 3. テーブル名の変更はサポートされていません。 4. 匿名ブロック内で execute format(create table)方式によるテーブル作成操作は現在サポートされていません。5. 構造初期化後かつフルエクスポート前に、ソース側でDDL変更を実行した場合、関連する変更はターゲット側に同期されません。 6. ターゲットデータベースに同じ名前のプラグインが既に存在し、かつソースデータベースのプラグインと異なるschemaにある場合、さらにソースデータベースのオブジェクトがプラグイン内の関数や型を参照している場合、ソースデータベースのオブジェクトに対するデータベース・テーブルマッピングはサポートされません。 7. 同期タスクの開始時に、システムはソースデータベースに __tencentdb__で始まるSCHEMAを自動的に作成し、ターゲットデータベースに__dst__tencentdb__で始まるSCHEMAを自動的に作成します。これらのSCHEMA内のオブジェクトは、DTSの内部動作をサポートするために使用されます。手動で削除しないでください。同期タスクの完了後、DTSはこれらの一時オブジェクトを自動的にクリーンアップします。このプロセスに手動の介入は必要ありません。8. 競合上書きポリシーは、テーブルのPK競合を解決するためにのみ使用されます。テーブルにPKと一意制約が同時に定義されている場合、エラーが発生する可能性があります。手動でデータを処理してから同期を行ってください。 9. マイグレーションタスクが完了し、完了ボタンをクリックした後でのみ、以下の操作を実行できます: ソースデータベースのシーケンスの last_valueに基づいて、ターゲットデータベースの対応するシーケンスのlast_valueを更新します。オブジェクトコメントの同期。 ソースデータベースとターゲットデータベースで作成された同期タスクのSCHEMAをクリーンアップしてください。 ソースデータベースで作成されたパブリケーションとレプリケーションスロットなどのオブジェクトを削除します。 10. 同期タスクの変配後、指定ポジションのサポート状況は変配タイプによって異なります: テーブルの追加・削除を伴う変配:変配完了前のポジションへの指定はサポートされません。 テーブルの追加・削除を伴わない変配(同期DMLタイプの追加・削除など):変配前のポジションへの指定をサポートします。 |
データ同期の説明 | 1. DTSはデータ同期タスクを開始する際に、同期待ちのテーブルおよび新規作成されたテーブル(増分DDLが有効なタスクの場合)に対してREPLICA IDENTITY FULL属性を設定します。テーブル上に長時間のトランザクションが存在する場合、設定がタイムアウトし、その結果タスクが失敗する可能性があります。 2. DTSはデータ同期タスクを開始する際に、データベースインスタンスに未コミットの長いトランザクションが存在する場合、レプリケーションスロットslotの作成がタイムアウトし、その結果タスクが失敗する可能性があります。 |
ソースデータベースHA | ソースデータベースでHA切り替えなどの操作が発生し、ソースインスタンスのプライマリノードが移行すると、WALログが変更されます。元の同期タスクは失敗するため、ターゲットデータベースに同期済みのデータをクリーンアップしてから、同期タスクを再作成する必要があります。 |
フィードバック