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 コマンドを実行して一時テーブルスペースを縮小します。
CALLmysql.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 +-----------+
注記
一時テーブルスペースのサイズと現在のワークロードによっては、縮小オペレーションに時間がかかる場合があります。
重要
一時テーブルスペースは、そのサイズに寄与したすべての一時テーブルが使用されなくなった場合にのみ縮小されます。インスタンスにアクティブな一時テーブルスペースがない場合は、この手順を実行することをお勧めします。