Data Management (DMS) は、データベース内のソーステーブルのスキーマに基づいてデータベース内にシャドウテーブルを自動的に作成するシャドウテーブル同期機能を提供します。 DMSは、ソーステーブルの名前にプレフィックスまたはサフィックスを付けることによって、シャドウテーブルの名前を生成します。 定期的な同期がサポートされています。 この機能は、エンドツーエンドのストレステストなどのさまざまなシナリオで使用できます。
前提条件
ソースデータベースとターゲットデータベースの種類は次のとおりです。
MySQL: ApsaraDB RDS for MySQL、PolarDB for MySQL、ApsaraDB MyBase for MySQL、PolarDB-X、AnalyticDB for MySQL V3.0、およびその他のソースのMySQLデータベース
SQL Server: ApsaraDB RDS for SQL Server、ApsaraDB MyBase for SQL Server、および他のソースのSQL Serverデータベース
PostgreSQL: ApsaraDB RDS for PostgreSQL、PolarDB for PostgreSQL、ApsaraDB MyBase for PostgreSQL、AnalyticDB for PostgreSQL、および他のソースのPostgreSQLデータベース
MariaDB: ApsaraDB RDS for MariaDBおよび他のソースのMariaDBデータベース
ApsaraDB for OceanBaseのMySQLモード
PolarDB for PostgreSQL (Oracleと互換)
ソースデータベースに対するクエリと変更のアクセス許可がアカウントに付与されます。 詳細については、「所有権限の表示」をご参照ください。
シャドウテーブルを作成するデータベースに対して、Enable execution capabilityという名前のセキュリティルールが有効になっています。 詳細については、「実行機能の有効化」をご参照ください。
説明このルールを無効にすると、スキーマ同期機能は異なるテーブルのスキーマを比較できますが、SQL文を実行してスキーマを同期することはできません。
手順
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、 を選択します。
説明DMSコンソールをシンプルモードで使用する場合は、コンソールの左上隅にあるアイコンの上にポインターを移動し、
を選択します。[テーブル同期チケット] ページで、次の表に示すパラメーターを設定します。 いくつかのパラメータは次のとおりです。
パラメーター
説明
ソースデータベース
シャドウテーブルを作成するソースデータベース。
説明クエリがあり、ソースデータベースに対するアクセス許可を変更する必要があります。 詳細については、「所有権限の表示」をご参照ください。
プレフィックス /サフィックス
シャドウテーブル名の生成に使用されるプレフィックスまたはサフィックス。 名前は、プレフィックス + ソーステーブル名またはソーステーブル名 + サフィックス形式です。 必要に応じて、カスタムプレフィックスまたはサフィックスを使用できます。 デフォルトでは、Prefix + Sourceテーブル名形式が使用されます。
デフォルトのシャドウテーブル名:
__test_Sourceテーブル名
同期テーブル
同期するテーブル。 有効な値:
部分テーブル: DMSは、選択したテーブルのソースデータベースにシャドウテーブルを作成します。
すべてのテーブル: DMSは、データベース内のすべてのテーブルに対して、ソースデータベース内にシャドウテーブルを作成します。
同期ポリシー
シャドウテーブルの同期に使用されるポリシー。 有効な値:
今すぐ同期: チケットを送信すると、DMSはすぐに同期を実行します。 この場合、同期は1回だけ行われる。
スケジュールされた同期: DMSは、指定された時間に定期的に同期を実行します。 crontab式を使用して、要件に基づいて同期をスケジュールできます。 詳細については、このトピックのCrontab式セクションを参照してください。
同期の最小間隔は1時間です。 デフォルトでは、シャドウテーブルの同期は毎日02:00に開始されます。
エラーを無視するかどうか
SQL文の実行時に発生するエラーをスキップするかどうかを指定します。 有効な値:
無視しない: SQL文の実行中にエラーが発生した場合、DMSは現在および後続のSQL文の実行を停止します。
無視: SQL文の実行中にエラーが発生した場合、DMSは現在のSQL文をスキップし、残りのすべての文が実行されるまで後続のSQL文を実行し続けます。
送信をクリックします。
DMSはスキーマの分析を開始します。
説明スキーマ分析中にスキーマが変更された場合は、[スキーマ分析] ステップで [再分析] をクリックします。
承認のために提出をクリックし、承認を待ちます。
ターゲットデータベースへの送信と同期をクリックします。
実行するSQL文を確認し、同期の確認をクリックします。
[同期の確認] をクリックすると、DMSはスキーマを同期するためのSQL文の実行を開始します。 [詳細] をクリックすると、SQL文、実行期間、スケジューリングの詳細などの詳細情報を含む操作ログが表示されます。
Crontab式
同期タスクを実行する間隔は、秒、分、時間、日、週、月の組み合わせを使用して指定できます。 crontab式は、6つのフィールドで構成される文字列です。 6つのフィールドはスペースで区切られています。 次の表に、これらのフィールドの有効な値を示します。
項目 | 有効値 | サポートされている特殊文字 | 説明 |
秒 | 0から59 | ハイフン (-) 、アスタリスク (*) 、およびスラッシュ (/) | 非該当 |
分 | 0から59 | ハイフン (-) 、アスタリスク (*) 、およびスラッシュ (/) | 非該当 |
時間 | 0から23 | ハイフン (-) 、アスタリスク (*) 、およびスラッシュ (/) | 非該当 |
日 | 1から31 | ハイフン (-) 、アスタリスク (*) 、疑問符 (?) 、スラッシュ (/) 、L、W、およびC | 非該当 |
月 | 1から12 | JAN ‒DEC、ハイフン (-) 、アスタリスク (*) 、およびスラッシュ (/) | 非該当 |
週 | 1から7 | SUN ‒SAT、ハイフン (-) 、アスタリスク (*) 、疑問符 (?) 、スラッシュ (/) 、L、C、および数字記号 (#) | 値1は日曜日を示し、値2は月曜日を示す。 すなわち、日曜日から土曜日までの7つの曜日は、1から7までの値で示される。 |
値を指定できるのは、DaysフィールドとWeeksフィールドの1つだけです。 それ以外の場合、2つのフィールドの値は互いに影響します。 Daysフィールドに値を指定した場合は、Weeksフィールドを疑問符 (?
) に設定します。 同様に、Weeksフィールドに値を指定した場合は、Daysフィールドを疑問符 (?) に設定します。
次の表に、特殊文字を示します。
キャラクター | 説明 | 例 |
* | フィールドのすべての値を表します。 | Minutesフィールドをアスタリスク (*) に設定すると、タスクは1分ごとに実行されます。 |
? | フィールドの任意の値を表します。 この2つのフィールドの値は互いに影響するため、この文字はDaysまたはWeeksフィールドでのみ使用できます。 | 毎月20日にタスクを実行するようにスケジュールする場合は、次のcrontab式を使用できます。 説明 この場合、Daysフィールドには20が指定されているため、Weeksフィールドにはアスタリスク ( |
- | 値の範囲を表します。 | [Minutes] フィールドに5〜20を指定した場合、タスクは指定した時間の5分から20分まで毎分実行されます。 |
/ | この文字で区切られた開始時間と間隔を表します。 タスクは開始時間に実行され、その後指定された間隔で実行されます。 | [Minutes] フィールドに5/20を指定した場合、指定した時間の5分から20分間隔でタスクが実行されます。 この場合、タスクは指定された時間の25分に2回目に実行されます。 |
, | 異なる値のリストを表します。 | [Minutes] フィールドに5,20を指定した場合、指定した時間の5分と20分にタスクが実行されます。 |
L | 最後の日または週を表します。 この文字は、[日] または [週] フィールドでのみ使用できます。 | Weeksフィールドに5Lを指定した場合、タスクは指定された月の最後の木曜日に実行されます。 |
W | 月曜日から金曜日までの営業日を表します。 この文字は、[日] フィールドでのみ使用できます。 タスクは、指定された日付の最も近い営業日に実行されます。 | [日] フィールドに5Wを指定した場合、次のいずれかの状況が発生します。
|
LW | 月の最終営業日を表します。 | 非該当 |
# | 月の曜日のN番目の発生を表します。 この文字はWeeksフィールドでのみ使用できます。 | Weeksフィールドに4#2を指定した場合、タスクは指定された月の2週目の水曜日に実行されます。
|
サンプルcrontab式:
毎週土曜日と日曜日の23:00にタスクを実行するようにスケジュールするには、次のcrontab式を使用します。
0 0 23? * 7、1
。毎月5日目、15日目、25日目の09:30にタスクを実行するようにスケジュールするには、次のcrontab式を使用します。
0 30 9 5,15、25 * ?
タスクを2日ごとに00:00に実行するようにスケジュールするには、次のcrontab式を使用します。
0 0 0 */2 * ?