Amazon RDS - MariaDB 功能

MariaDB 是一种流行的开源关系数据库,它通过其社区版功能在 Amazon RDS 服务中提供。MariaDB 的几乎所有功能都可以在 RDS 平台中利用。以下是 RDS 平台中 MariaDB 主要功能的简要说明。

支持的版本

版本 10.0、10.1、10.2 是 RDS 平台支持的主要版本。如果在创建数据库时未提及任何版本,则默认为当时的最新版本。以下是如何在 Python SDK 程序中使用 AWS API 获取所有支持的数据库引擎版本的示例。

import boto3

client = boto3.client('rds')

response = client.describe_db_engine_versions(
    DBParameterGroupFamily='',
    DefaultOnly=True,
    Engine='mariadb',
    EngineVersion='',
    ListSupportedCharacterSets=False, #True,
)

print(response)

当我们运行上述程序时,我们得到以下输出 −

{ 
   "ResponseMetadata": { 
      "RetryAttempts": 0,
      "HTTPStatusCode": 200,
      "RequestId": "16179fbd-9d07-425b-9b86-cc61359ce7b4",
      "HTTPHeaders": { 
         "x-amzn-requestid": "16179fbd-9d07-425b-9b86-cc61359ce7b4",
         "date": "Fri, 14 Sep 2018 06:45:52 GMT",
         "content-length": "1658",
         "content-type": "text/xml"
      }
   },
   "u'DBEngineVersions'": [ 
      { 
         "u'Engine'": "mariadb",
         "u'DBParameterGroupFamily'": "mariadb10.2",
         "u'SupportsLogExportsToCloudwatchLogs'": true,
         "u'SupportsReadReplica'": true,
         "u'DBEngineDescription'": "MariaDb Community Edition",
         "u'EngineVersion'": "10.2.12",
         "u'DBEngineVersionDescription'": "mariadb 10.2.12",
         "u'ExportableLogTypes'": [ 
            "audit",
            "error",
            "general",
            "slowquery"
         ],
         "u'ValidUpgradeTarget'": [ 
            { 
               "u'Engine'": "mariadb",
               "u'IsMajorVersionUpgrade'": false,
               "u'AutoUpgrade'": false,
               "u'Description'": "MariaDB 10.2.15",
               "u'EngineVersion'": "10.2.15"
            }
         ]
      }
   ]
}

数据库安全

RDS MariaDB 的安全性分为三个层次进行管理。

使用 IAM

在此方法中,IAM 用户应具有适当的策略和权限。授予此类权限由授予这些权限的账户持有人或超级用户决定。

使用 VPC

您可以使用 VPC 安全组或 DB 安全组来决定哪些 EC2 实例可以打开与 DB 实例的端点和端口的连接。这些连接也可以使用 SSL 进行。

使用 IAM 数据库身份验证

在此方法中,您使用 IAM 角色和身份验证令牌。身份验证令牌会生成一个唯一值,该值与访问过程中使用的 IAM 角色相关。在这里,同一组凭证用于数据库以及其他 AWS 资源,如 EC2 和 S3 等。

缓存预热

缓存预热可以在数据库实例关闭时保存缓冲池的当前状态,然后在数据库实例启动时从保存的信息重新加载缓冲池,从而为您的 MariaDB 数据库实例提供性能提升。这种方法绕过了缓冲池从正常数据库使用中"预热"的需要,而是使用已知常见查询的页面预加载缓冲池。

缓存预热主要为使用标准存储的数据库实例提供性能优势。

您可以创建一个事件来自动定期转储缓冲池。例如,以下语句创建一个名为 periodic_buffer_pool_dump 的事件,该事件每小时转储缓冲池。

CREATE EVENT periodic_buffer_pool_dump 
   ON SCHEDULE EVERY 1 HOUR 
   DO CALL mysql.rds_innodb_buffer_pool_dump_now();