データベースのストレージスペースが不足している場合、またはデータベースのテーブルに大量のデータが含まれている場合、クエリが遅くなる可能性があります。 この場合、data Management (DMS) が提供する履歴データの消去機能を使用して、履歴データを定期的に消去できます。 これにより、クエリのパフォーマンスとデータベースの応答速度が向上し、ストレージ容量の不足によるデータベースのパフォーマンスの影響を防ぎ、蓄積された履歴データが本番環境の安定性に与える影響を排除できます。
前提条件
MySQLデータベースが使用されます。
データベースインスタンスは、DMSの安定した変更またはセキュリティコラボレーションモードで管理されます。 詳細については、「コントロールモード」をご参照ください。
手順
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、 を選択します。
説明DMSコンソールをシンプルモードで使用する場合は、コンソールの左上隅にあるアイコンの上にポインターを移動し、
を選択します。[データ変更チケット] ページで、パラメーターを設定し、[送信] をクリックします。
表示されるパラメーターの一部を次の表に示します。
パラメーター
説明
データベース
変更権限を持つデータベース。 データベースを照会したり、テーブルのデータを変更したりする権限しかない場合は、データ変更チケットを送信できません。 詳細については、「所有権限の表示」をご参照ください。
削除設定
データ削除に関する設定。 [テーブル名] 、[時間フィールド] 、[時間精度] 、[保持期間 (日)] 、および [フィルター条件 (無効)] パラメーターを設定します。 DMSは、上記の設定に基づいて履歴データを消去するSQLスクリプトを自動的に生成します。
説明論理テーブルを指定するには、物理名ではなく論理名を入力する必要があります。
保持期間を指定した場合、保持期間より長く保持されているデータはクリアされます。 たとえば、保存期間として7日を指定した場合、7日を超えて保存されているデータはデータテーブルから消去されます。
たとえば、テーブル名がapi_call_record_11、時間フィールドがgmt_create、保持期間が7日、フィルタ条件がstatus = 1またはstatus=2の場合、DMSは次のSQL文を生成します。
DELETE FROM 'api_call_record_11 'WHERE 'gmt_create' < SUBDATE(CURDATE()), INTEINTENAL7=
statusまたはstatus (DAY)スケジュール
DMSがタスクの実行を開始する時刻。 DMSでは、スケジュールされたタスクを使用してテーブルからデータをクリアすると、タスクはテーブル全体をスキャンし、テーブルのプライマリキーまたはnull以外の一意のキーに基づいて異なるバッチのデータを削除します。 オフピーク時間帯にタスクを実行する時点を設定し、スケジュールされたタスクが実行される適切な間隔を指定することを推奨します。
説明最小間隔は1時間です。 デフォルトでは、タスクは毎日02:00に実行されます。
ポリシー設定
タスクを実行するためのポリシー。 タスクの終了時間を指定して、この終了時間の後にタスクが自動的に中断されるようにすることができます。 このポリシーを使用すると、ピーク時にデータ変更がビジネスに影響を与えないようにできます。
終了時間なしでタスクを実行
[終了時間 (時間) の指定]: DMSがData Transmission Service (DTS) やAnalyticDB for MySQLなどのダウンストリーム同期サービスの消費制限の影響を受けないように、実行時間を指定します。
終了時間を指定するかどうかを選択した後、最適化のために [Periodically Optimize Table] をオンにするかどうかを選択することもできます。 デフォルトで、この機能は無効化されています。 この機能を有効にして間隔を指定できます。 デフォルトの間隔は60です。 たとえば、間隔が60に設定されている場合、システムは60回のデータクリーンアップ後にデフラグを1回実行します。
説明定期的に最適化テーブル機能は、ApsaraDB RDS for MySQLまたはPolarDB for MySQLデータベースに対してのみ有効にできます。
最適化の実行時間は、[ポリシー構成] パラメーターに指定された実行時間によって異なります。 クリーンアップが終了すると、デフラグは停止します。
利害関係者の変更
変更操作に関与した利害関係者。 指定されたすべての利害関係者は、チケットの詳細を表示し、承認プロセスに参加できます。 DMS管理者とデータベース管理者 (DBA) を除く無関係なユーザーは、チケットの詳細にアクセスできません。
チケットの送信後、マスター /スレーブ遅延チェックを有効にし、しきい値を指定し、SQL文を変更できます。
オプション。 マスター /スレーブ遅延チェックを有効にし、しきい値を指定します。 これにより、1次 /2次切り替えが高いマスタースレーブ遅延の影響を受けないようにします。
チケット詳細ページの [基本情報] セクションで、[チャンクオプション] をクリックします。 [チャンクオプション] ダイアログで、master-slave遅延しきい値 (秒) パラメーターに適切な値を設定します。 マスター /スレーブ遅延がしきい値より大きい場合、SQLの実行は中断されます。
説明ApsaraDB RDS for MySQLデータベースのみがマスター /スレーブ遅延チェック機能をサポートしています。
オプション。 SQL文を変更します。
チケットを送信すると、DMSは自動的にSQL文を事前チェックします。 事前チェックが失敗した場合は、事前チェックステップで [SQL文の変更] をクリックしてSQL文を変更し、再試行します。
説明承認チケットを送信する前に、[基本情報] セクションでチャンクオプションとスケジュール設定パラメーターを変更できます。 承認のためにチケットを提出した後、これらのパラメーターを変更することはできません。
[承認申請] をクリックします。 セキュリティコラボレーションモードで管理されるインスタンスのチケットは、指定された承認ルールに基づいて承認されます。 安定変更モードで管理されるインスタンスのチケットは自動的に承認されます。
チケットが承認されると、DMSはスケジュールされたタスクを自動的に生成し、チケット所有者に電子メールを送信します。 [基本情報] セクションの [スケジュールされたタスクの表示] をクリックすると、スケジュール情報が表示されます。 次の操作を実行することも可能です。
スケジュール済みタスクの一時停止
説明スケジュールされたタスクを停止するには、チケットの詳細ページに移動し、右上隅の [チケットを閉じる] をクリックし、チケットを閉じる理由を入力して、[送信] をクリックします。
スケジュール済みタスクの再起動
説明チケットを閉じると、別のチケットを起票しない限り、スケジュールされたタスクを再開できません。
チケット所有者の変更
デフォルトでは、チケットの所有者はチケットを送信するユーザーです。 チケットの所有者だけが、チケットに対応するスケジュール済みタスクを一時停止および再起動する権限を持っています。 スケジュールされたタスクが実行されるたびに、DMSはチケット所有者にのみ電子メールを送信します。
スケジュールされたタスクが生成された後、DMSは指定された時点と間隔で設定に基づいて生成されたSQLスクリプトを実行します。 チケットの詳細ページで、スケジュールされたタスクを実行するたびに、すべてのスケジュール情報と詳細を表示できます。
説明スケジュールされたタスクが実行される前に、DMSは前のスケジュールされたタスクが完了したかどうかをチェックします。 以前のスケジュールされたタスクがまだ進行中の場合、DMSはSQLスクリプトを再度実行しません。 したがって、ビジネス要件に基づいて間隔を慎重に決定することをお勧めします。
よくある質問
履歴データが消去されているときにテーブルスペースの断片をリサイクルすると、サービスが影響を受けますか?
データベースインスタンスに対してロックフリースキーマ変更機能が有効になっている場合、履歴データが消去されているときにテーブルスペースの断片をリサイクルしても、サービスは影響を受けません。 データベースインスタンスのロックフリースキーマ変更機能が無効になっている場合は、サービスへの影響を減らすために、オフピーク時にテーブルスペースの断片をリサイクルすることをお勧めします。 ロックフリースキーマ変更機能を有効にする方法の詳細については、「ロックフリースキーマ変更機能の有効化」をご参照ください。
デフラグの実行時間が予想よりも長い場合、デフラグを停止できますか?
はい。デフラグの実行時間が予想よりも長い場合は、チケット詳細ページの [実行] セクションでデフラグを停止できます。