TDSQL·专家篇·租户侧安全功能

weixin_44020914 2022-03-17 11:13:29

本文为您介绍租户侧强同步复制、自动故障转移、数据安全加密等安全功能。

强同步复制(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小时持续监控。
如果发生故障,系统将自动重启数据库及相关进程;如果节点崩溃无法恢复,将通过备份文件自动重建节点,具体流程如下所示:

·····

更多请见:https://cloud.tencent.com/document/product/237/46504

...全文
310 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 随着 Web UI 框架(如 EasyUI、JqueryUI、Ext、DWZ 等)的不断发展与成熟,系统界面的统一化设计逐渐成为可能,同时代码生成器也能够生成符合统一规范的界面。在这种背景下,“代码生成 + 手工合并”的半智能开发模式正逐渐成为新的开发趋势。通过代码生成器,单表数据模型以及一对多数据模型的增删改查功能可以被直接生成并投入使用,这能够有效节省大约 80% 的开发工作量,从而显著提升开发效率。 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。它引领了一种全新的开发模式,即从在线编码(Online Coding)到代码生成器生成代码,再到手工合并(Merge)的智能开发流程。该平台能够帮助开发者解决 Java 项目中大约 90% 的重复性工作,让开发者可以将更多的精力集中在业务逻辑的实现上。它不仅能够快速提高开发效率,帮助公司节省大量的人力成本,同时也保持了开发的灵活性。 JEECG 的核心宗旨是:对于简单的功能,可以通过在线编码配置来实现;对于复杂的功能,则利用代码生成器生成代码后,再进行手工合并;对于复杂的流程业务,采用表单自定义的方式进行处理,而业务流程则通过工作流来实现,并且可以扩展出任务接口,供开发者编写具体的业务逻辑。通过这种方式,JEECG 实现了流程任务节点和任务接口的灵活配置,既保证了开发的高效性,又兼顾了项目的灵活性和可扩展性。

87

社区成员

发帖
与我相关
我的任务
社区描述
TDSQL开发者
其他 企业社区
社区管理员
  • csdnsqst0015
  • kikokingzz
  • karina17
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区初立,为了鼓励小友们在社区中积极互动,现在有一个活动如下:

试试用AI创作助手写篇文章吧