__tencentdb__を書き込み、移行タスクプロセス中のデータ比較情報を記録します。__tencentdb__は削除されません。__tencentdb__システムデータベースが占有する容量は非常に小さく、ソースデータベースのストレージ容量の約1000分の1から1万分の1です(例えば、ソースデータベースが50GBの場合、__tencentdb__システムデータベースは約5MB~50MBです)。また、シングルスレッドと接続待機メカニズムを採用しているため、ソースデータベースのパフォーマンスにはほとんど影響を与えず、リソースを奪い合うこともありません。CREATE USER '移行アカウント'@'%' IDENTIFIED BY '移行パスワード';GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHOW VIEW,PROCESS ON *.* TO '移行アカウント'@'%';//ソース側がTencent Cloud MariaDBデータベースの場合、RELOAD権限の付与についてチケットを提出する必要があります。その他のシナリオでは、ユーザーはコードを参照して権限を付与してください。//トリガーとイベントの移行を選択する場合、TRIGGER権限とEVENT権限を同時に付与する必要があります。GRANT ALL PRIVILEGES ON `__tencentdb__`.* TO '移行アカウント'@'%';GRANT SELECT ON *.* TO '移行アカウント';
CREATE USER '移行アカウント'@'%' IDENTIFIED BY '移行パスワード';GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT,REPLICATION SLAVE,SHOW DATABASES,SHOW VIEW,PROCESS ON *.* TO '移行アカウント'@'%';//ソース側がTencent Cloud MariaDBデータベースの場合、RELOAD権限の付与についてチケットを提出する必要があります。その他のシナリオでは、ユーザーはコードを参照して権限を付与してください。//トリガーとイベントの移行を選択する場合、TRIGGER権限とEVENT権限を同時に付与する必要があります。GRANT ALL PRIVILEGES ON `__tencentdb__`.* TO '移行アカウント'@'%';GRANT SELECT ON `mysql`.* TO '移行アカウント'@'%';GRANT SELECT ON 移行対象のデータベース.* TO '移行アカウント';
datetime NOT NULL ON UPDATE CURRENT_TIMESTAMPですが、テーブル作成後にSHOW CREATE TABLEを実行するとdatetime NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE current_timestamp()と表示され、ターゲット側のMySQLで解析されたDDLはdatetime NOT NULL ON UPDATE CURRENT_TIMESTAMPです。information_schema、sys、performance_schema、__cdb_recycle_bin__、__recycle_bin__、__tencentdb__、mysqlです。DEFINERに対応するuser1([DEFINER = user1])と移行アカウントuser2が一致するかどうかをチェックします。一致しない場合、移行後にDTSはターゲットデータベース内のuser1のSQL SECURITY属性を変更し、DEFINERからINVOKERに変換します([INVOKER = user1])。同時に、ターゲットデータベース内のDEFINERを移行アカウントuser2に設定します([DEFINER = 移行アカウントuser2])。ソースデータベース内のビュー定義が複雑すぎる場合、タスクが失敗する可能性があります。STATEMENT形式のBinlogステートメントが生成された場合、移行が失敗します。lower_case_tame_nameパラメータ(テーブル名の大文字と小文字の区別)を一致させる必要があります。ソースデータベースがTencentDB for MariaDBの場合、TencentDB for MariaDBではインスタンス作成時にのみlower_case_tame_nameパラメータを変更できるため、ユーザーはソースデータベースインスタンスの作成時に大文字と小文字の区別ルールを決定し、パラメータ検証で不一致が発生した場合に、ターゲットデータベースのlower_case_tame_nameパラメータを変更する必要があります。ALTER VIEWステートメントはサポートされていません。このステートメントが検出された場合、タスクはスキップされ、移行されません。STATEMENTのデータを書き込まないでください。__tencentdb__を削除しないでください。 操作タイプ | サポートされる SQL 操作 |
DML | INSERT、UPDATE、DELETE、REPLACE |
DDL | TABLE:CREATE TABLE、ALTER TABLE、DROP TABLE、TRUNCATE TABLE、RENAME TABLE VIEW:CREATE VIEW、DROP VIEW INDEX:CREATE INDEX、DROP INDEX DATABASE:CREATE DATABASE、ALTER DATABASE、DROP DATABASE 現時点では、CREATE TABLE テーブル名 AS SELECT ステートメントはサポートされていません。 |
タイプ | 環境要件 |
ソースデータベース要件 | ソースデータベースとターゲットデータベースのネットワークが接続できる必要があります。 ソースデータベースが配置されているサーバーには十分な出力帯域幅が必要です。そうでない場合、移行速度に影響します。 インスタンスパラメータの要件: ソースデータベースのserver_idパラメータは手動で設定する必要があります。また、値を0に設定することはできません。 ソースデータベースのテーブルのrow_formatをFIXEDに設定することはできません。 ソースデータベースとターゲットデータベースのlower_case_table_names変数は、一致するように設定する必要があります。 ソースデータベース変数connect_timeoutの設定値は10より大きい必要があります。 skip-name-resolveを有効にして、接続タイムアウトの可能性を減らすことをお勧めします。 Binlogパラメータの要件: ソースデータベースのlog_bin変数はONに設定する必要があります。 ソースデータベースのbinlog_format変数はROWに設定する必要があります。 ソースデータベースのbinlog_row_image変数はFULLに設定する必要があります。 MariaDB 10.2以降、Percona 5.6以降では、gtid_mode変数がONでない場合に警告が表示されます。gtid_modeを有効にすることをお勧めします。 do_db、ignore_dbフィルター条件を設定することはできません。 ソースインスタンスがレプリカの場合、log_slave_updates変数をONに設定する必要があります。 ソースデータベースのBinlogログは少なくとも3日以上保持することをお勧めします。そうしないと、タスクの一時停止/中断時間がBinlogログの保持時間を超えた場合、タスクの再開ができなくなり、タスクが失敗する可能性があります。 外部キー依存関係: 外部キー依存関係はNO ACTION、RESTRICTの2種類にのみ設定できます。 一部のデータベース・テーブルを移行する場合、外部キー依存関係のあるテーブルはすべて揃っている必要があります。 DTSはデータ型FLOATの移行精度が38桁、データ型DOUBLEの移行精度が308桁です。期待どおりかどうかを確認する必要があります。 環境変数innodb_stats_on_metadataはOFFに設定する必要があります。 |
ターゲットデータベース要件 | ターゲットデータベースのバージョンは、ソースデータベースのバージョン以上である必要があります。 ターゲットデータベースの容量は、ソースデータベースの移行対象テーブルスペースの1.2倍以上である必要があります。(全量データ移行ではINSERT操作が並行実行されるため、ターゲットデータベースのテーブルにフラグメンテーションが発生します。そのため、全量移行完了後、ターゲットデータベースのテーブルストレージ容量はソースインスタンスのテーブルストレージ容量よりも大きくなる可能性が高くなります。) ターゲットデータベースには、ソースデータベースと同じ名前のテーブル、ビューなどの移行オブジェクトが存在してはなりません。 ターゲットデータベースのmax_allowed_packetパラメータ設定値は少なくとも4Mである必要があります。 |
フィードバック