昨天下午购买的阿里云 RDS ,想把原来放在另一个帐号下的数据库迁过来。 昨天网上刚想迁移数据,发现新的 RDS 数据占用就为 5GB 。 当时以为是预分配什么的,我就想先导入数据看看。于是我把 1.5GB 的 SQL 文件导入了,发现数据库空间占用为 7GB 。 我把刚刚导入的数据库删除,空间占用回到 5GB 多一点。 本人不是专业数据库人员,程度只是在能够把公司业务跑起来的程度,不知道阿里云 RDS 这种情况是否正常。 打客服电话说是 MySQL InnoDB 引擎需要分配这些空间,然后我发工单,客服人员说什么 log Undo 之类的。 我就想不通了,刚开通的 RDS ,为什么会有这么大的 log ? undo ?
======================================================
下面是部分工单内容:
lix***@gmail.com : RDS 实例 ID : rm-bp16q22z5i23ldp3u
数据库引擎 : MySQL5.7
具体操作说明 : 没有任何操作的时候数据占用 5G 以上。
问题描述 : 云数据库 RDS MySQL5.7 单机基础版,刚开通, 20G 的空间就已经使用 5G 多,我不知道这是否正常。我担心这些如果是无用数据,以后可能会影响正常的数据备份和恢复效率。
2017-04-12 09:36:37
售后工程师 : 您的问题我们已收到,会尽快为您查看。请您耐心等待,谢谢
2017-04-12 10:12:23
售后工程师 : 您好,看了下实例,是系统文件较大。
系统文件
系统文件涉及到 ibdata1 系统表空间文件和 ib_logfile0 、 ib_logfile1 日志文件。
ibdata1 文件:
InnoDB 引擎表由于支持多版本并发控制( MVCC ),因此会将查询所需的 Undo 信息保存在系统文件 ibdata1 中。
如果存在对一个 InnoDB 表长时间不结束的查询,而且在查询过程中表有大量的数据变化,则会生成大量的 Undo 信息,导致 ibdata1 文件尺寸增加。
由于 MySQL 内部机制的限制, ibdata1 文件目前是不支持收缩的。
因此出现这样的情况,在不升级磁盘空间的前提下,比较好的解决方法是在同地域同可用区购买相同配置的 RDS 实例,通过 DTS 工具将数据迁移到新实例中。
建议:监控和清理执行时间过长的会话或事务,请参考: RDS MySQL 管理长时间运行查询
ib_logfile 日志文件:
ib_logfile0 和 ib_logfile1 日志文件保存 InnoDB 引擎表的事务日志信息,其文件大小尺寸固定,不可以改变。较大的尺寸在高并发事务的场景下有利于减少事务日志文件切换的次数,提高实例性能。
2017-04-12 10:13:43
lix***@gmail.com : 你好,我的 RDS 中已存在的 5GB 空间占用,是在租用 RDS 服务还未进行任何操作的时候就存在的。你说要重新租用 RDS 并进行数据迁移可以解决问题,我很怀疑。
现在数据库中没有一行我自己的数据。
不知可否给我进行重置?
2017-04-12 10:18:12
售后工程师 : 您好,非常抱歉,实例创建之后系统文件就无法重置了,只可以通过迁移来解决,您参考 https://help.aliyun.com/knowledge_detail/41739.html 。
2017-04-12 12:22:44
===================================================
求安慰,求开导,大家购买的 RDS 是这样的吗?
1
gouchaoer 2017-04-19 16:07:43 +08:00
我只能说 mysql5.7 已经比较良心了,你自己买服务器搭完全没性价比
|