Amazon RDS - MariaDB 功能


MariaDB 是一种流行的开源关系数据库,可在亚马逊 RDS 服务中使用其社区版功能。MariaDB 的几乎所有功能都可以在 RDS 平台中利用。下面简单介绍一下MariaDB在RDS平台上的主要特性。

支持的版本

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 安全组或数据库安全组来决定哪些 EC2 实例可以打开与数据库实例的终端节点和端口的连接。这些连接也可以使用 SSL 进行。

使用 IAM 数据库身份验证

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

缓存预热

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

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

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

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