データ管理 (DMS) の通常のデータ変更機能を使用すると、INSERT、UPDATE、DELETE、TRUNCATE などの SQL 文を直接または定期的に実行して、データベース内のデータを変更できます。このトピックでは、通常のデータ変更チケットを送信する方法について説明します。
操作の概要
通常のデータ変更チケットを設定して送信します。
管理するデータベースまたはインスタンスを選択します。次に、データ変更用の SQL 文を入力するか、SQL 文を含むファイルをアップロードします。
事前チェックを実行します。
DMS は、送信した SQL 文が通常のデータ変更機能でサポートされているタイプと一致するかどうか、および SQL 文を実行するために必要な権限を持っているかどうかを確認します。
チケットを審査して承認します。
DMS は、実行する SQL 文がデータベースのパフォーマンスに影響を与えるかどうか、および SQL 文を実行するために必要な権限を持っているかどうかを確認します。
データを変更します。
送信された SQL 文を実行してデータを変更します。データ変更中にエラーが発生した場合、またはビジネスで SQL 文によるデータ変更を元に戻す必要がある場合は、DMS でロールバックチケットを作成して、変更完了後に元のデータを復元できます。
前提条件
使用するデータベースインスタンスは、DMS で安定的な変更モードまたはセキュリティコラボレーションモードで管理されています。詳細については、「制御モード」をご参照ください。
使用上の注意
承認のためにデータ変更チケットを送信した後、チケットが承認されたか拒否されたかに関係なく、チケットをクローズできます。これは、チケットが承認された後にチケットに関連付けられたタスクが実行されるのを防ぎます。
テスト環境でデータ変更のチケットを送信することをお勧めします。これにより、システムが影響を受ける行数を確認し、データ変更ごとにバックアップファイルを生成することが保証されます。これにより、データが期待どおりに変更されなかった場合にデータを復元できます。
説明R&D 効率を高めるために、テスト環境ではデータ変更チケットの承認を不要にするように指定できます。詳細については、「SQL 修正」をご参照ください。
DMS で論理データベース、論理テーブル、およびルーティングアルゴリズムを設定している場合は、データベースとテーブルをシャードするために 1 つのチケットのみを送信できます。こうすることで、物理データベースまたは物理テーブルごとにチケットを送信する必要がなくなります。
ルーティングアルゴリズムを設定し、データベースとテーブルをシャードするために使用される SQL 文にルーティングフィールドが含まれている場合、ルーティングアルゴリズムは対応する物理テーブルに文をルーティングして実行します。
ルーティングアルゴリズムを設定していない場合、SQL 文にルーティングフィールドが含まれていない場合、またはルーティングフィールドのデータ型がルーティングアルゴリズムで指定されたデータ型と一致しない場合、SQL 文は各データベースの各テーブルで順番に実行されます。このプロセスは完了するまでに時間がかかります。
DMS は、
UPDATE文またはDELETE文が実行される前に、対応するバックアップスクリプトの添付ファイルを自動的に生成します。
手順
ステップ 1:チケットを設定して送信する
- DMS コンソール V5.0 にログインします。
DMS コンソールの左上隅にある
アイコンにポインターを移動し、 を選択します。説明DMS コンソールを通常モードで使用している場合は、上部のナビゲーションバーで を選択します。
データ変更チケットウィザードの [適用] ステップで、データ変更チケットを送信するためのパラメーターを設定します。次の表に、いくつかのパラメーターを示します。
説明この例では、セキュリティコラボレーションモードで管理されているインスタンスを使用しています。インスタンスが安定的な変更モードで管理されている場合、設定できるパラメーターが多少異なる場合があります。
データソースインスタンスの変更機能は、カナリアリリースです。
パラメーター
必須
説明
[変更ターゲット]
はい
有効な値は、[データベース] と [データソースインスタンス] です。
説明データソースインスタンスの変更機能は、ApsaraDB RDS for MySQL インスタンス、PolarDB for MySQL クラスタ、および AnalyticDB for MySQL クラスタでのみサポートされています。
[データベース] または [インスタンス]
はい
チケットを送信するデータベースまたはインスタンス。変更権限を持つデータベースまたはインスタンスを選択する必要があります。
説明データソースインスタンスは 1 つだけ選択できます。
[理由カテゴリ]
はい
データ変更の理由。これにより、後続の操作でチケットを見つけるのに役立ちます。
説明DMS 管理者の場合は、[構成管理] モジュールの 構成管理 ページで理由カテゴリを変更できます。詳細については、「」をご参照ください。
[ビジネス背景]
はい
データ変更の目的。承認プロセスを迅速化するために、詳細な説明を入力してください。
[実行方法]
はい
チケットの実行方法。有効な値:
チケット送信者が承認時に実行
承認時に自動的に実行
最後の承認者が実行
説明DMS 管理者の場合は、[構成管理] モジュールの 構成管理 ページで実行方法を変更できます。詳細については、「」をご参照ください。
[影響を受ける行]
はい
データ変更の影響を受ける可能性のあるデータ行の推定数。
[変更用の SQL 文]
はい
データ変更に使用される SQL 文。[テキスト] または [添付ファイル] を選択できます。
[SQL テキスト]
はい
このパラメーターは、[変更用の SQL 文] パラメーターを [テキスト] に設定した場合にのみ使用できます。[SQL テキスト] フィールドに実行可能な SQL 文を入力します。
説明複数の SQL 文はセミコロン (;) で区切ります。
[変更ターゲット] パラメーターを [データソースインスタンス] に設定した場合は、SQL 文のすべてのテーブル名の前に、
${dbName}.${tableName}形式でデータベース名を追加する必要があります。DMS は、チケットを送信するときに SQL 文の構文が有効かどうかを確認します。構文が無効な場合、チケットを送信できません。
[添付ファイル]
はい
このパラメーターは、[変更用の SQL 文] パラメーターを [添付ファイル] に設定した場合にのみ使用できます。データ変更に使用する SQL 文を格納するファイルをアップロードします。
説明アップロードするファイルは、TXT、ZIP、または SQL ファイルにすることができます。ファイルサイズは 15 MB を超えることはできません。
[ロールバック用の SQL 文]
いいえ
ロールバックに使用される SQL 文。[テキスト] または [添付ファイル] を選択できます。
説明DMS は、ロールバック用の SQL 文を入力した場合、またはロールバック用の SQL ファイルをアップロードした場合にのみ、ロールバックチケットの作成時にロールバック用の文を自動的に入力します。それ以外の場合は、SQL 文を手動で入力する必要があります。
[SQL テキスト]
いいえ
このパラメーターは、[ロールバック用の SQL 文] パラメーターを [テキスト] に設定した場合にのみ使用できます。ロールバック用の SQL 文を入力します。このパラメーターに指定した SQL 文は、データ変更をロールバックするために使用されます。
[添付ファイル]
いいえ
このパラメーターは、[ロールバック用の SQL 文] パラメーターを [添付ファイル] に設定した場合にのみ使用できます。[ファイル] をクリックして、ロールバックに使用する SQL 文を含むファイルをアップロードします。
説明アップロードするファイルは、TXT、ZIP、または SQL ファイルにすることができます。ファイルサイズは 15 MB を超えることはできません。
[変更の利害関係者]
いいえ
データ変更に関与する利害関係者。指定されたすべての利害関係者は、チケットの詳細を表示し、承認プロセスに参加できます。DMS 管理者とデータベース管理者 (DBA) を除き、無関係なユーザーはチケットの詳細にアクセスできません。
[添付ファイル]
いいえ
データ変更に関する追加情報を提供するために、チケットの添付ファイルとして使用されるファイル。
[送信] をクリックします。
ステップ 2:SQL 文の事前チェック
チケットを送信すると、システムは自動的にチケットの事前チェックを実行します。チケットが事前チェックに失敗した場合は、指示に従って SQL 文を変更し、チケットを再送信します。

