为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
DM Database Server 64 V8
DB Version: 0x7000c
03134284172-20240321-222308-20093
Msg Version: 0
Gsu level(3-4) cnt: 3
Gsu level(5) cnt: 0
--03134284172-20240321-222308-20093
【操作系统】:
[root@90 DMDB]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
【CPU】:
[root@90 DMDB]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz
Stepping: 7
CPU MHz: 2199.999
BogoMIPS: 4399.99
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 14080K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 arat pku ospke avx512_vnni md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
【问题描述】*:
[root@90 DMDB]# ll
total 440491108
drwxr-xr-x. 2 dmdba dinstall 6 Jun 5 2024 bak
drwxr-xr-x. 2 dmdba dinstall 4096 Mar 25 20:53 ctl_bak
-rw-r--r--. 1 dmdba dinstall 347 Mar 24 16:25 dmarch.ini
-rw-r--r--. 1 dmdba dinstall 10240 Mar 25 20:53 dm.ctl
-rw-r--r--. 1 dmdba dinstall 268435456 Mar 26 13:34 DMDB01.log
-rw-r--r--. 1 dmdba dinstall 268435456 Mar 26 13:36 DMDB02.log
-rw-r--r--. 1 dmdba dinstall 134217728 Mar 12 16:35 DMDRS.DBF
-rw-r--r--. 1 dmdba dinstall 77766 Mar 25 20:47 dm.ini
-rw-r--r--. 1 dmdba dinstall 77766 Mar 25 20:47 dm.ini.dmbak
-rw-r--r--. 1 dmdba dinstall 932 Jun 5 2024 dminit20240605143833.log
-rw-r--r--. 1 dmdba dinstall 633 Jun 5 2024 dm_service.prikey
drwxr-xr-x. 2 dmdba dinstall 6 Jun 5 2024 HMAIN
-rw-r--r--. 1 dmdba dinstall 868220928 Mar 26 13:33 MAAS_ADMIN.DBF
-rw-r--r--. 1 dmdba dinstall 48368713728 Mar 26 13:32 MAAS_BUS_DB.DBF
-rw-r--r--. 1 dmdba dinstall 553648128 Dec 29 10:32 MAAS_BUS_DB_JFLOW.DBF
-rw-r--r--. 1 dmdba dinstall 2680160256 Mar 26 13:31 MAAS_PUBLIC.DBF
-rw-r--r--. 1 dmdba dinstall 73484206080 Mar 26 13:36 MAIN.DBF
-rw-r--r--. 1 dmdba dinstall 320579043328 Mar 26 13:36 ROLL.DBF
-rw-r--r--. 1 dmdba dinstall 3019898880 Mar 25 20:38 ROLL_NEW.DBF
-rw-r--r--. 1 dmdba dinstall 714 Jun 5 2024 sqllog.ini
-rw-r--r--. 1 dmdba dinstall 423624704 Mar 26 13:34 SYSTEM.DBF
-rw-r--r--. 1 dmdba dinstall 144703488 Mar 26 10:41 TEMP.DBF
-rw-r--r--. 1 dmdba dinstall 268435456 Dec 18 13:28 TEST_PUBLIC.DBF
drwxr-xr-x. 2 dmdba dinstall 6 Jun 5 2024 trace
[root@90 DMDB]# du -sh ROLL.DBF
299G ROLL.DBF
[root@90 DMDB]# du -sh ROLL_NEW.DBF
2.9G ROLL_NEW.DBF
[root@90 DMDB]#
我的ROLL.DBF膨胀太大了,要怎么收回来空间
UNDO_RETENTION 设的500
尝试了以下方法,不成功
启用回滚段修复模式:SP_SET_PARA_VALUE(1,'PSEG_RECV',1);
增加一个文件 停掉服务 替换新文件 ,这个方法试下不行,差点搞崩了。
重设也不行行
[执行语句1]
ALTER TABLESPACE "ROLL" RESIZE DATAFILE '/data/dm/data/DMDB/ROLL.DBF' TO 202400;
执行失败,失败原因:
[-2410]:数据文件[/data/dm/data/DMDB/ROLL.DBF]大小无效
执行完成
[执行语句1]
ALTER TABLESPACE "ROLL" RESIZE DATAFILE '/data/dm/data/DMDB/ROLL.DBF' TO 9783296;
执行失败,失败原因:
[-6036]:无法扩展文件
执行完成
deepseek上的方法试了一个遍都不行,小百灵AI更是回答的牛头不对马嘴
百度也问了一遍都不行,官网也找了没找到怎么处理。
实在没办法了,看看各位大佬有没有什么办法,目的就是想把膨胀的300G 空间收回来一些,实在太大了。
现在文件都设置不自动
可以关注下磁盘IO 是不是因为purge的速度太慢 导致roll不断扩展 可以查看以下视图 看看待purge的对象数量
select * from V$PURGE;
select * from V$PURGE_PSEG_TAB;
select * from V$PURGE_PSEG_OBJ;

roll.dbf过大的原因主要还是有事务长时间没提交或者有大事务短时间生成大量undo导致,可以优化业务处理数据逻辑,及时提交事务和拆分大事务
若想缩小roll.dbf文件,可以考虑初始化一个新库,然后通过dexp/dimp、dts等方式将原来库中的数据迁移到新初始化的库中