mysql.rds_execute_operation - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

mysql.rds_execute_operation

执行 InnoDB 操作以管理缓冲池状态和临时表空间。此过程可用于动态控制 InnoDB 操作,例如转储和加载缓冲池状态或截断临时表空间。

语法

CALL mysql.rds_execute_operation(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 命令来缩小临时表空间。

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 +-----------+
注意

收缩操作可能需要一些时间,具体取决于临时表空间大小和当前工作负载。

重要

只有当所有影响临时表空间大小的临时表都不再使用时,临时表空间才会缩小。我们建议您在实例上没有任何活动的临时表空间时运行此过程。