暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

记录一次对 DB2 扩容表空间报错的案例总结

原创 jiayou 2024-08-03
311

记录一次对DB2扩容表空间报错的案例总结

一、问题描述

上次下班高铁回程路上,突然收到客户消息生产库扩容表空间报错,心想之前客户扩充很多次应该没啥难度。没时间细问先手机查看报错信息

扩容单个表空间多个容器报错,查询相关表空间信息

db2 list tablespaces show detail


Number of container 13

二、问题分析

在DB2数据库中,表空间(tablespace)是用于存储数据库对象(如表、索引等)的逻辑容器。随着数据量的堆叠,表空间扩容是避免空间不足常规操作。DB2提供了extend/resize命令来扩展表空间的大小。然而,在某些情况下,使用resize命令扩容表空间可能会引发所谓的“rebalance”问题。本次就是因为扩容多容器表空间不均触发rebalance导致。

在扩容表空间是要注意。

Rebalance问题可能对数据库性能产生以下影响:

  • 性能下降:数据页的迁移会占用大量的I/O资源和CPU资源,导致数据库的整体性能下降。
  • 资源消耗:Rebalance操作可能会增加数据库的存储需求,因为需要额外的空间来存储临时数据。
  • 事务延迟:正在进行的事务可能会因为rebalance操作而被延迟,影响事务的响应时间。

三、解决办法

一个表空间多个容器不要单个扩,执行all操作,,就不出现这种情况了。

db2 " alter tablespace XXXXX extend ( all <page_numbers>) "

如下命令可以查询rebalane信息

select

varchar(tbsp_name, 30) as tbsp_name,dbpartitionnum,member,rebalancer_mode,rebalancer_status,rebalancer_extents_remaining,rebalancer_extents_processed,rebalancer_start_time

from table(mon_get_rebalance_status(NULL,-2)) as t

本次执行了单条之后,等待完成 rebalance 之后在操作其他。

四、总结

扩容表空间的时候触发Rebalance会影响数据库性能,建议提前规划尽量避免。

此外如果遇到如下情况请参考处理:

  1. hacmp 单点控制的lv操作,有时候出问题,建议在A 机直接扩lv, 在hacmp 切换到B机 hacmp自动importvg 会把lv 信息更新的。
  2. 扩容操作选择业务空闲时间进行,避免影响正常业务系统操作。
  3. 扩容前后确认数据库状态是否正常,日志有无报错,系统资源使用率是否正常,无异常报错。
  4. 表空间扩充还可以通过添加新容器或者改变当前容器大小两种方式来实现,加容器之后DB2会有一个自动balance的过程,可能会持续几个小时,而通过改变容器大小的方式不会触发balance,但如果表空间建立在裸设备上,则要扩充裸设备空间。
  5. 扩容时可通过vmstat nmon等命令查询系统cpu、内存、io等正常。
最后修改时间:2024-08-03 10:20:01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论