Amazon RDS - MySQL DBA 任务


与其他数据库一样,Amazon RDS MYSQL 也需要 DBA 任务来微调数据库并定期进行健康检查等。但由于 AWS 平台不允许 shell 访问数据库,因此可以执行的 DBA 任务数量有限。与本地安装 MySQL 相比。以下是可以在 AWS RDS MySQL 数据库中执行的常见 DBA 任务及其描述的列表。

访问错误日志

可以使用 Amazon RDS 控制台或使用 Amazon RDS CLI 检索日志来查看 MySQL 错误日志 ( mysql-error.log) 文件。mysql-error.log 每 5 分钟刷新一次,其内容附加到 mysql-error-running.log。然后,mysql-error-running.log 文件每小时轮换一次,并保留过去 24 小时内生成的每小时文件。

使用 RDS 控制台

下面是上述两个日志文件的链接。

mysql_rds_log1.JPG

使用 CLI

使用 CLI,日志文件作为 JSON 对象发布到 CloudWatch Logs。

aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}' \
    --apply-immediately
   

终止长时间运行的会话或查询

有时,DBA 需要终止长时间运行的会话或查询,因为该会话或查询不能足够快地给出结果。DBA 的任务是首先查找查询的进程 ID,然后使用 RDS 函数终止查询。以下命令是示例。

# get the ID
Select * from INFORMATION_SCHEMA.PROCESSLIST
#Apply the Kill Function
CALL mysql.rds_kill(processID);

改善崩溃恢复时间

我们可以通过设置名为 innodb_file_per_table 的数据库参数来缩短崩溃恢复时间。我们可以在RDS控制台中找到该参数,如下所示。

mysql_DBA_parameters.JPG

接下来我们可以搜索参数名称,如下所示。

mysql_innodb_file_param.JPG

Amazon RDS 将 innodb_file_per_table 参数的默认值设置为 1,这允许您删除单个 InnoDB 表并回收这些表为数据库实例使用的存储。这加快了从崩溃中恢复的时间。

停止并重新启动数据库

停止数据库、重新启动数据库或创建快照等可以通过 RDS 控制台轻松完成,如下图所示。

mysql_db_stop_reboot.JPG