手順 3: チケットを確認して承認する
チケットが事前チェックに合格したら、[承認のために送信] をクリックします。[プロンプト] メッセージで、[OK] をクリックします。
デフォルトでは、データ変更チケットは DBA によって承認されます。デフォルトの承認テンプレートの変更方法については、「SQL 修正」トピックの デフォルトの承認テンプレートを変更する セクションをご参照ください。
ステップ 4:データ変更を実行する
オフピーク時にデータ変更を実行することをお勧めします。
アプリケーションが承認されたら、[変更を実行] をクリックします。[タスク設定] ダイアログボックスで、次の表に示すタスク実行パラメーターを設定し、[実行の確認] をクリックします。
説明[適用] ステップで [実行方法] パラメーターを [承認時に自動的に実行] に設定した場合、このステップは自動的にスキップされます。
一時停止されたタスクが再開されると、スクリプトは一時停止された位置から実行できます。
パラメーター
説明
[実行戦略]
チケットのタスクをすぐに実行するか、スケジュールされた時刻に実行するかを指定します。有効な値:
[すぐに実行]:このオプションを選択すると、DMS は [実行の確認] をクリックした直後にタスクを実行します。
[スケジュール]:このオプションを選択した場合は、時刻を指定する必要があります。[実行の確認] をクリックすると、DMS はスケジュールされた時刻にタスクを実行します。たとえば、2024 年 5 月 22 日 00:00:00 にタスクを実行するように指定できます。
[終了時刻の指定]
タスクの終了時刻を指定します。タスクが完了したかどうかに関係なく、システムは指定された終了時刻にタスクを停止します。これにより、ピーク時にタスクがビジネスに影響を与えるのを防ぎます。
説明タスクの実際の終了時刻は、指定された終了時刻と ±1 分のずれがある場合があります。
[単一トランザクションとして送信を有効にする]
すべての文を単一トランザクションとして送信するかどうかを指定します。デフォルトでは、このスイッチはオフになっています。有効な値:
オン:この変更に関連するすべての SQL 文は、トランザクションとして送信されます。SQL 文が失敗した場合、同じトランザクション内で実行されたすべての DML 文はロールバックされます。DDL 文はロールバックできません。
オフ:各 SQL 文はトランザクションとして送信されます。SQL 文が失敗した場合、トランザクションは停止されますが、実行された SQL 文はロールバックされません。
[バックアップを有効にする]
データをバックアップするかどうかを指定します。デフォルトでは、このスイッチはオフになっています。バックアップを有効にすると、バックアップファイルを使用してデータを復元できます。有効な値:
説明データバックアップは、UPDATE 文と DELETE 文でのみサポートされています。
MongoDB データベースまたは Redis データベースのデータをバックアップすることはできません。
オン:DMS は、
UPDATE文またはDELETE文が実行されたときに影響を受けるデータをバックアップするための特定の文を生成します。データベースが MySQL データベースまたは MariaDB データベースの場合、DMS は
REPLACE INTO文を生成します。説明サポートされている MySQL データベースタイプには、ApsaraDB RDS for MySQL、PolarDB for MySQL、PolarDB-X、および Alibaba Cloud 以外の MySQL データベースが含まれます。
データベースが MySQL データベースまたは MariaDB データベースでない場合、DMS は
INSERT文を生成します。
オフ:DMS はデータバックアップ用の文を生成しません。
[プライマリ/セカンダリノードチェック]
この機能を有効にすることで、プライマリインスタンスとセカンダリインスタンス間のデータ同期を継続的に維持し、高可用性と迅速な障害復旧を実現できます。
[カナリアリリース種別]
SQL 文を実行するためのポリシー。有効な値:
[カナリアリリースなし]:DMS はタスク内のすべての SQL 文を自動的に実行します。
[最初の SQL 文の実行後に一時停止]:最初の SQL 文が正常に実行されると、DMS は SQL の実行を自動的に一時停止します。続行する必要がある場合は、[再試行] をクリックします。その後、DMS は一時停止することなく、残りの SQL 文をすぐに実行します。
[SQL 文の実行後に一時停止]:DMS は各 SQL 文の実行後に一時停止します。次の SQL 文を実行するには、[再試行] を手動でクリックする必要があります。
説明SQL タスクの実行は、SQL の実行を制御するために [セキュリティルール] で設定されたチェックポイントによって監視されます。チェックポイントの例としては、SQL 実行前のデータベースロックタイムアウトメカニズム、SQL 実行前のデータベース負荷チェック、SQL 実行後のスリープポリシーなどがあります。SQL の実行を制御するためにセキュリティルールで設定されているチェックポイントを確認するには、セキュリティルールの詳細ページに移動し、左側のペインで [SQL 実行制御] をクリックします。デフォルトのチェックポイント設定の変更方法については、「SQL 実行の制御を設定する」をご参照ください。
タスクが完了したら、チケットの [操作] 列にある [詳細] をクリックすると、チケットのステータス、タスクの実行回数、影響を受けた行数、実行された文、およびログを表示できます。
タスクが完了したら、データベースの [SQL コンソール] タブに移動して、データが期待どおりに変更されたかどうかを確認できます。
オプション。 ロールバックチケットを作成し、元のデータを復元します。
データが期待どおりに変更されなかった場合は、ロールバックチケットを作成するか、通常のデータ変更チケットを手動で送信してデータを復元できます。次のセクションでは、ロールバックチケットを作成する方法について説明します。
[実行] セクションで、管理するデータベースの [操作] 列にある [ロールバックチケットの生成] をクリックします。
ロールバックのソースを選択し、[OK] をクリックします。 次のソースがサポートされています。
ロールバックテキスト:チケット情報の設定時に事前に入力されたロールバックテキスト。
ロールバック添付ファイル:チケット情報の設定時にアップロードされたロールバック添付ファイル。
バックアップファイル:チケットの実行中に生成されたバックアップ添付ファイル。
説明バックアップファイルを使用してデータを復元するには、データ変更を実行する前にバックアップ機能を有効にする必要があります。
オプション。ビジネス要件に基づいて、ロールバックテキスト、ロールバック添付ファイル、またはバックアップファイルを設定します。
ロールバックテキスト:エディターで SQL 文を変更できます。
ロールバック添付ファイルまたはバックアップファイル:ロールバック添付ファイルまたはバックアップファイルをコンピューターにダウンロードし、SQL 文を変更してから、ロールバック添付ファイルまたはバックアップファイルをロールバックチケットにアップロードする必要があります。
ロールバック情報を確認し、[送信] をクリックします。後続のチケットプロセスは、通常のデータ変更チケットプロセスと同じです。
バックアップファイルをダウンロードします。
バックアップファイルを保存する場合、または変更後にバックアップファイルを DMS にアップロードする場合は、バックアップファイルをダウンロードする必要があります。
[操作] 列の [バックアップのダウンロード] をクリックします。バックアップファイルには、次の情報が含まれています。
データ変更のために実行された元の SQL 文。
元の SQL 文の SELECT 句。
データバックアップに使用される SQL 文。
例:
/* [データベース]: rds@rm-bp144d5ky4l4rli0417****.mysql.rds.aliyuncs.com:3306[rds mysql] */ /* [SQL]: UPDATE t_order SET product_id = 88 WHERE id = 10054 [バックアップ SQL]: SELECT * FROM t_order WHERE id = 10054 */ REPLACE INTO `t_order`(`id`,`product_id`,`gmt_create`,`gmt_modified`,`customer_id`,`price`,`status`,`province`) VALUES (10054,81,'2021-12-14 09:44:44','2021-12-14 09:44:44',71,63.45,'Success','Hangzhou');バックアップファイルからデータバックアップ用の SQL 文を抽出します。文が有効であることを確認したら、実際のシナリオに基づいて通常のデータ変更チケットを送信してデータベースデータを復元します。
説明データ変更に不適切な
UPDATE文が実行され、システムがデータバックアップ用にINSERT文を生成した場合、手動でデータを復元する必要があります。
オプション。データが期待どおりに変更されたかどうかを確認します。
チケット詳細パネルの [基本情報] セクションで、データベース名にポインターを移動し、[クエリ] をクリックします。

データベースの [SQL コンソール] タブで、テーブルデータが期待どおりになっているかどうかを確認します。