全球数据库网络常见问题

本文档介绍了全球数据库网络(GDN)的常见问题。

GDN主从数据路由的逻辑是什么?

GDN中的集群(主集群和从集群)读写请求路由,是由每个集群的数据库代理配置所决定。您的应用程序无需修改代码,只需连接到相应集群的地址,读写请求便会按以下逻辑自行路由:

  • 写请求(如INSERTUPDATEDELETE等)、其他广播语法(如SET语句)和事务中的所有请求,会被自动转发到主集群的主节点处理。

  • 读请求默认会路由到本地从集群的只读节点,实现就近访问。如果开启了会话一致性,部分读请求也可能被路由到主集群的主节点以保证数据一致性。

此外,GDN还提供了一个统一的连接地址,这不仅能够实现就近访问,还能在主集群切换后保持域名不变。

单击展开查看详细转发逻辑

目标节点

转发的请求

只发往主集群的主节点

  • 所有DML操作(INSERTUPDATEDELETESELECT FOR UPDATE等)。

  • 所有DDL操作(建表或库、删表或库、变更表结构、权限等)。

  • 所有事务中的请求。

  • 用户自定义函数。

  • 存储过程。

  • EXECUTE语句。

  • Multi Statements

  • 使用到临时表的请求。

  • SELECT last_insert_id()

  • 所有对用户变量的查询和更改。

  • SHOW PROCESSLIST

  • KILL(SQL语句中的KILL,非命令KILL)。

发往只读节点或主节点

说明

仅当数据库代理配置中主库是否接受读时会发往主节点。

  • 非事务中的读请求。

  • COM_STMT_EXECUTE命令。

总是发往所有节点

  • 所有系统变量的更改。

  • USE命令。

  • COM_STMT_PREPARE命令。

  • COM_CHANGE_USERCOM_QUITCOM_SET_OPTION等命令。

说明

从集群中的主节点主要用于异步复制主集群数据,不处理任何读写请求。因此,表中的主节点指的是主集群中的主节点,而只读节点则指的是从集群中的只读节点。

说明
  • 读写模式可读可写(自动读写分离)模式的集群地址或自定义地址支持GDN的读写分离服务。

  • 主地址读写模式只读模式的自定义地址不支持GDN的读写分离服务。

  • 为降低主从集群间的复制延迟对业务可能带来的影响,建议您在从集群上设置自定义集群地址时,将主库是否接受读设置为,并设置一致性级别最终一致性(弱)

  • 若您的业务场景无法接受从集群出现延迟,建议直接连接主集群的集群地址进行访问。

什么是GDN集群跨地域延迟?

GDN通过异步物理复制机制实现跨地域数据同步。借助物理日志并行回放等技术,主从集群间的数据复制延迟可控制在2秒以内。这种同步方式不会影响主集群的性能和稳定性,从而确保了数据在全局范围内的最终一致性。同时,GDN中的每个集群均提供读写服务,并具备异地灾备能力。

如何查看GDN跨地域延迟历史?

修改了内容,从主集群查看换到了在GDN中查看。

  1. 登录PolarDB控制台,单击左侧导航栏中的全球数据库网络(GDN)

  2. 全球数据库网络(GDN)页面,找到目标GDN,单击全球数据库网络ID进入GDN详情页。

  3. 单击拓扑图区域左侧的查看复制延迟按钮。

  4. 您可在弹出的对话框中进行筛选并查看指定时间段内的延迟时间。image

如何配置GDN跨地域延迟监控?

  1. 登录PolarDB控制台,单击左侧导航栏中的全球数据库网络(GDN)

  2. 全球数据库网络(GDN)页面,找到目标GDN,单击全球数据库网络ID进入GDN详情页。

  3. 单击进入目标从集群,在左侧导航栏中,选择性能监控

  4. 选择添加报警规则

  5. 在创建报警规则页面内,配置以下参数:

    1. 资源范围设置为实例

    2. 将希望监控的从集群添加至关联资源中。

    3. 规则描述中,单击image添加规则,选择简单指标

      1. 监控指标中依次选择集群ID->只读节点复制延迟

      2. 监控图标预览中,只保留从集群的读写节点即可。

      3. 规则名称阈值及报警级别请根据实际业务情况设置。

      4. 单击确定完成规则描述配置。

    4. 其他参数请根据实际业务情况设置。

    5. 单击确认完成报警规则配置。

说明

关于报警规则的更多信息,请参见创建报警规则

如何解决GDN主从同步延迟很大?

如果从集群与主集群的规格差异较大,当主集群面临写入压力增加时,从集群在同步数据时,IOPS达到瓶颈将导致主从同步延时增加。因此,建议将从集群的规格升级至与主集群相匹配。

GDN集群如何进行主从切换?

GDN集群进行主从切换的具体操作请参见切换主集群SwitchOverGlobalDatabaseNetwork接口。

说明
  • 主从集群切换不会交换两个集群的链接地址,请注意应用程序的配置。如果当前GDN中原主集群已申请公网地址,请确保新的主集群也拥有集群公网地址,否则出现应用程序无法访问数据库的情况。查看连接地址请参见查看连接地址和端口

  • GDN中的主从集群切换可在10分钟内完成(实际测试结果为5分钟以内)。在切换过程中,可能会出现不超过160秒的连接闪断。建议您在业务低谷期进行切换操作,并确保应用具备重连机制。

