云服务器内容精选

  • 解决方案 随着业务数据的增加,原来申请的数据库磁盘容量可能会不足,建议用户进行磁盘扩容,确保磁盘空间足够。 如果原有规格的磁盘已是最大,请先升级规格。 针对数据空间过大,可以删除无用的历史表数据。 如果实例变为只读状态,您需要先联系客服解除只读状态;如果实例非只读状态,则可以直接执行删除操作。 可在业务低峰期对碎片率高的表执行optimize优化,以便释放空间: 清理整张表使用DROP或TRUNCATE操作;删除部分数据,使用DELETE操作。 如果是日志文件占用过多,可以通过清理日志,来释放磁盘空间。 针对大量排序查询导致的临时文件过大,建议优化SQL查询。
  • 解决方案 随着业务数据的增加,原来申请的数据库磁盘容量可能会不足,建议用户扩容磁盘空间,确保磁盘空间足够。 如果原有规格的磁盘已是最大,请先升级规格。 云盘实例可以设置存储空间自动扩容,在实例存储空间达到阈值时,会触发自动扩容。 针对数据空间过大,可以删除无用的历史表数据。 如果实例变为只读状态,您需要先新建工单,联系客服解除只读状态;如果实例非只读状态,则可以直接执行删除操作。 查看物理文件大小Top50库表,识别可以删除的历史表数据,具体操作请参见容量预估。 可在业务低峰期对碎片率高的表执行optimize优化,以便释放空间: 清理整张表使用DROP或TRUNCATE操作;删除部分数据,使用DELETE操作,如果是执行DELETE操作,需要使用OPTIMIZE TABLE来释放空间。 如果是RDS for MySQL Binlog日志文件占用过多,可以清理本地Binlog日志,来释放磁盘空间。 针对大量排序查询导致的临时文件过大,建议优化SQL查询。 查询数据库慢SQL和Top SQL,分析数据量大,行数多,响应时间长的SQL语句,并进行优化。 您还可以订阅实例健康日报来获取SQL及性能分析结果,包括慢SQL分析、全量SQL分析、性能 & 磁盘分析、性能指标趋势图,当发生风险点时及时收到诊断报告。 具体操作请参见诊断日报。
  • 其他存储引擎 在5.7及以上的版本中,不支持的存储引擎如表1所示: 表1 存储引擎约束限制 引擎 原因 MyISAM引擎 MyISAM引擎表不支持事务,仅支持表级别锁,导致读写操作相互冲突。 MyISAM对数据完整性的保护存在缺陷,且这些缺陷会导致数据库数据的损坏甚至丢失。 MyISAM在出现数据损害情况下,很多都需要手动修复,无法通过产品服务提供的恢复功能进行数据恢复。 MyISAM向InnoDB的迁移透明,大多数情况不需要改动建表的代码,云数据库自动转换InnoDB即可完成迁移。 FEDERATED引擎 主备节点支持FEDERATED引擎会导致在远端数据库上相同DML重复执行,导致数据错乱。 FEDERATED引擎会在时间点恢复场景,当全量恢复完成后,远端数据库上数据不会跟随全量备份恢复到全备时的数据状态,在增量恢复阶段再应用数据会导致FEDERATED表数据错乱。 Memory引擎 如果内存表隐式的变空,那在Open表的时候数据库就会自己产生一个DELETE event到binlog中。这样当HA集群使用了内存表,那么重启HA,备库(或者只读库)就会自己产生一个自己的GTID,导致主备不一致,进而引发备库重建,甚至导致备库会不停的重建。 使用Memory表,会存在OOM的风险,导致服务被终止。
  • 什么是DDS实例的只读状态? 为保护DDS实例的正常运行,在存储空间即将被写满的时候,数据库会被设置成磁盘满只读状态,该状态下只支持数据的读取,不支持写入和更新,可以通过扩容存储空间来解除该状态,重新获得写入和更新的能力。 具体规则如下: 用户购买的存储空间超过600GB,当剩余的可用存储空间为18GB时,实例状态将被设置为只读。 用户购买的存储空间小于等于600GB,当实际使用量到总存储空间的97%时,实例状态将被设置为只读。 用户购买的存储空间超过600GB,当剩余的可用存储空间大于90GB时,只读状态会自动解除。 用户购买的存储空间小于等于600GB,当实际使用量小于总存储空间的85%时,只读状态会自动解除。 此时建议您清理多余的资源或进行存储空间扩容。 父主题: 数据库存储
  • RDS for MySQL是否支持存储过程和函数 云数据库 RDS for MySQL支持存储过程和函数。 存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,提高数据处理的效率。 存储过程和函数的区别 函数必须有返回值,而存储过程没有 存储过程的参数可以使用IN, OUT, INOUT 类型;而函数的参数只能是IN类型的 创建存储过程和函数请参见官方文档。 父主题: 数据库存储
  • 其他存储引擎 在MySQL 5.6及以上的版本中,不支持的存储引擎如表1所示: 表1 存储引擎约束限制 引擎 原因 MyISAM引擎 MyISAM引擎表不支持事务,仅支持表级别锁,导致读写操作相互冲突。 MyISAM对数据完整性的保护存在缺陷,且这些缺陷会导致数据库数据的损坏甚至丢失。 MyISAM在出现数据损害情况下,很多都需要手动修复,无法通过产品服务提供的恢复功能进行数据恢复。 MyISAM向InnoDB的迁移透明,大多数情况不需要改动建表的代码,云数据库自动转换InnoDB即可完成迁移。 FEDERATED引擎 主备实例支持FEDERATED引擎会导致在远端数据库上相同DML重复执行,导致数据错乱。 FEDERATED引擎会在时间点恢复场景,当全量恢复完成后,远端数据库上数据不会跟随全量备份恢复到全备时的数据状态,在增量恢复阶段再应用数据会导致FEDERATED表数据错乱。 Memory引擎 如果内存表隐式的变空,那在Open表的时候数据库就会自己产生一个DELETE event到binlog中。这样当HA集群使用了内存表,那么重启HA,备库(或者只读库)就会自己产生一个自己的GTID,导致主备不一致,进而引发备库重建,甚至导致备库会不停的重建。 使用Memory表,会存在OOM的风险,导致服务被终止。