前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库服务:数据库表空间扩容

数据库服务:数据库表空间扩容

作者头像
数据和云01
发布2018-09-05 09:44:43
1.5K0
发布2018-09-05 09:44:43
举报
文章被收录于专栏:数据库新发现数据库新发现

http://www.enmotech.com/services/service.html(专业数据库服务)

数据库表空间扩容是我们在运维过程中经常需要做的事情,本文分享一次在扩容表空间中遇到的情况以及针对本次情况的一些想法。

记一次在运维过程中遇到的问题,在最近的一次表空间扩容中遇到的问题,该表表空间使用率达到 80% 以上,照常对该表空间进行扩容时报错,报错提示如下:

l1.png
l1.png

打码部分为表空间名称,错误提示空间不足,在扩容表空间时已经检查过磁盘组的剩余空间。

DATA 磁盘组的剩余空间还很充足,于是根据错误提示上 mos 查:

l2.png
l2.png

结果如图,错误提示一样,直接拉到最后看解决办法。

l3.png
l3.png

根据 mos 提供的方法,检查修复之后重新 rebalance。

alter diskgroup diskgroupname rebalance power 32:使用此子句手动重新平衡磁盘组。自动存储管理在所有驱动器上均匀地重新分配数据文件。

POWER :在 POWER 子句中,指定 0 到 11 之间的值,其中 1 表示重新平衡操作,11 表示 Oracle ASM 尽可能快地执行重新平衡。您在 POWER 子句中指定的值默认为 ASM_POWER_LIMIT 初始化参数的值。

虽然指定 power 值为32,但是实际日志中查看,最大只能达到 11;

l4.png
l4.png

查询官方文档给出的解释:

ASM_POWER_LIMIT:该 ASM_POWER_LIMIT initialization 参数指定磁盘组中磁盘重新平衡的默认功率。该值的范围是 0 到 1024。默认值为 1。值 0 禁用重新平衡。较高的数值使重新平衡操作能够更快地完成,但可能会导致更高的 I / O 开销和更多的重新平衡过程。

  • 对于具有磁盘组ASM兼容性集到磁盘组11.2.0.2或更大(例如,COMPATIBLE.ASM= 11.2.0.2),值的操作范围是 0 到 1024 用于重新平衡能力。
  • 对于磁盘组 ASM 兼容性设置为小于的磁盘组 11.2.0.2,值的操作范围 0 为 11包含。如果值 ASM_POWER_LIMIT 大于11,则将值用于 11 这些磁盘组。

初始化参数的 POWER 子句允许值范围相同 ASM_POWER_LIMIT。如果 POWER 指定的子句的值大于 11ASM 兼容性设置为小于的磁盘组 11.2.0.2,则会显示警告,并且将使用 POWER 等于的值 11 进行重新平衡,所以日志中看到的最大值为 11。

Usable_file_MB=-115876 是什么含义?

等到重新 rebalance 完成之后,重新增加数据文件发现仍然失败了,查看磁盘组信息发现每块盘的大小并没有改变。

l5.png
l5.png

于是返回仔细查看 mos 文档,根据 mos 提示查看 Usable_file_MB 的值,我发现数据库的 Usable_file_MB=-115876 是一个负数。

l6.png
l6.png

这个值代表什么意思,为什么是负数呢?我查询官方文档,官方文档给出的解释是:USABLE_FILE_MB 表示为镜像调整的可用空间量,可用于新文件在磁盘发生故障后恢复冗余。USABLE_FILE_MB 通过 REQUIRED_MIRROR_FREE_MB 从磁盘组中的总可用空间中减去然后调整镜像值来计算。例如,在正常冗余磁盘组中,默认情况下,镜像文件使用的磁盘空间等于其大小的两倍,如果剩余 4 GB 的实际可用文件空间,则 USABLE_FILE_MB 大约等于 2 GB。然后,您可以添加最大 2 GB 的文件。

REQUIRED_MIRROR_FREE_MB 指为了使 diskgroup 能在一个或多个磁盘损坏后能够恢复冗余(redundancy),磁盘组中应该保留的剩余空间。

在 data 磁盘组的查询输出示例中,计算如下:

(FREE_MB - REQUIRED_MIRROR_FREE_MB)/ 2=USABLE_FILE_MB

 (278199-509952)/2=-115875

该值为负数时有那些影响呢?官方文档给出的解释:

1. 根据值FREE_MB,您可能无法创建新文件。 2. 下一次失败可能会导致冗余减少的文件。

如果 USABLE_FILE_MB 变为负数,强烈建议您尽快为磁盘组添加更多空间

虽然 DATA 磁盘组还剩 两百八十多G 未使用,但是采用的是 Normal redundancy,减去故障恢复所需要的磁盘空间,剩下的空间已经不足了。所以无法新增数据文件,对表空间进行扩容。

联系存储工程师新加一块 500G 的磁盘,对 DATA 磁盘组进行扩容。

alter diskgroup DATA rebalance power 11;

等待 rebalance 完成之后,再进行扩容表空间,表空间成功扩容。

l7.png
l7.png

总结

这次故障其实算不上真正意义上的故障,扩容失败主要是磁盘组剩余可使用空间不足,惯性思维认为剩余空间大小充足,就应该能进行扩容表空间,本来新增存储扩容磁盘组就能解决问题,由于知识储备不够,关注的问题的点不够全面导致这次简单的扩容复杂化了。以后在对表空间进行扩容时,不仅要关注磁盘组的剩余空间大小,还要注意磁盘的冗余方式。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档