PolarDB是阿里巴巴自研的新一代云原生关系型数据库,在存储计算分离架构下,利用了软硬件结合的优势,为用户提供具备极致弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB 100%兼容MySQL 5.6/5.7/8.0。我们使用它就是因为它的这一点,当数据和体量达到一定级别是,可以将数据库平稳的从mqsql迁移到 PolarDB,同时解决了存储和性能的问题

PolarDB采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。PolarDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势,例如PolarDB MySQL引擎作为超级MySQL,性能最高可达开源MySQL的6倍(在1024并发sysbench_insert场景下,PolarDB MySQL引擎与开启主备半同步Semi-Sync的开源MySQL的性能对比),而成本只有商用数据库的1/10,每小时最低只需1.3元即可体验完整的产品功能。PolarDB MySQL引擎100%兼容原生MySQL和RDS MySQL,您可以在不修改应用程序任何代码和配置的情况下,将MySQL数据库迁移至PolarDB MySQL引擎。

  • 计算与存储分离,共享分布式存储。 采用计算与存储分离的设计理念,满足业务弹性扩展的需求。各计算节点通过分布式文件系统(PolarFileSystem)共享底层的存储(PolarStore),极大降低了用户的存储成本。
  • 一写多读,读写分离。 PolarDB集群版采用多节点集群的架构,集群中有一个主节点(可读可写)和至少一个只读节点。当应用程序使用集群地址时,PolarDB通过内部的代理层(PolarProxy)对外提供服务,应用程序的请求都先经过代理,然后才访问到数据库节点。代理层不仅可以做安全认证和保护,还可以解析SQL,把写操作发送到主节点,把读操作均衡地分发到多个只读节点,实现自动的读写分离。对于应用程序来说,就像使用一个单点的数据库一样简单。

云原生容器分布式存储 云原生分布式数据库polardb_云原生容器分布式存储

可读可写模式转发逻辑如下:

  • 只发往主节点:
  • 所有DML操作(INSERT、UPDATE、DELETE、SELECT FOR UPDATE)。
  • 所有DDL操作(建表或库、删表或库、变更表结构、权限等)。
  • 所有事务中的请求。
  • 用户自定义函数。
  • 存储过程。
  • EXECUTE语句。
  • Multi Statements
  • 使用到临时表的请求。
  • SELECT last_insert_id()。
  • 所有对用户变量的查询和更改。
  • KILL(SQL语句中的KILL,非命令KILL)。
  • 发往只读节点或主节点: 说明 仅当主库是否接受读选择为是时会发往主节点。
  • 非事务中的读请求。
  • COM_STMT_EXECUTE命令。
  • 总是发往所有节点:
  • 所有系统变量的更改。
  • USE命令。
  • COM_STMT_PREPARE命令。
  • COM_CHANGE_USER、COM_QUIT、COM_SET_OPTION等命令。
  • SHOW PROCESSLIST。

 可读可写模式转发逻辑如下:

  • 只发往主节点:
  • 所有DML操作(INSERT、UPDATE、DELETE、SELECT FOR UPDATE)。
  • 所有DDL操作(建表或库、删表或库、变更表结构、权限等)。
  • 所有事务中的请求。
  • 用户自定义函数。
  • 存储过程。
  • EXECUTE语句。
  • Multi Statements
  • 使用到临时表的请求。
  • SELECT last_insert_id()。
  • 所有对用户变量的查询和更改。
  • KILL(SQL语句中的KILL,非命令KILL)。
  • 发往只读节点或主节点: 说明 仅当主库是否接受读选择为是时会发往主节点。
  • 非事务中的读请求。
  • COM_STMT_EXECUTE命令。
  • 总是发往所有节点:
  • 所有系统变量的更改。
  • USE命令。
  • COM_STMT_PREPARE命令。
  • COM_CHANGE_USER、COM_QUIT、COM_SET_OPTION等命令。
  • SHOW PROCESSLIST。

产品优势

  • 大容量 最高200 TB,您不再需要因为单机容量的天花板而去购买多个实例做分片,由此简化应用开发,降低运维负担。
  • 高性能 大幅提升OLTP性能,支持超过50万次/秒的读请求以及超过15万次/秒的写请求。
  • 分钟级扩缩容 存储与计算分离的架构,配合容器虚拟化技术和共享存储,增减节点只需5分钟。存储容量自动在线扩容,无需中断业务。
  • 读一致性 集群地址利用LSN(Log Sequence Number)确保读取数据时的全局一致性,避免因为主备延迟引起的不一致。
  • 毫秒级延迟(物理复制) 利用基于Redo的物理复制代替基于Binlog的逻辑复制,提升主备复制的效率和稳定性。即使对大表进行加索引、加字段等DDL操作,也不会造成数据库的延迟。
  • 秒级快速备份 不论多大的数据量,全库备份只需30秒,而且备份过程不会对数据库加锁,对应用程序几乎无影响,全天24小时均可进行备份。

您可以通过以下方式管理PolarDB集群,包括创建集群、创建数据库、创建账号等。

  • 控制台:提供图形化的Web界面,操作方便。
  • CLI:控制台上所有的操作都可以通过CLI实现。
  • SDK:控制台上所有的操作都可以通过SDK实现。
  • API:控制台上所有的操作都可以通过API实现。

云原生容器分布式存储 云原生分布式数据库polardb_应用程序_02

    PolarDB集群版是一个由多节点构成的数据库集群,包括一个主节点和多个只读节点。对外默认提供两个地址,分别为主地址和集群地址。其中,集群地址功能由PolarDB数据库代理提供,集群地址分为可读可写和只读两种读写模式,可读可写模式支持读写分离,只读模式支持按连接数负载

主要功能特点:

 1. 数据迁移

   支持通过DTS进行数据迁移:1、从RDS迁移至PolarDB  2、PolarDB间的数据迁移 3、从PolarDB迁移至其它数据库

 2. 数据同步

  支持通过DTS进行数据同步:   1、PolarDB间的数据同步  2、PolarDB与其它数据库的数据同步

 3.集群管理

     数据库集群管理 :包括节点设置、白名单设计、集群标签设置、账号管理

 4. 数据代理

    提供集群地址和主地址、数据库集群连接、读写分离、动态脱敏、数据库代理配置功能

5. 数据安全  

     设置透明数据加密、设置SSL加密

6. 备份与恢复

   提供数据库备份和恢复功能