华为云用户手册

  • 参数解析 表1 慢查询相关的参数解析 参数名称 说明 long_query_time 当SQL语句执行时间超过此数值时,就会被记录到慢日志中。精度可达秒级别,默认为10s,建议设置为1s。 注意:锁等待时间并不计算在执行时间内。 log_queries_not_using_indexes 是否记录未使用索引的查询,默认OFF。 log_throttle_queries_not_using_indexes 每分钟允许写入到慢查询日志的未使用索引的语句,默认为0。
  • 支持审计的TaurusDB关键操作列表 通过 云审计 服务,您可以记录与TaurusDB实例相关的操作事件,便于日后的查询、审计和回溯,支持的主要操作事件如表1所示。 表1 云审计服务支持的TaurusDB操作列表 操作名称 资源类型 事件名称 创建实例 instance createInstance 添加只读节点 instance addNodes 删除只读节点 instance deleteNode 重启实例 instance restartInstance 修改实例端口 instance changeInstancePort 修改实例安全组 instance modifySecurityGroup 只读实例升级为主实例 instance instanceSwitchOver 绑定或解绑公网IP instance setOrResetPublicIP 删除实例 instance deleteInstance 重命名实例名称 instance renameInstance 修改节点优先级 instance modifyPriority 创建数据库 instance createDatabase 创建数据库用户 instance createDatabaseUser 重置密码 instance resetPassword 删除数据库 instance dropDatabase 删除数据库用户 instance dropDatabaseUser 修改数据库用户密码 instance modifyDatabaseUserPwd 备份恢复到新实例 instance restoreInstance 开启读写分离 instance openProxy 关闭读写分离 instance closeProxy 设置读写分离权重 instance setProxyWeight 变更实例的CPU和内存规格 instance resizeFlavorOrVolume 设置秒级监控 instance openSecondExtend 升级内核小版本 instance upgradeVersion 添加标签 instance addInstanceTags 数据库用户授权 instance grantDatabaseUser 回收数据库用户权限 instance revokeDatabaseUser 申请内网 域名 instance createDnsName 修改内网域名 instance modifyDnsName 修改代理实例路由模式 instance modifyProxyRouteMode 修改读写分离端口号 instance modifyProxyPort 申请数据库代理内网域名 instance proxyCreateDns 修改数据库代理内网域名 instance modifyProxyDnsName 删除数据库代理内网域名 instance deleteProxyDnsName 缩容数据库代理节点 instance reduceProxy 创建备份 backup createManualSnapshot 设置自动备份策略 backup setBackupPolicy 删除备份 backup deleteManualSnapshot 创建参数模板 parameterGroup createParameterGroup 修改参数模板 parameterGroup updateParameterGroup 删除参数模板 parameterGroup deleteParameterGroup 复制参数模板 parameterGroup copyParameterGroup 重置参数模板 parameterGroup resetParameterGroup 比较参数模板 parameterGroup compareParameterGroup 应用参数模板 parameterGroup applyParameterGroup 父主题: CTS 审计
  • 算力变更的触发条件 通过 云监控服务 监控Serverless实例的CPU使用率、内存使用率。 当满足如下条件中的任何一种,就会自动触发Serverless算力扩容。 “CPU使用率”大于80%,持续5秒,距离上次扩容间隔大于等于5秒。 “内存使用率”大于80%,持续5秒,距离上次扩容间隔大于等于5秒。 “CPU使用率”大于60%,持续20秒,距离上次扩容间隔大于等于10秒。 当满足如下条件,就会自动触发Serverless算力缩容。 “CPU使用率”小于30%,且持续15秒,距离上次缩容间隔大于等于15秒,且缩容后内存不超过80%。
  • 使用须知 执行操作中的实例不能手动删除,只有在实例操作完成后,才可被删除。 实例删除后将不再产生费用,实例生成的自动备份会被同步删除,手动备份不会被删除,保留的手动备份会继续收取费用。 删除实例时,会同步删除其对应的只读节点,请谨慎操作。 如果实例的备份文件正在执行数据恢复操作,该实例不允许删除。 实例删除后,资源立即释放,请谨慎操作。如需保留数据,请务必确认完成数据备份后再删除实例。 实例删除后会被移至回收站,超过回收站设置的保留天数后实例会自动被永久删除。
  • TaurusDB实例操作系统更新 云数据库 TaurusDB实例需要适时进行操作系统更新,以提高数据库性能和数据库的整体安全状况。 实例内核版本升级时,云数据库 TaurusDB会根据操作系统的实际情况,决定是否更新以及更新适合的操作系统冷补丁版本。 操作系统更新不会更改数据库实例的版本或数据库实例信息。 此外,云数据库 TaurusDB会在用户设置的运维时间段内,通过热补丁方式及时修复影响重大的操作系统漏洞。 父主题: 变更实例配置
  • 步骤2:测试连通性并安装MySQL客户端 登录E CS 实例,请参见《弹性云服务器用户指南》中“SSH密码方式登录”。 在TaurusDB“实例管理”页面,单击实例名称进入实例概览页面。 在实例的“网络信息”区域获取读写内网地址和数据库端口。 图4 读写内网地址和数据库端口 在ECS上测试是否可以正常连接到TaurusDB实例读写内网地址和端口。 telnet 192.168.6.144 3306 如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将TaurusDB实例的读写内网地址和端口添加到出方向规则。 查看TaurusDB的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参考设置TaurusDB安全组规则。 图5 TaurusDB的安全组 在浏览器下载Linux系统的MySQL客户端安装包。 在下载页面找到对应版本链接,以mysql-community-client-8.0.21-1.el6.x86_64为例,下载安装包。建议您下载的MySQL客户端版本高于已创建的TaurusDB实例中数据库版本。 将安装包上传到ECS。 您可以使用任何终端连接工具(如WinSCP、PuTTY等工具)将安装包上传至ECS。 在ECS上执行以下命令安装MySQL客户端。 rpm -ivh --nodeps mysql-community-client-8.0.21-1.el6.x86_64.rpm 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下: rpm -ivh --replacefiles mysql-community-client-8.0.21-1.el6.x86_64.rpm 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下: rpm -ivh --nodeps mysql-community-client-8.0.21-1.el6.x86_64.rpm
  • 步骤1:购买ECS 登录管理控制台,查看是否有弹性云服务器。 有Linux弹性云服务器,执行3。 有Windows弹性云服务器,参考通过MySQL-Front连接TaurusDB实例。 无弹性云服务器,执行2。 图1 ECS实例 购买弹性云服务器时,选择Linux操作系统,例如CentOS。 由于需要在ECS下载MySQL客户端,因此需要为ECS绑定弹性公网IP(EIP),并且选择与TaurusDB实例相同的区域、VPC和安全组,便于TaurusDB和ECS网络互通。 购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图2 ECS基本信息 在TaurusDB实例概览页面,查看TaurusDB实例的区域和VPC。 图3 查看TaurusDB实例的区域和VPC 确认ECS实例与TaurusDB实例是否处于同一区域、同一VPC内。 是,执行步骤2:测试连通性并安装MySQL客户端。 如果不在同一区域,请重新购买实例。不同区域的云服务之间内网互不相通,无法访问实例。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 如果不在同一VPC,可以修改ECS的VPC,请参见切换虚拟私有云。
  • 使用须知 设置事务拆分需要满足数据库代理内核版本为2.3.9.5及以上。 在默认的“REPEATABLE_READ”隔离级别下,云数据库TaurusDB不支持事务拆分功能。 仅“READ-UNCOMMITTED”和“READ-COMMITTED”级别允许事务拆分。 仅读写模式的数据库代理支持事务拆分功能。 当事务拆分功能开启后,仅支持将事务隔离级别修改为“READ-UNCOMMITTED”或“READ-COMMITTED”,若需要将事务隔离级别修改至更高的级别,需要关闭事务拆分功能。
  • 使用须知 如需通过管理控制台设置Multi-Statements处理模式,请联系客服申请开通该功能。 更改Multi-Statements模式立即生效,无需重启数据库代理。但如果模式切换前存在由于执行了Multi-Statements导致读写分离失效的连接,不会因为切换模式而恢复读写分离,需要断开重连才能恢复。 Parse模式场景说明: 当Multi-Statements包含如下场景时,后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 Multi-Statements内创建临时表。 Multi-Statements内创建存储过程。 Multi-Statements内含未提交的事务(如执行了begin,但未执行commit或rollback)。 Multi-Statements过于复杂或含特殊语法等导致Multi-Statements解析失败。
  • 架构 云数据库 GaussDB (for MySQL)采用计算与存储分离的架构,以减少网络流量为主要架构准则,通过NDP设计将该准则应用到查询操作。没有NDP之前,查询处理需要将原始数据从存储节点全部传输到计算节点。通过NDP设计,查询中的I/O密集型和CPU密集型的大部分工作被下推到存储节点完成,仅将所需列及筛选后的行或聚合后的结果值回传给计算节点,使网络流量大幅减少。同时跨存储节点并行处理,使计算节点CPU使用率下降,提升了查询效率性能。 另外,NDP框架同GaussDB(for MySQL)并行查询进行融合,并进行了页面批量预取的设计,达成执行全流程并行,进一步提升查询执行效率。
  • 注意事项 因为安全组的默认规则是在出方向上的数据报文全部放行,同一个安全组内的弹性云服务器和TaurusDB数据库实例可互相访问。安全组创建后,您可以在安全组中定义各种访问规则,当TaurusDB数据库实例加入该安全组后,即受到这些访问规则的保护。 默认情况下,一个租户可以创建500条安全组规则。 为一个安全组设置过多的安全组规则会增加首包延时,因此,建议一个安全组内的安全组规则不超过50条。 目前一个实例仅允许绑定一个安全组。 当需要从安全组外访问安全组内的TaurusDB数据库实例时,需要为安全组添加相应的入方向规则。 为了保证数据及实例安全,请合理使用权限。建议使用最小权限访问,并及时修改数据库默认端口号(3306),同时将可访问IP地址设置为远程主机地址或远程主机所在的最小子网地址,限制远程主机的访问范围。 源地址默认的IP地址0.0.0.0/0是指允许所有IP地址访问安全组内的TaurusDB数据库实例。
  • 操作场景 安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求,并相互信任的弹性云服务器和TaurusDB数据库实例提供访问策略。为了保障数据库的安全性和稳定性,在使用TaurusDB数据库实例之前,您需要设置安全组,开通需访问数据库的IP地址和端口。 内网连接TaurusDB实例时,设置安全组分为以下两种情况: ECS与TaurusDB实例在相同安全组时,默认ECS与TaurusDB实例互通,无需设置安全组规则。 ECS与TaurusDB实例在不同安全组时,需要为TaurusDB和ECS分别设置安全组规则。 设置TaurusDB安全组规则:为TaurusDB所在安全组配置相应的入方向规则。 设置ECS安全组规则:安全组默认规则为出方向上数据报文全部放行,此时,无需对ECS配置安全组规则。当在ECS所在安全组为非默认安全组且出方向规则非全放通时,需要为ECS所在安全组配置相应的出方向规则。 本节主要介绍如何为TaurusDB实例设置相应的入方向规则。 关于添加安全组规则的详细要求,可参考《虚拟私有云用户指南》的“添加安全组规则”章节。
  • 步骤2:添加从实例 在“RegionlessDB”页面,找到目标RegionlessDB。 单击操作列“添加从实例”。 图4 添加从实例 在“创建从实例”页面,设置相关参数。 表2 基本信息 参数 描述 区域 从实例所在区域。 须知: 不同区域内的产品内网不互通,且购买后不能更换,请谨慎选择。 创建方式 选择“新创建”。 实例名称 名称长度在4个到64个字符之间,必须以字母开头,可以包含字母、数字、中划线或下划线,不能包含其他特殊字符。 数据库引擎 TaurusDB。 兼容的数据库版本 MySQL 8.0。 内核版本 从实例的内核版本,内核版本需要大于等于2.0.46.231000。 关于各个内核小版本的更新说明请参见内核版本发布说明。 说明: 如需设置内核版本,请联系客服人员申请权限。 实例类型 仅支持主备:RegionlessDB主备版包含最少2个最多10个只读节点。 存储类型 共享存储。 可用区类型 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。有的区域支持单可用区和多可用区,有的区域只支持单可用区。 单可用区:主节点和只读节点部署在同一个可用区。 多可用区:您选择主可用区,创建的只读节点会均匀分布在各可用区之间,保证高可靠性。 时区 由于世界各国家与地区经度不同,地方时也有所不同,因此会划分为不同的时区。时区可在创建实例时选择,后期不可修改。 性能规格 TaurusDB支持的性能规格,请参见数据库实例规格。 TaurusDB是基于共享存储架构的云原生数据库。为了保证实例在极高读写压力场景下的业务稳定,会根据规格对实例读写峰值进行智能平滑控制,将实例读写能力稳定在一个较高水平,请您参照性能白皮书,选择合适的性能规格。 CPU架构 实例的CPU和内存,CPU架构分为X86和鲲鹏。 节点数量 从实例所有节点均为只读节点,“按需计费”实例单次创建最多可批量申请10个只读节点。 实例创建成功后,您可根据业务需要,添加只读节点,一个从实例最多可以创建15个只读节点。详情请参见创建只读节点。 存储设置 无需选择存储容量,存储费用按照实际使用量每小时计费。 虚拟私有云 TaurusDB数据库实例所在的 虚拟专用网络 ,可以对不同业务进行网络隔离。您需要创建或选择所需的虚拟私有云。如何创建虚拟私有云,请参见《虚拟私有云用户指南》中的“创建虚拟私有云基本信息及子网”。 如果没有可选的虚拟私有云,TaurusDB数据库服务默认为您分配资源。 须知: 请确保从实例选择的虚拟私有云和主实例选择的虚拟私有云已通过VPN连通。 目前TaurusDB实例创建完成后不支持切换虚拟私有云,请谨慎选择所属虚拟私有云。 通过子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。 创建实例时TaurusDB会自动为您配置读写内网地址,您也可输入子网号段内未使用的读写内网地址。 内网安全组 内网安全组限制实例的安全访问规则,加强TaurusDB数据库服务与其他服务间的安全访问。请确保所选取的内网安全组允许客户端访问数据库实例。 如果不创建内网安全组或没有可选的内网安全组,TaurusDB数据库服务默认为您分配内网安全组资源。 说明: 为了保证后续数据库的连接和访问,选择内网安全组时,需在安全组的入方向放开3306端口和ICMP协议。 请确保主从实例之间的内网安全组规则是放开的。 参数模板 数据库参数就像是数据库引擎配置值的容器,参数模板中的参数可应用于一个或多个相同类型的数据库实例。实例创建成功后,参数模板可进行修改。 须知: 创建数据库实例时,为确保数据库实例正常创建,自定义参数模板中相关规格参数如下不会下发,而是采用系统默认的推荐值。 “innodb_buffer_pool_size” “innodb_log_buffer_size” “max_connections” “innodb_buffer_pool_instances” “innodb_page_cleaners” “innodb_parallel_read_threads” “innodb_read_io_threads” “innodb_write_io_threads” “threadpool_size” 您可以在实例创建完成之后根据业务需要进行调整。具体请参见编辑参数模板。 企业项目 该参数针对企业用户使用,如需使用该功能,请联系客服申请开通。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 请在下拉框中选择所在的企业项目,其中,default为默认项目。 如果需要自定义企业项目,请在控制台右上角单击“企业”,进入“企业项目”页面创建,具体请参见《企业管理用户指南》中“创建企业项目”的内容。 标签 可选配置,对关系型数据库的标识。使用标签可以方便识别和管理您拥有的数据库服务资源。每个实例最多支持20个标签配额。 实例创建成功后,您可以单击实例名称,在标签页签下查看对应标签。关于标签的详细操作,请参见标签。 实例密码及大小写敏感与主实例一致,无需单独设置。 参数配置完成后,单击页面右下角“立即购买”。 确认从实例信息无误后,单击页面右下角“提交”,完成创建从实例的申请。 从实例创建成功后,可以在“实例管理”页面对其进行查看和管理。 创建从实例过程中,状态显示为“创建中”。您可以通过“任务中心”查看详细进度和结果。创建完成的实例状态为“正常”,此时,从实例才可以正常使用。 如果主实例的存量数据较多,由于添加从实例需要对新创建的从实例进行全量备份恢复,该流程耗时可能会较长。
  • 步骤3:开启写转发 正常情况下,RegionlessDB集群创建完成后,主实例接收并处理读写请求,从实例只接收读请求。当开启写转发功能后,从实例接收到写请求会自动由从实例转发到主实例进行处理。主实例完成写入后,将数据同步到其他所有从实例。使用写转发可以简化写数据流程,直接通过从实例IP接入数据库服务执行读写操作,并且在满足一致性的同时,不影响就近读能力。 写转发只有在从实例的事务隔离级别为RR的场景下才支持。 当前版本从实例进行写转发时,暂不支持显示WARNING和RECORD信息。 当前版本从实例进行写转发时,暂不支持中断执行中的SQL请求。 写转发会创建用户“_@gdb_WriteForward@_”,请不要修改或者删除该用户,否则写转发功能无法正常运行。 支持的写转发命令如下: SQLCOM_UPDATE SQLCOM_INSERT SQLCOM_DELETE SQLCOM_INSERT_SELECT SQLCOM_REPLACE SQLCOM_REPLACE_SELECT SQLCOM_DELETE_MULTI SQLCOM_UPDATE_MULTI SQLCOM_ROLLBACK 如果执行了不支持的写转发命令,会出现如下报错信息: ERROR xxx (yyy): This version of MySQL doesn't yet support 'operation with write forwarding'. 其中“operation”为具体不支持的操作类型。 不支持的场景: SELECT FOR UPDATE语句。 EXPLAIN写转发语句。 写转发的语句包含SET VARIABLE。 在写转发开启的场景下,不支持SAVEPOINT。 XA事务中不支持写转发。 当前不支持START TRANSACTION READ WRITE,可以直接使用START TRANSACTION进行测试写转发。 存储过程中不支持写转发。 写转发开启时,不支持创建临时表,如果需要创建临时表,可以暂时关闭写转发进行创建。 针对会隐式提交的命令,在不支持写转发的情况下,也会自动提交当前节点和主节点对应的事务。 针对全局一致性级别,每个事务第一次访问数据之前,需要使用会话池中的连接,从主节点获取数据点位(LSN),如果没有可以使用的会话,可能会导致读取数据的命令失败。 如果用户使用写转发的会话出现连接错误,并且用户处于多语句事务中,服务端会主动关闭与客户端和主节点的连接,保证客户端能够感知到对应的错误。 主从实例的版本需要保持为最新版本。 由于写转发是转发到主节点上执行,如果只读节点有相同数据库下的同名临时表,最终以主节点的数据为准。 从实例如果参与了区域切换或者故障转移,写转发相关参数(“rds_open_write_forwarding”和“rds_write_forward_read_consistency”)会恢复为默认值。 在“RegionlessDB”页面,找到目标RegionlessDB集群。 单击操作列“设置写转发”,创建写转发账号。 图5 创建写转发账号 系统会为您自动创建一个内部账号(_@gdb_WriteForward@_)用于支持写转发,便于写请求转发到主实例进行处理。设置写转发账号后请不要自行修改或删除内部账号,否则会影响写转发功能。 在“设置写转发”弹框中,确认信息并单击“确定”。 图6 设置写转发 在“实例管理”页面,选择指定的RegionlessDB从实例,单击实例名称。 在左侧导航栏,选择“参数修改”。 在参数页面右上角搜索“rds_open_write_forwarding”,将该值修改为“ON”。 图7 开启写转发 单击左上角“保存”,开启写转发功能。 在参数页面右上角搜索“rds_write_forward_read_consistency”,修改写转发读一致性级别。 图8 修改写转发读一致性级别 可通过修改参数设置写转发的读一致性范围,具体选项说明详见表3。 表3 参数说明 参数名称 说明 NONE 不启用写转发。 EVENTUAL 在主实例真正执行写操作之前,写入数据是不可见的。查询不会等待RegionLess内主从实例数据同步完成,所以在该级别下,可能读取到未更新的过期数据。 SESSION 通过开启写转发的从实例执行的所有查询,都会看到在本会话中进行的所有数据写入的结果。查询将等待复制中的写转发执行的结果。 GLOBAL 会话可以看到RegionlessDB中所有会话和实例上全部已提交的更改,查询可能会等待一定时间,该等待时间和复制延迟相关。 如果业务有读一致性要求,建议一致性级别配置为SESSION。谨慎设置成GLOBAL,GLOBAL会导致所有的读请求花费较大的额外代价,例如使用任一客户端连接TaurusDB,且使用GLOBAL级别时,导致进入MySQL命令行的时间变长。 事务中无法修改写转发读一致性级别为SESSION。 开启写转发参数前,需要确保从实例的事务隔离级别为RR。 写转发开启的情况下,不允许修改当前会话的事务隔离级别。 事务中不允许修改读一致性级别。 单击左上角“保存”。
  • 路由模式的工作原理 TaurusDB数据库代理支持权重负载、负载均衡的路由模式,可根据需要配置不同的路由模式。 权重负载:根据设置的读权重比例分发读请求。 负载均衡:根据数据库节点的活跃连接数情况进行读请求分发,将读请求分发到活跃连接数较少的节点上。负载均衡模式不需要修改权重。 图1 路由模式工作原理 示例: 如上图所示,一个TaurusDB实例具有1个主节点、4个只读节点。 数据库代理1使用权重负载的路由模式,并选取了主节点、只读节点R1、只读节点R2,其读权重配比为0:70:80。则业务系统A的写请求经数据库代理自动转发至主节点,而读请求则按照7:8的比例分别路由至只读节点R1和R2。 数据库代理2使用负载均衡的路由模式,并选取了主节点、只读节点R3和只读节点R4,数据库代理将根据实时活跃连接数决定将读请求转发至哪一个节点。 当只读节点R4活跃连接数较高,处于高负载状态时,数据代理会将大部分读请求转发至负载较低的只读节点R3和主节点,以降低R4节点的负载压力。
  • 步骤6:测试ALT效果 当ALT功能开启,使用Sysbench,Tpcc-MySQL或MySQL客户端等工具连接到数据库代理地址,只读升主过程中用户的连接不会中断,只会出现短时间的卡顿后很快恢复。 以下分别是使用Sysbench,Tpcc-MySQL和MySQL客户端工具进行主备切换的效果示意。 使用Sysbench的进行只读升主的示例 使用tpcc-mysql的进行只读升主的示例 使用MySQL命令行工具进行只读升主的示例 如下图所示,用户自定义变量、会话变量、数据库在主备切换前后保持一致。 如下图所示,不同的事务排干超时时间,可能会影响到当前会话的ALT能力。
  • 一致性级别介绍 云数据库 TaurusDB提供了以下几种一致性级别,可以满足不同场景对一致性的要求。 最终一致性(默认) 开启数据库代理后,同一会话内,连续多次SELECT请求会根据权重配比,路由到不同的数据库节点,由于主节点与读节点之前存在复制时延,并且各个读节点的复制时延大小不一定完全相同,可能会导致每次SELECT请求得到的结果存在差异,因此默认情况下,数据库代理只能保证数据的最终一致。 会话一致性 由于最终一致性可能会导致多次SELECT请求的结果存在差异,数据库代理进一步提供了会话级别的数据一致性,保证了在同一会话内,每次SELECT请求都可以获取到上一次写入操作后的最新数据。 数据库代理会记录每个数据节点的日志序号(Log Sequence Number,简称LSN),同时针对每一个会话也会维护对应的LSN,即Session LSN。当某个会话有数据更新操作执行完成时,数据库代理会根据当时主节点的LSN来更新对应的Session LSN,后续有读请求进来时,数据库代理会比较Session LSN以及各个数据节点的LSN,将请求发往LSN大于或等于Session LSN的数据节点,从而保证当前会话内,SELECT请求总能获取到上一次更新操作后的最新数据。 图1 会话一致性实现原理 开启会话一致性后,如果主节点与读节点复制时延较大,各个读节点LSN均小于Session LSN,会导致SELECT请求发送到主节点,从而增大主节点的压力,整个数据库集群的读写性能会有一定的降低。
  • 计费说明 TaurusDB为您免费提供监控频率为60秒/次的监控服务,开通秒级监控会产生额外费用,且计费方式为按需计费(每小时扣费一次),不足一小时按照实际使用时长收费。 表1 秒级监控价格说明 区域 监控频率 按需(元/小时) 上海一、北京二、北京四、广州、贵阳一、乌兰察布一、广州友好 1秒监控 0.1 5秒监控 0.048 新加坡、雅加达、香港、曼谷、土耳其 1秒监控 0.236 5秒监控 0.118 圣保罗一 1秒监控 0.4 5秒监控 0.2
  • 注意事项 公网访问会降低实例的安全性,请谨慎选择。为了获得更快的传输速率和更高的安全级别,建议您将应用迁移到与您的TaurusDB数据库在同一区域的弹性云服务器上。 TaurusDB使用您在VPC控制台购买的公网IP绑定到实例上,一个弹性公网IP只允许绑定一个TaurusDB实例,详细收费标准请参见:带宽和IP产品价格详情。 TaurusDB实例解绑弹性公网IP后,如果弹性公网IP是按需模式,则会继续收取IP保有费,您可以选择释放或者绑定到其他实例。
  • TaurusDB库表设计规范 所有创建的MySQL表必须为InnoDB引擎,适配MySQL的其它引擎不支持事务。 小数类型建议使用DECIMAL,禁止使用FLOAT和DOUBLE。 FLOAT和DOUBLE在存储的时候,存在精度损失的问题,很可能在值比较的时候得到的结果有误。如果存储的数据范围超过DECIMAL的范围,建议将数据拆成整数和小数分开存储。 禁用保留字,如DESC、RANGE、MATCH、DELAYED等。 社区MySQL 8.0的保留字与关键字请参见关键字和保留字。 TaurusDB的保留关键字在兼容社区MySQL8.0的基础上,新增了部分保留关键字,需要在业务使用中避免使用保留关键字来命名。 TaurusDB新增的关键字和保留字如表1所示。 表1 TaurusDB新增的保留关键字 保留字 相关场景 EXTRA_HEALTH 高可用 PBS 备份恢复 REDO 主从复制 SLICEID 共享存储 SLOWIO 共享存储 SPACEUSAGE 共享存储 RDS_INSTANT 回收站 RECYCLE_BIN 回收站 RDS_RECYCLE 回收站 RDS_TAC 回收站 RDS_GDB_CTRL RegionlessDB 数据表必须有主键,可以使用业务相关,有序且具有唯一性的字段作为主键,也可以使用业务无关的自增长字段作为主键。 表字段必须有默认值加NOT NULL,数字类型默认值推荐给0,VARCHAR等字符类型默认值推荐空字符串''。 无主键不仅容易导致主库执行速度慢和复制延迟问题。 避免使用分区表,如有需要,可以使用多个独立的表代替。 分区表的缺点: DDL操作需要锁定所有分区,导致所有分区上操作都被阻塞。 当表数据量较大时,对分区表进行DDL或其他运维操作难度大风险高。 分区表使用较少,存在未知风险。 当单台服务器性能无法满足时,对分区表进行分拆的成本较高。 当分区表操作不当导致访问所有分区时,会导致严重的性能问题。 建议表包含两个字段:CREATE_TIME,UPDATE_TIME, 且均为DATETIME类型。 数据仓库 拖取数据时可以利用这两个统一字段无需询问业务。 在数据库出现意外时可以判断数据进入数据库和修改的时间,在极端情况可以帮助数据恢复的判断。 VARCHAR是可变长字符串,不预先分配存储空间,长度不要超过2048。 如果存储长度大于此值,定义字段类型为TEXT,或者独立出来一张表,用主键来对应,避免影响其他字段索引效率。 表单行行内长度不得超过1024字节。 控制单表字段数量,字段上限50个。 如果存储的字符串长度几乎相等,使用CHAR定长字符串类型。 字段允许适当跨表冗余,以避免关联查询,提高查询性能,但必须考虑数据一致。 冗余字段应遵循: 不是频繁修改的字段。 不是VARCHAR超长字段和TEXT字段。 合适的存储长度(不建议使用LONG TEXT, BLOB等长类型字段),不但节约数据库表空间、节约索引存储,更重要的是提升检索速度。 所有的字符存储与表示,均以UTF-8或者utf8mb4编码,表和字段需要有注释信息。 尽量避免使用大事务。 如果在一个事务里进行多个SELECT或UPDATE语句,如果是高频事务,会严重影响MySQL并发能力,因为事务持有的锁等资源只在事务ROLLBACK/COMMIT时才能释放。但同时也要评估数据写入的一致性。 由于全文索引局限性较多,不建议使用全文索引功能。 对于超大表,还需要遵循以下规范。 尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED,总体来看就是,在满足业务演进的前提下,字段类型尽量短。 VARCHAR的长度只分配真正需要的空间。 示例: CREATE TABLE T1 (A VARCHAR(255)); 优化为: CREATE TABLE T1 (A VARCHAR(满足业务的长度)); 使用枚举或整数代替字符串类型。 尽量使用TIMESTAMP而非DATETIME。 单表不要有太多字段,建议在20以内。 尽量不用UNIQUE,由程序保证约束。 用整型来存IP。 对序列性比较强的的字段进行分区,查询时加上范围条件效率会非常高; 对于有有明显的热点的数据,而且除了这部分数据,其他数据很少被访问到,那么可以将热点数据单独放在一个分区。 建议使用数据库代理连接数据库,对于一致性要求不高的场景下,将读业务分流到只读节点。对于查询量比较大情况下,可以通过弹性扩展,增加只读节点数量,提升查询性能。 父主题: 使用规范
  • 应用场景 并行查询适用于大部分SELECT语句,例如大表查询、多表连接查询、计算量较大的查询。对于非常短的查询,效果不太显著。 轻分析类业务 报表查询通常SQL复杂而且比较耗费时间,通过并行查询可以加速单次查询效率。 系统资源相对空闲 并行查询会使用更多的系统资源,只有当系统的CPU较多、IO负载不高、内存够大的时候,才可以充分使用并行查询来提高资源利用率和查询效率。 数据频繁查询 针对数据密集型查询,通过并行查询,可以提高查询处理执行效率,减少网络流量和计算节点的压力。 只读节点和主节点均支持并行查询,由于并行查询对计算资源(CPU、内存等)比较消耗,考虑到实例稳定性,2.0.42.230600及以上版本并行查询默认在主节点不生效,如需使用可联系客服人员开启。
  • 步骤2:测试连通性并安装MySQL客户端 登录ECS实例,请参见《弹性云服务器用户指南》中“SSH密码方式登录”。 在TaurusDB“实例管理”页面,单击实例名称进入实例概览页面。 在实例的“网络信息”区域获取读写公网地址和数据库端口。 图3 读写公网地址和数据库端口 如果当前实例未绑定弹性公网IP,请参考为TaurusDB绑定弹性公网IP进行绑定。 在ECS上测试是否可以正常连接到TaurusDB实例读写公网地址和端口。 telnet 公网地址 3306 如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将TaurusDB实例的公网IP地址和端口添加到出方向规则。 查看TaurusDB的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例的私有IP地址和端口添加到入方向规则,具体操作请参考设置TaurusDB安全组规则。 图4 TaurusDB的安全组 在浏览器下载Linux系统的MySQL客户端安装包。 在下载页面找到对应版本链接,以mysql-community-client-8.0.21-1.el6.x86_64为例,下载安装包。建议您下载的MySQL客户端版本高于已创建的TaurusDB实例中数据库版本。 将安装包上传到ECS。 您可以使用任何终端连接工具(如WinSCP、PuTTY等工具)将安装包上传至ECS。 在ECS上执行以下命令安装MySQL客户端。 rpm -ivh --nodeps mysql-community-client-8.0.21-1.el6.x86_64.rpm 如果安装过程中报conflicts,可增加replacefiles参数重新安装,如下: rpm -ivh --replacefiles mysql-community-client-8.0.21-1.el6.x86_64.rpm 如果安装过程中提示需要安装依赖包,可增加nodeps参数重新安装,如下: rpm -ivh --nodeps mysql-community-client-8.0.21-1.el6.x86_64.rpm
  • 步骤1:购买ECS 登录管理控制台,查看是否有弹性云服务器。 有Linux弹性云服务器,执行3。 有Windows弹性云服务器,参考通过MySQL-Front连接TaurusDB实例。 无弹性云服务器,执行2。 购买弹性云服务器时,选择Linux操作系统,例如CentOS。 由于需要在ECS下载MySQL客户端,因此需要为ECS绑定弹性公网IP(EIP)。 购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图1 ECS基本信息 在TaurusDB实例概览页面,查看TaurusDB实例的区域和VPC。 图2 TaurusDB基本信息
  • HTAP标准版语法说明和数据类型对应关系 TaurusDB实例数据同步到HTAP时会被转成对应的类型,详情请参考表1。 表1 数据类型转换 数据类型 TaurusDB数据类型 HTAP数据类型 NUMERTIC TYPES TINYINT TINYINT TINYINT UNSIGNED SMALLINT SMALLINT SMALLINT SMALLINT UNSIGNED INT MEDIUMINT INT INTEGER/INT INT INTEGER/INT UNSIGNED BIGINT BIGINT BIGINT BIGINT UNSIGNED LARGEINT DECIMAL/NEMERIC DECIMAL FLOAT FLOAT DOUBLE/REAL DOUBLE BIT STRING DATE TIME TYPES DATE DATE DATETIME DATETIME TIMESTAMP DATETIME TIME STRING YEAR INT String Data Types CHAR CHAR/VARCHAR VARCHAR VARCHAR BINARY VARBINARY VARBINARY VARBINARY BLOB VARBINARY TEXT STRING ENUM STRING SET STRING Spatial Data Types GEOMETRY STRING POINT STRING LINESTRING STRING POLYGON STRING MULTIPOINT STRING MULTILINESTRING STRING MULTIPOLYGON STRING GEOMETRYCOLLECTION STRING JSON Data Types JSON JSON 父主题: HTAP实时分析(标准版)
  • 免责声明 华为云为产品开通的正常功能可满足大部分客户日常需求,对于触发器类的功能,建议您在业务程序侧实现。如您确实需要开通事件定时器功能,因为一些已知的社区风险等,需要了解以下风险内容: 事件定时器实际触发时间与设置时间不符。 事件定时器未触发。 因为事件定时器特性的特殊性,可能实际执行情况与业务初始预期不符。 数据库使用遇到问题时,可能因为事件定时器的原因影响分析判断。 无法使用异构容灾特性。 其它未知问题。
  • 支持的区域 表1 支持的区域说明 实例所在源区域 备份的目标区域 华北-北京四 华东-上海一、华北-乌兰察布一、西南-贵阳一、华南-广州 华东-上海一 华北-北京四、华北-乌兰察布一、西南-贵阳一、华南-广州 华北-乌兰察布一 华北-北京四、华东-上海一、西南-贵阳一、华南-广州 西南-贵阳一 华北-北京四、华东-上海一、华北-乌兰察布一、华南-广州 华南-广州 华北-北京四、华东-上海一、华北-乌兰察布一、西南-贵阳一
  • 使用须知 只读节点删除后,不可恢复,请谨慎操作。 当实例中的只读节点个数≥2个时,才可选择删除只读节点,即实例中至少需要保留1个只读节点。 执行操作中的实例不能手动删除只读节点。 可用区类型选择多可用区,只读节点删除后必须保证所有节点不能在同一个可用区内。 例如有2个可用区,可用区一有1个主节点和1个只读节点,可用区二有1个只读节点,那么可用区二的只读节点是不允许被删除的。 删除最后一个Serverless节点时,需要确保Serverless增删只读功能开关已关闭。
  • 前提条件 需要确认以下参数值才可开启Binlog日志开关。 内核版本小于2.0.45.230900时,需要确认“log-bin”参数值为“ON”。您可参考修改TaurusDB实例参数查看或修改参数值。 内核版本大于或等于2.0.45.230900时,需要确认“rds_global_sql_log_bin”参数值为“ON”。 查看和下载Binlog日志前,需要先开启Binlog日志开关,具体操作请参考开启Binlog日志。
  • TaurusDB事件监控简介 事件监控提供了事件类型数据上报、查询和告警的功能。方便您将业务中的各类重要事件或对云资源的操作事件收集到 云监控 服务,并在事件发生时进行告警。 事件即云监控服务保存并监控的TaurusDB资源的关键操作,您可以通过“事件”了解到谁在什么时间对系统哪些资源做了什么操作,如删除只读节点、规格变更等。 事件监控为您提供上报自定义事件的接口,方便您将业务产生的异常事件或重要变更事件采集上报到云监控服务。 事件监控默认开通,您可以在事件监控中查看系统事件和自定义事件的监控详情,目前支持的系统事件请参见TaurusDB事件监控支持的事件说明。 父主题: 事件监控
  • 使用须知 未开启数据库代理的实例,不支持使用增删只读节点数量的功能。 增删只读节点功能开启需要满足至少一个代理实例已开启新节点自动加入设置。如果需要新节点自动加入代理,请在“数据库代理”页面进行设置。 由于变配涉及到删减只读节点,为避免业务受影响,建议不要使用读内网地址连接应用。 增删只读节点功能打开后会将代理实例的路由模式调整为负载均衡,请谨慎操作。 手动创建的只读节点会受到设置的自动策略影响。比如:当只读节点数量下限设置为1时,手动创建了4个只读节点,如果CPU和内存等指标达到缩容条件,这些手动创建的只读节点也会被删除,直到到达下限。
共99354条