mysql.rds_execute_operation - Amazon Relational Database Service

mysql.rds_execute_operation

InnoDB オペレーションを実行して、バッファプールの状態と一時テーブルスペースを管理します。この手順を使用して、バッファプールの状態のダンプとロード、一時テーブルスペースの切り捨てなどの InnoDB オペレーションを動的に制御できます。

構文

CALL mysql.rds_execute_operation(operation);

パラメータ

オペレーション

文字列。実行する InnoDB オペレーション。次の値を指定できます。

  • innodb_buffer_pool_dump_now – バッファプールの現在の状態をダンプするオペレーション。

  • innodb_buffer_pool_load_now – 保存されたバッファプールの状態をロードするオペレーション。

  • innodb_buffer_pool_load_abort – バッファプールのロードオペレーションを中止するオペレーション。

  • innodb_truncate_temporary_tablespace_now – 一時テーブルスペースを切り捨てるオペレーション。

使用に関する注意事項

この手順は、MariaDB バージョン 11.8 以降を実行している MariaDB DB インスタンスのみでサポートされます。

実行中、バイナリログ記録は、これらの管理コマンドのレプリケーションを防ぐために一時的に無効になります。

この手順では、mysql.rds_history テーブル内のすべてのオペレーションをログに記録することで監査証跡を維持します。

次の例は、mysql.rds_execute_operation を使用した一時的なテーブルスペースの縮小を示しています。

現在の一時テーブルスペースのサイズを確認するには、次のクエリを実行します。

SELECT FILE_SIZE FROM information_schema.innodb_sys_tablespaces WHERE name LIKE 'innodb_temporary'; +------------+ | FILE_SIZE | +------------+ | 6723469312 | -- 6.3 GB +------------+

一時テーブルを削除しても、グローバルテーブルスペースのストレージ使用量は減りません。グローバルテーブルスペースのサイズを減らすには、mysql.rds_execute_operation コマンドを実行して一時テーブルスペースを縮小します。

CALL mysql.rds_execute_operation('innodb_truncate_temporary_tablespace_now'); Query OK, 2 rows affected (0.004 sec)

手順を実行したら、スペースが再利用されたことを確認します。

SELECT FILE_SIZE FROM information_schema.innodb_sys_tablespaces WHERE name LIKE 'innodb_temporary'; +-----------+ | FILE_SIZE | +-----------+ | 12582912 | -- 12 MB +-----------+
注記

一時テーブルスペースのサイズと現在のワークロードによっては、縮小オペレーションに時間がかかる場合があります。

重要

一時テーブルスペースは、そのサイズに寄与したすべての一時テーブルが使用されなくなった場合にのみ縮小されます。インスタンスにアクティブな一時テーブルスペースがない場合は、この手順を実行することをお勧めします。