云服务器内容精选

  • 计费说明 表1 计费说明 计费项 规格码 价格 备份空间 gaussdb.mysql.crossreg.backup.space 国内Region(不含香港):0.000221 元/GB/小时 香港:0.000458 元/GB/小时 海外Region:0.00163 元/GB/小时 跨区域转储网络流量 gaussdb.mysql.crossreg.backup.flow 国内Region(不含香港):0.5 元/GB 香港:0.6400 元/GB
  • 数据库实例状态 数据库实例状态是数据库实例的运行情况。用户可以使用管理控制台查看数据库实例状态。 表1 状态及说明 状态 说明 正常 数据库实例正常和可用。 异常 数据库实例不可用。 创建中 正在创建数据库实例。 创建失败 数据库实例创建失败。 重启中 正在重启数据库实例。 实例名称修改中 正在修改数据库实例名称。 端口修改中 正在修改数据库实例的数据库端口。 规格变更中 正在变更数据库实例的CPU和内存规格。 添加只读中 正在进行数据库实例添加只读节点。 删除只读中 正在进行数据库实例删除只读节点。 只读升主中 只读节点正在切换为主节点。 只读节点隔离中 只读节点正在进行隔离。 只读节点已隔离 只读节点完成隔离操作。 备份中 正在备份数据库实例。 扩容中 正在扩容数据库实例的磁盘空间。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。您需前往费用中心进行充值,充值成功且欠款核销后,冻结保留期内的实例才会解冻。 证书配置变更中 正在进行数据库实例证书配置变更。 Serverless算力变更中 Serverless实例正在进行算力变更。 小版本升级中 正在进行数据库实例内核版本升级。 已删除 数据库实例已被删除,对于已经删除的实例,将不会在实例列表中显示。
  • 产品架构 云数据库 GaussDB (for MySQL)整体架构自下向上分为三层。 存储层: 基于华为DFV存储,提供分布式、强一致和高性能的存储能力,此层来保障数据的可靠性以及横向扩展能力,保证数据的可靠性不低于99.999999999%。DFV (Data Functions Virtualization)是华为提供的一套通过存储和计算分离的方式,构建以数据为中心的全栈数据服务架构的解决方案。 存储抽象层 (Storage Abstraction Layer):将原始数据库基于表文件的操作抽象为对应分布式存储,向下对接DFV,向上提供高效调度的数据库存储语义,是数据库高性能的核心。 SQL解析层:与MySQL 8.0开源版100%兼容,客户业务从MySQL生态可以平滑迁移, 从其他数据库迁移也能使用MySQL生态的语法、工具,降低开发、学习成本。基于原生MySQL,在100%兼容的前提下进行大量内核优化,以及开源加固。 图1 架构图
  • 约束限制 表级时间点恢复不支持恢复带触发器的表。 为避免恢复失败和对原数据产生影响,表级恢复会去除外键约束。 如果恢复的时间点不存在选中恢复的表,则恢复任务失败。 库表级时间点恢复期间不允许对实例做规格变更,重启,删除等操作。 实例的表数量小于等于20000张,才能执行恢复库表操作。当需要恢复的表数量超过2000张时,建议您使用恢复到指定时间点功能进行恢复,具体请参考将数据库实例恢复到指定时间点。
  • 参数解析 表1 慢查询相关的参数解析 参数名称 说明 long_query_time 当SQL语句执行时间超过此数值时,就会被记录到慢日志中。精度可达秒级别,默认为10s,建议设置为1s。 注意:锁等待时间并不计算在执行时间内。 log_queries_not_using_indexes 是否记录未使用索引的查询,默认OFF。 log_throttle_queries_not_using_indexes 每分钟允许写入到慢查询日志的未使用索引的语句,默认为0。
  • 计费项 表1 计费项说明 计费项 计费说明 数据库实例 对所选的实例规格进行计费,实例购买后立即开始计费,详情见计费规则。 数据库存储 对数据库存储空间进行计费,购买时无需选择存储容量,存储费用按照实际使用量每小时计费。 备份存储 提供了部分免费存储空间,用于存放您的备份数据,其总容量约为您使用存储容量的100%。备份存储用量超过数据库存储空间的100%,超出部分将按照备份计费标准收费。 公网流量 GaussDB(for MySQL)实例支持公网访问,公网访问会产生带宽流量费;GaussDB(for MySQL)数据库实例在云内部网络产生的流量不计费。 HTAP实例 若使用了HTAP实例,需要按HTAP实例进行收费。具体收费标准参见HTAP计费说明。
  • 修订记录 发布日期 修改说明 2024-05-09 第十九次正式发布。 新增慢日志监控中显示存在慢SQL,但日志管理中慢日志页面没有对应慢SQL信息。 2024-01-23 第十八次正式发布。 读写分离地址修改为代理地址。 2023-12-18 第十七次正式发布。 新增GaussDB(for MySQL)支持打开general_log吗?。 2023-11-08 第十六次正式发布。 GaussDB(for MySQL)服务如何开启并查看Binlog文件?,修改开启Binlog的方法。 2023-10-12 第十五次正式发布,新增以下内容: 新增GaussDB(for MySQL)的临时盘使用说明。 2023-08-31 第十四次正式发布,新增以下内容: 新增GaussDB(for MySQL)实例连接失败怎么办。 2023-07-24 第十三次正式发布,新增以下内容: 新增使用INSTANT方式快速添加列。 2023-05-16 第十二次正式发布,新增以下内容: 新增如何查看GaussDB(for MySQL)数据库的死锁日志。 2023-03-30 第十一次正式发布,新增以下内容: 新增联合索引设置不当导致慢SQL的解决办法。 新增联合索引设置不当导致慢SQL的解决办法。 新增持锁长事务导致后续业务报等锁超时的解决办法。 2023-02-22 第十次正式发布,新增以下内容: 新增如何修改Binlog保留时长。 优化GaussDB(for MySQL)服务如何开启并查看Binlog文件?。 2022-11-22 第九次正式发布,新增以下内容: 优化GaussDB(for MySQL)如何设置表名大小写敏感。 2022-11-03 第八次正式发布,新增以下内容: 优化如何通过JDBC连接MySQL数据库。 2022-08-30 第七次正式发布,新增以下内容: 新增资源冻结/解冻/释放/删除/退订。 2022-07-30 第六次正式发布,新增以下内容: 新增如何修改GaussDB(for MySQL)数据库字符集。 新增是否支持使用SQL命令修改全局参数。 新增GaussDB(for MySQL)如何设置表名大小写敏感。 新增使用utf8mb4字符集存储emoji表情到GaussDB(for MySQL)实例。 新增GaussDB(for MySQL)是否支持版本升级。 新增如何查看GaussDB(for MySQL)备份空间使用情况。 新增GaussDB(for MySQL)的备份是如何收费的。 2022-06-30 第五次正式发布,新增以下内容: 新增如何安装MySQL客户端。 2022-02-18 第四次正式发布,新增以下内容: 新增GaussDB(for MySQL)提供root账号或super权限吗 调整常见问题分类 2021-04-30 第三次正式发布,新增以下内容: 新增E CS 和GaussDB(for MySQL)部署在同一区域的不同的VPC内,网络不通怎么办。 2020-12-30 第二次正式发布,新增以下内容: GaussDB(for MySQL)新增如何通过JDBC连接MySQL数据库。 GaussDB(for MySQL)新增主备机分别执行MATCH AGAINST语句后结果不一致的原因。 2019-09-03 第一次正式发布。
  • GaussDB(for MySQL)如何设置表名大小写敏感 表名大小写敏感可以通过在管理控制台或API创建数据库实例时指定。 已创建完成的实例不支持修改表名大小写敏感。 通过管理控制台的创建实例页面设置是否区分表名大小写。详情请参见购买实例。 图1 数据库设置 通过API创建数据库实例设置“lower_case_table_names”指定大小写是否敏感,默认值是“1”。详情请参考创建数据库实例。 取值范围: 0:表名称大小写敏感。 1:表名将被存储成小写且表名称大小写不敏感。 父主题: 数据库参数修改
  • 原因分析 查看查询变慢对应的时间段中,实例CPU监控指标并无飙升情况且使用率一直都较低,因此排除了CPU冲高导致查询变慢的可能。 图1 CPU使用率 分析对应时间段该实例的慢日志,该SQL执行快时其扫描行数为百万级,当SQL执行慢时其扫描行数为千万级,与业务确认该表短期内并无大量数据插入,因此推断执行慢是因为未走索引或选错索引。且通过EXPLAIN查看该SQL的执行计划确实是全表扫描。 图2 慢日志 在实例上对该表执行SHOW INDEX FROM检查三个字段的基数,。 图3 查看基数 可知基数最小的字段“query_date”在联合索引的第一位,基数最大的字段“group_id”在联合索引最后一位,而且原SQL包含对“query_date”字段的范围查询,导致当索引走到“query_date”就会停止匹配,后面两个字段已经无序,无法走索引。 所以该SQL本质上只能利用到对“query_date”这一列的索引,而且还有可能因为基数太小,导致优化器成本估计时选择了全表扫描。 业务重新创建了联合索引将“group_id”字段放在第一位,“query_date”字段放在最后一位后,查询耗时符合预期。
  • 开启Binlog对GaussDB(for MySQL)的性能影响 性能损耗和业务压力强相关,开启Binlog不会影响查询(SELECT)性能,只会影响写入更新(如INSERT、UPDATE、DELETE等)性能。 GaussDB(for MySQL)服务的binlog和开源的MySQL-Binlog两者从使用方法上来说无明显差异,GaussDB(for MySQL)服务的Binlog完全兼容开源MySQL的Binlog相关语法。
  • 原因分析 查看监控指标“行锁花费时间”,监控到行锁等待时间较长,说明该系统出现过锁冲突的现象。 监控指标详细内容请参考查看监控指标。 登录实例,执行如下SQL,查看系统当前存在的长事务,以及事务持有的行锁信息。 select trx_mysql_thread_id, trx_id, trx_state, trx_started, trx_tables_locked, trx_rows_locked, trx_isolation_level, trx_query, trx_operation_state from information_schema.innodb_trx order by trx_started; information_schema.innodb_trx表包含了当前innodb内部正在运行的事务信息。 trx_started:表示事务的开始时间,用来判断当前事务是否是长事务,当前时间减去开始时间就是事务的执行时间。 trx_state :表示当前事务的状态,取值如下: RUNNING:运行。 LOCK WAIT:等待锁。 如果事务当前的状态是LOCK WAIT,即表示事务持有行锁。 ROLLING BACK:正在回滚。 COMMITTING:正在提交。
  • GaussDB(for MySQL)的备份是如何收费的 云数据库GaussDB(for MySQL)的备份文件存储在 对象存储服务 上,不占用实例的存储空间,GaussDB(for MySQL)提供了和实例磁盘大小相同的免费存储空间,用于存放您的备份数据。 自动备份的生命周期和实例的生命周期相同。如果实例删除,那么自动备份也会同时被删除,如果您有手动备份,手动备份不会自动删除,详情请参见删除手动备份。 举个例子,假如用户创建实例时,存储空间选择了200GB,那么所有的备份空间合计,只有超过200GB才开始计费,前200GB是免费的。对于超过免费容量的存储空间,目前仅支持按需计费,用多少收取多少费用,具体收费请参见计费说明。 免费的存储空间是在收取了数据盘的存储空间费用后赠送的,数据盘存储空间冻结以后不再收费,因此不再享受备份赠送空间。 用户实例冻结后,将没有免费的存储空间,会导致实例原有自动备份收费。 如果选择解冻实例,将恢复免费的存储空间。 如果直接删除冻结的实例,原有的自动备份将会同时被删除,备份空间不会继续收费。 父主题: 备份与恢复
  • 问题分析 主要从以下方面考虑: 排除数据库实例异常 例如:实例状态异常。 (常见)使用正确的客户端连接方式 内网连接需要GaussDB(for MySQL)与ECS实例在同一区域、VPC内。 公网连接需要购买或使用已有EIP,并对GaussDB(for MySQL)实例绑定该EIP 。 使用正确的SSL方式安全连接 界面SSL开关开启和关闭,分别对应不同的连接命令。例如: 开关开启:mysql -h 172.16.0.31 -P 3306 -u root -p --ssl-ca=/tmp/ca.pem 开关关闭:mysql -h 172.16.0.31 -P 3306 -u root -p 排除连接命令错误 例如:连接地址错误、端口参数错误、用户名和密码错误、SSL方式连接时参数配置错误。 (常见)排除网络不通 内网访问 确认ECS与GaussDB(for MySQL)是否在同一区域、VPC内。 检查安全组规则。 在ECS上测试是否可以正常连接到GaussDB(for MySQL)实例地址的端口。 公网访问 检查安全组规则。 检查网络ACL规则。 相同区域主机进行ping测试。 (常见)排除实例的连接数满的情况 实例连接数过多,可能会导致业务侧无法正常连接。 连接失败的常见报错 包含连接失败的常见报错,以及相应的解决方法。
  • 参数 file_name :要导入的本地文件的路径。 REPLACE | IGNORE : 指定遇到重复记录是替换还是忽略。 tbl_name :要导入的目标表名。 CHARACTER SET charset_name : 指定文件的编码,建议和GaussDB(for MySQL)实例上的编码一致,否则可能乱码。 FIELDS TERMINATED BY 'string' : 用来指定每列之间的分割符号,默认值为 \t 。 [OPTIONALLY] ENCLOSED BY 'char' : 用来忽略数据源字段中的符号。 LINES TERMINATED BY 'string' :可以指定行之间的换行符,默认值为 \n 。 有些windows上的文本文件的换行符可能为\r\n,由于是不可见字符,请仔细检查。
  • 语法 LOAD DATA LOCAL INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_name [CHARACTER SET charset_name] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] ] [LINES [TERMINATED BY 'string'] ] [IGNORE number {LINES | ROWS}] [(col_name_or_user_var [, col_name_or_user_var] ...)]