ITPub博客

首页 > 数据库 > Oracle > goldengate表空间过大处理

goldengate表空间过大处理

原创 Oracle 作者:xueshancheng 时间:2021-06-24 17:01:24 0 删除 编辑

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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
本人目前就职于北京海天起点技术服务股份有限公司,从事Oracle数据库有十几年了,对Oracle及goldengate比较精通。

注册时间:2021-03-11

  • 博文量
    60
  • 访问量
    68958