説明:
本章では、MySQLからMySQLへのリンクを例として紹介します。
1. DTSはフルデータ移行/同期を実行する際に、ソースデータベースの全データを一度読み取るため、ソースデータベースの負荷が増加します。データベースのスペックが低すぎる場合は、業務の低ピーク時に移行/同期を行うか、タスク開始前にDTSのレートを下げることをお勧めします。
2. ソースデータベースのスペックが異なり、DTSタスクの設定が異なると、ソースデータベースへの性能影響も異なります。ソースデータベースのスペックが8コア16Gの場合を例にとると、DTSタスクはデフォルトで8スレッドの並行処理を採用し(調整可能)、ネットワークにボトルネックがない場合、DTSタスクがソースデータベースに与える性能影響は以下の通りです。
ソースデータベースのフルエクスポート段階:ソースデータベースのCPUを約18%~45%占有し、ソースデータベースに約40~60MB/sのクエリ負荷を増加させ、約8個のアクティブsession接続数を占有します。
ソースデータベースの増分エクスポート段階:ソースデータベースにほぼ負荷をかけず、1つの接続のみがソースデータベースのbinlogログをリアルタイムで監視します。
3. デフォルトではロックフリー移行/同期を採用して実現します。タスク中はソースデータベースにグローバルロック(FTWRL)をかけず、主キーがないテーブルにのみテーブルロックをかけ、その他にはロックをかけません。
4. データ一貫性の検証を行う際、DTSはタスクを実行するアカウントを使用してソースデータベースにシステムデータベース__tencentdb__を書き込み、タスクプロセス中のデータ比較情報を記録します。このシステムデータベースを削除しないでください。
後続のデータ比較問題を特定できるようにするため、DTSタスク終了後もソースデータベース内の__tencentdb__は削除されません。
__tencentdb__システムデータベースが占有する容量は非常に小さく、ソースデータベースのストレージ容量の約1000分の1から1万分の1です(例えば、ソースデータベースが50GBの場合、__tencentdb__システムデータベースは約5MB~50MBです)。また、シングルスレッドと接続待機メカニズムを採用しているため、ソースデータベースのパフォーマンスにはほとんど影響を与えず、リソースを奪い合うこともありません。