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

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

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

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

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

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

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

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

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

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

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

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

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 完成之后,重新增加数据文件发现仍然失败了,查看磁盘组信息发现每块盘的大小并没有改变。

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

这个值代表什么意思,为什么是负数呢?我查询官方文档,官方文档给出的解释是: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 完成之后,再进行扩容表空间,表空间成功扩容。

总结

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李蔚蓬的专栏

实战LitePal(Android_Persistent Technology)

1.Debugexperience about SQLite & LitePal:创建数据库闪退?注意小括号

1503
来自专栏祝威廉

ElasticSearch QueryCache漫谈

这些天在做ES调优,因为之前更多的是考虑ES的架构和可运维性,并没有过多关注query调优这块。今天一查Query Cache相关的内容,发现是少之又少。于是自...

1652
来自专栏沃趣科技

ASM 翻译系列第三十九弹:物理元数据AT表

原作者:Bane Radulovic 译者: 魏兴华 审核: 魏兴华 DBGeeK联合出品 原文链接:http://asmsupportguy.bl...

2937
来自专栏漏斗社区

工具| 诸神之眼nmap定制化之NSE进阶

上一期斗哥跟大家介绍了Nmap中NSE脚本和常见的NSE的API,本期将为大家介绍Nmap的库文件以及如何利用Nmap的自身库将nmap的扫描结果保存在数据中。...

3447
来自专栏邹立巍的专栏

Linux 的进程间通信:文件和文件锁

我们首先引入文件进行 IPC ,试图先使用文件进行通信引入一个竞争条件的概念,然后使用文件锁解决这个问题,从而先从文件的角度来管中窥豹的看一下后续相关 IPC ...

9660
来自专栏程序员与猫

Elasticsearch 的一些关键概念

我更喜欢把 Elasticsearch 作为一种 nosql 去理解,它的一些开发概念和 MongoDB 以及 Redis 没有太大的区别,不过了解 Elast...

20210
来自专栏数据和云

【循序渐进Oracle】Oracle的逻辑备份与恢复

编辑手记:针对最近发生的炉石及GitLab事件,我们不得不再次强调备份的重要性。DBA的四大守则,第一条就是备份重于一切。年初做好备份,愿你的系统17无恙。 本...

4248
来自专栏xingoo, 一个梦想做发明家的程序员

DB Cache

1 DB Cache 是以bock为单位组织的缓冲区,不同大小的BLOCK对应不同的缓冲区参数 2 DB Cache的命中率越高,访问性能就越好 3 Cache...

2089
来自专栏GreenLeaves

oracle 表空间tablespace

一、Oracle 表空间的组成 Everoone knows Oracle数据库真正存放数据的是数据文件,Oracle表空间是逻辑上的概念,他在物理上是并不存在...

2738
来自专栏IT笔记

Solr如何使用游标进行深度分页查询

通常,我们的应用系统,如果要做一次全量数据的读取,大多数时候,采用的方式会是使用分页读取的方式,然而 分页读取的方式,在大数据量的情况下,在solr里面表现并...

4247

扫码关注云+社区

领取腾讯云代金券