本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 資料庫執行個體才支援此程序。
在執行期間,二進位記錄會暫時停用,以防止這些管理命令遭到複寫。
此程序會將所有操作記錄在 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 +-----------+
注意
縮減操作可能需要一些時間,具體取決於暫存資料表空間大小和目前的工作負載。
重要
只有在所有佔用大小的暫存資料表不再使用時,暫存資料表空間才會縮減。建議您在執行個體上沒有作用中暫存資料表空間時執行此程序。