如何清理GDN主从空间以及表空间碎片?

清理GDN主从空间以及表空间碎片的具体操作请参见回收表碎片空间

说明
  • 执行OPTIMIZE命令释放主集群空间,从集群会同步进行空间清理,不需要单独在从集群再次执行该命令。

  • 执行OPTIMIZE命令需要开启Binlog,请在主从集群的参数配置中进行设置,开启Binlog会集群自动重启,建议在业务低峰期进行操作。详情请参见开启Binlog

  • 执行OPTIMIZE TABLE命令会导致锁表,建议在业务低峰期操作。在DMS中执行OPTIMIZE TABLE所需时间无法预估,支持查询无锁变更进度。详情请参见查看无锁变更进度

如何添加GDN从集群?

添加GDN从集群的具体操作请参见添加从集群

说明
  • 一个集群只能属于一个GDN。

  • 从集群只能新建,不支持将已有集群添加为从集群。

  • 主集群和从集群的数据库引擎版本需保持一致,即都为MySQL 8.0、MySQL 5.7MySQL 5.6。

  • GDN中的从集群(非Serverless集群)计算节点的规格要求至少为4核及以上。

  • GDN中的每个集群都默认包含2个节点,最多可增加至16个节点。

  • 创建从集群所需的时间与主集群的数据量以及新建集群的耗时密切相关。首次数据拷贝过程较为缓慢,请耐心等待。

  • 从集群不支持创建数据库账号,请在主集群中创建账号,系统将自动同步至从集群。

  • 创建从集群对主集群性能影响较小。

  • GDN不支持同时创建多个从集群,请在当前从集群创建完成后,再进行新的从集群创建。

  • 内核版本升级支持先升级从集群,再升级主集群。

如何删除GDN?

删除GDN的具体操作请参见删除全球数据库网络

重要
  • 当全球数据库网络(GDN)中仅存在主集群时,才可进行删除操作。

  • GDN一旦删除将无法恢复,请谨慎处理。

  • 删除GDN后,连接该GDN的应用程序将无法访问数据库,请及时调整应用程序中的相关连接代码。

  • 在退订(释放)GDN主集群时,GDN会自动同步删除,无需单独执行删除GDN的操作。

GDN有哪些限制操作?

  • 全球数据库网络(GDN)中的集群支持使用列存索引(IMCI)功能,但需开启loose_polar_enable_imci_with_standby集群参数后,且集群版本需满足以下条件之一,才可添加只读列存节点。

    • MySQL 8.0.1,且修订版本为8.0.1.1.48及以上。

    • MySQL 8.0.2,且修订版本为8.0.2.2.27及以上。

  • GDN中的集群支持Serverless集群或在固定规格集群上开启Serverless功能。然而,当主集群的内核版本满足以下条件时,GDN中的所有集群至少需要有一个只读节点。

    • MySQL 8.0.1,且内核小版本为8.0.1.1.42以下版本。

    • MySQL 8.0.2,且内核小版本为8.0.2.2.23以下版本。

  • GDN中的集群不支持库表恢复功能。

说明

如需恢复丢失的数据,可以先按照时间点恢复一个新集群,然后将数据迁移至GDN的主集群。

  • GDN不支持单独同步特定的数据库,而是可以在集群级别进行配置同步。

GDN可以更换VPC吗?

支持切换专有网络VPC和交换机。若您使用了创建全局域名,则需重新打通新VPCGDN中其他集群所在VPC之间的连接。

GDN主从集群Binlog逻辑是什么?

主从集群可在控制台或通过修改loose_polar_log_bin参数开启Binlog

说明

开启Binlog集群会自动重启,建议在业务低峰期进行操作。

  • 主集群开启Binlog后,Binlog同步仅限于主集群内部节点之间同步,主集群的Binlog不会同步到从集群。

  • 从集群开启Binlog后,只会记录在配置文件中,从集群内部并没有进行Binlog同步,也不会与主集群进行Binlog同步。

在将集群切换至主集群后,写入的Binlog仅会追加到本集群的Binlog文件中。经过多次切换主集群后,两个集群的Binlog合并后可以提供一份完整的Binlog。然而,单独查看每个集群的Binlog时,所呈现的仅是其作为主集群时生成的Binlog,并非一份完整的Binlog。

PolarDB创建GDN时报错提示当前记录中不存在提供的DBClusterID?

您可以通过如下几种方式来进行检查或操作:

  • 检查集群ID及其是否存在。您可以在PolarDB控制台确认集群ID的准确性及有效性。

  • 如果集群ID正确且集群存在,但仍然出现错误,可能是由于集群配置不符合GDN的要求。请参考全球数据库网络(GDN)的适用范围进行检查。

  • 检查您的集群是否处于正常运行状态,并确认没有正在进行的维护或升级操作。

  • 检查集群是否具备足够的资源(如CPU、内存和存储空间)以支持GDN的创建。

很多地区都有独立数据是否能使用GDN?

若您在多个地域部署了独立的数据集群,并需使用全球数据库网络(GDN)功能,则必须将这些分散于不同地域的集群数据集中导入到一个统一的源集群中。基于该统一的源集群,您可以创建GDN主集群,随后逐个添加其他地域的从集群。