本文为您介绍租户侧强同步复制、自动故障转移、数据安全加密等安全功能。
强同步复制(MAR)
背景
数据库中记录了数据,若要在多台数据库中切换,数据必须是同步的,所以数据同步技术是数据库高可用方案的基础。
目前,开源 MySQL 数据库数据复制包括异步复制、半同步复制两种类型。这两种复制技术的主要问题是,当出现节点故障时,将可能导致数据丢失或错乱,且这类复制技术以串行复制为主,性能相对比较低。
解决方案
腾讯云基于 MySQL 协议自主研发的并行多线程强同步复制方案(Multi-thread Asynchronous Replication,MAR),在应用层发起请求时,只有当从节点(Slave)返回信息成功后,主节点(Master)才向应用层应答请求成功,以确保主从节点数据完全一致。
使用强同步复制时,如果主库与备库自建的网络中断或备库出现问题,主库也会被锁住(Hang),此时如果只有一个主库或一个备库,将无法做高可用方案,因为单一服务器服务时,如果出现故障,将直接导致部分数据完全丢失,不符合金融级数据安全要求。
因此,MariaDB 在强同步技术的基础上,提供强同步可退化的方案,方案原理类似于半同步,但实现方案与 Google 的半同步技术不同。
另外,MariaDB 强同步将串行同步线程并行化,引入工作线程能力,大幅度提高性能;对比在跨可用区(IDC 机房,延迟约 10ms - 20ms)同样的测试方案下,MAR 技术性能优于 MySQL 5.6 的半同步约5倍,优于 MariaDB Galera Cluster 性能1.5倍;在 OLTP RW(读写混合,主从架构)下,MAR 技术性能是 MySQL 5.7 异步的1.2倍,具体由英特尔®技术团队测试的性能对例如下图所示:
自动故障转移与恢复
在生产系统中,通常都需要用高可用方案来保证系统不间断运行,数据库作为系统数据存储和服务的核心,其可用要求高于计算服务资源。
MariaDB 高可用方案原理是让多个数据库服务协同工作,当一台数据库故障,其余机器立即顶替工作,以使服务不中断或只中断很短时间,该方案简称主从高可用,也可称主备高可用。
在普通的主从高可用基础上,MariaDB 还支持如下功能:
支持故障自动转移,集群成员自动控制,故障节点自动从集群中移除;如果是实例级的主从切换,换后 VIP(虚拟 IP)不变;基于强同步复制策略下,主从切换将保证主从数据完全一致,可满足金融级数据一致性要求。
支持故障自动恢复,承载分片的物理节点故障,调度系统自动尝试恢复节点,如果原节点无法恢复,将在30分钟内自动申请新资源,并通过备份重建(Rebuild)节点,并将节点自动加入集群,以确保实例长期来保持完整的高可用架构。
每个节点都包含完整的数据副本,可以根据数据库管理页需求切换。
支持免切设置,即可以设置在某一特殊时期,不处理故障转移。
可支持配置为 x86 的计算机设备,且无需共享存储设备。
支持跨可用区部署,实例的主机和从机可分处于不同机房(无论是否同城),数据之间通过专线网络进行实时数据复制。若本地为主机,远程为从机,首先将访问本地节点,若本地实例发生故障或访问不可达,则访问远程从机。若配合腾讯 VPC 网络环境,可支持同城双活架构,即业务系统可以直接在两个中心读写数据库。
跨可用区部署特性为 MariaDB 提供了多可用区容灾的能力,以避免单 IDC(Internet Data Center)部署的运营风险。
MariaDB 的每一个分片都支持基于强同步的高可用方案,如果主数据库故障时,系统将立即自动选举出最优备机顶替工作,切换过程对用户透明,不改变访问 IP,并且对数据库和底层物理设备提供7 x 24小时持续监控。
如果发生故障,系统将自动重启数据库及相关进程;如果节点崩溃无法恢复,将通过备份文件自动重建节点,具体流程如下所示:
多项国家或国际认证
MariaDB 符合国家相关信息安全标准,并代表腾讯云数据库通过多项国家和国际认证。
MariaDB 白金会员
ACMUG 和中国开源数据库专业委员会的主席团成员
ISO27001
ISO27001:2013
ISO20000
ISO20000-1:2011
ISO22301
ISO9001
ISO27018
PCI DSS 1级服务提供商
SOC 审计
ITSS 云服务增强级认证
公有云三级备案和测评
金融云四级备案和测评
可信云云数据库服务认证
可信云云用户数据安全保护能力测评
可信云金牌运维专项评估
ITSS 认证
金牌等级通过 CSA STAR 认证,同时获得 CNAS 和 UKAS 国内外双认可信息安全管理体系认证
数据安全加密
MariaDB 支持连接加密(SSL 连接加密),SSL 确保了来往于数据库和服务器之间的流量安全。
SQL 防火墙
SQL 防火墙是对用户发送的 SQL 语句进行语法解析,具有过滤非法 SQL 语句的安全能力,其与 SQL Engine 配合,可以对用户预先定义的非法 SQL 语句进行判断,从而进行过滤和阻断,可以有效地预防 SQL 注入恶意非法攻击。
说明
SQL 防火墙可以配合 WAF(Web Application Firewall) 等一起使用,因考虑到业务情况和 SQL 复杂性,目前 MariaDB 的 SQL 防火墙暂未预存规则。
全维度的安全审计
安全审计是一项最重要的事后追溯手段,例如,国家等级保护(三级)明确要求信息系统应支持审计能力。MariaDB 提供如下三个层面的审计能力,为用户提供完善的安全保护:
运维系统的安全审计,由赤兔运营系统的操作日志提供安全能力。
数据库系统的安全审计,由腾讯云自研的数据库审计系统完成。
服务器操作系统的安全审计,由腾讯云自研的铁将军系统提供。
说明
公有云默认全部配置安全审计功能。
专有云默认配置系统操作日志(赤兔系统),选配数据库 SQL 审计、服务器操作审计功能。
内核级安全策略
MariaDB 在数据库内核层面提供了多种安全方案并开源,部分功能也已获得社区认可。部分内核安全手段列举如下:
慢速删除
当用户执行 drop table 或 alter table ... drop partition 指令时,数据库没有立即删除表空间文件,而是将其重命名,并在后台逐步缩小并最终删除。该功能可避免因单次删除过大表空间文件,使服务器的文件系统 IO 负载突增,从而导致系统出现波动的情况。
防止误删元数据
只允许已授权用户登录系统,删除存储元数据的库表,防止用户误操作导致业务不可用。
禁止非授权用户安装插件
数据库虽然提供了标准的接口,允许用户实现自定义的功能,但黑客经常利用该漏洞以实现攻击。因此,只允许规定的管理员用户挂载插件。
禁止非授权用户访问物理服务器文件系统
我们禁止非授权用户访问物理服务器的目录结构和文件系统,从而防止黑客通过选择文件、注入文件、路径探测等方式绕开安全系统。
数据销毁
腾讯云用户在销毁 MariaDB 实例时,存储在 MariaDB 数据库的所有数据(包括所有备份数据)都会被销毁,腾讯云不会保留数据,更不会主动恢复用户的数据库实例。
单中心容灾部署建议
单中心容灾时,数据库集群需要预防如下故障:
机房内交换机、负载转发或网卡等单点故障。
机架电源、风扇、冷却等相关的单点故障。
数据库服务器硬件的单点故障。
因此,建议单中心容灾部署至少采用如下要求:
交换机、负载转发等网络设备至少双活容灾。
数据库服务器、管理调度建议采用一主二从模式部署。
同模块不同设备需跨机架部署。
需部署数据备份模块。
两地三中心部署建议
两地三中心即在同城双中心的基础上,增加一个灾备中心。两个灾备实例之间,通过 DCN(Data Communication Network)同步方式进行同步,以确保数据一致。