首页 > 数据库 > Oracle > goldengate表空间过大处理
1 goldengate表空间使用率
TABLESPACE_NAME TOT_SIZE TOT_FREE PCT_FREE MAX_FREE CHUNKS_FREE
-------------------------- ----------------- ---------------------
GOLDENGATE 20,480 2,726 13 1,284 9
2 查看表空间对象的大小:

3 查看相关对象的数据:
SQL> select count(*) from goldengate.GGS_DDL_HIST;
COUNT(*)
----------
728
SQL> select count(*) from goldengate.GGS_MARKER;
COUNT(*)
----------
369
SQL> select count(*) from goldengate.GGS_DDL_HIST_ALT;
COUNT(*)
----------
1065
相关表的数据不多,总共就 2000行,怎么就使用了将近17G的空间,明显不合理。
查询oracle官方文档,根据DOC ID 2404506.1文档说明,
Oracle goldengate mgr只清理数据,即操作为DML操作,不回收空间,也不重新设置高水位线,故导致goldengate空间使用的越来越多。

4 重建索引,查看索引的空间是否收缩,发现空间已经收缩。
SQL> alter INDEX "GOLDENGATE"."GGS_DDL_HIST_ALT_u2" rebuild;
Index altered.
SQL> alter INDEX "GOLDENGATE"."GGS_DDL_HIST_ALT_u3" rebuild;
Index altered.
SQL> alter INDEX "GOLDENGATE"."GGS_DDL_HIST_ALT_u1" rebuild;
Index altered.
重建索引后,发现空间释放。 GGS_DDL_HIST_ALT_u1索引使用的空间从2304M缩小到.0625M, GGS_DDL_HIST_ALT_u2索引使用的空间从5916M缩小到0.125M,GGS_DDL_HIST_ALT_u3索引从2694M缩小到.0625M

5 收缩表:
在收缩表前,需要停止 OGG的管理进程和抽取进程,故没有执行。
alter GOLDENGATE.GGS_DDL_HIST_ALT enable row movement;
alter GOLDENGATE.GGS_DDL_HIST enable row movement;
ALTER TABLE GOLDENGATE.GGS_DDL_HIST_ALT SHRINK SPACE COMPACT;
ALTER TABLE GOLDENGATE.GGS_DDL_HIST SHRINK SPACE COMPACT;
ALTER TABLE GOLDENGATE.GGS_DDL_HIST_ALT SHRINK SPACE ;
ALTER TABLE GOLDENGATE.GGS_DDL_HIST SHRINK SPACE ;
6查看表空间的使用情况,发现腾出来11G的空间

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69996316/viewspace-2778192/ ,如需转载,请注明出处,否则将追究法律责任。