为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8_20250423_HG_kylin10_64
【操作系统】:银河麒麟10
【CPU】: Hygon C86
【问题描述】*:数据库回滚表空间的管理问题,文件会一直增长,没几天就几百G,服务器磁盘就占满了,缩容也缩不下去,提示 无法回收簇。
不会又要重新建库迁移吧…
看下IO压力,是不是磁盘能力不行;还有是那些很消耗IO的SQL也优化下。
另外目前的情况得特殊处理了
一种办法是:重新初始化一个新库然后DTS/DIMP等方法迁移过去,比较安全,新的库设定参数UNDO_SPACE=50即限制50G;
另外一种不用迁但是风险高,替换UNDO文件【前提!做好数据库全量备份】,步骤:
-- PSEG_RECV改为1
SP_SET_PARA_VALUE(1,'PSEG_RECV',1);
--重启数据库,检查数据库日志,直到正常回滚完成
-- 停库
--使用同版本数据库软件,初始化新的库
./dminit path=/newdbpath ...
--正常启动下新库
./dmserver /newdbpath/dm.ini
-- 将新库的ROLL.DBF文件替换到原库数据文件目录
cp /newdbpath/ROLL.DBF /olddbpath/ROLL.DBF
-- 启动原库数据库服务
./DmService start
3、开启PURGE 并行参数,重启生效
SP_SET_PARA_VALUE(2,'PARALLEL_PURGE_FLAG',1);
