绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
短时间中断业务压缩大的lob段需求案例分析
2021-07-23 16:41:18

用户有一个需求,之前删除了表中大量数据,只保留近20天的数据,因为表中有lob段,所以这些lob段占用的空间一直没有释放
二目前释放这些空间需要move表的lob段,这个时间很慢,业务无法接受,后续我们通过讨论采用另一种方案解决
1 申请停机时间,先rename表CLOB_U1为CLOB_U1_OLD,再创建一样的表CLOB_U1,此时开启业务,业务数据开始向表中写数,
后续我们逐步将CLOB_U1_OLD中20天内的数据insert到表CLOB_U1,终实现用户数据需求,这里有个缺点就是在用户导入完成之前,虽然
业务可以继续跑,中断时间也很短,但是这个表用于数据监控,会导致insert完成之前用户监控界面的数据暂时缺失,这个需要跟业务沟通好,下面
模拟这个过程。




CLOB_U1中的数据
SQL> select * from clob_u1;

ID TEXT
---------- ------------------------------------------------------------
1 dlfdjfldjldjfldfjsldfjdslfjeofoewwor20ripeglf
2 oweurol0werw=2=2-523-43840584rfjkvnlajfdsfjdlfjldfjwoe
3 oweurol0werfldfjsldfjdslfjeofoewwor20ripeglf
4 oweurol0w=2=2-523-43840584rfjkvnlajfdsfjdlfjldfjwoe
改表名
alter table clob_u1 rename to clob_u1_old;


创建新的原始表
DBMS_METADATA.GET_DDL('TABLE','CLOB_U1','U1')
--------------------------------------------------------------------------------

CREATE TABLE "U1"."CLOB_U1"
( "ID" NUMBER,
"TEXT" CLOB
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TBS_U1"
LOB ("TEXT") STORE AS SECUREFILE (
TABLESPACE "TBS_U1" ENABLE STORAGE IN ROW CHUNK 8192
NOCACHE LOGGING NOCOMPRESS KEEP_DUPLICATES
STORAGE(INITIAL 106496 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))

用户业务上线
insert into clob_u1 values('5',to_clob('dfsdjsfjuworuweorueworueworeuor'));
commit;
SQL> select * from clob_u1;

ID TEXT
---------- ------------------------------------------------------------
5 dfsdjsfjuworuweorueworueworeuor
目前用户表中只有新数据

下面插入其他数据
insert into clob_u1 select * from clob_u1_old where id in (1,2,3,4);

查询当前业务表clob_u1中的数据
SQL> select * from clob_u1;

ID TEXT
---------- ------------------------------------------------------------
5 dfsdjsfjuworuweorueworueworeuor
1 dlfdjfldjldjfldfjsldfjdslfjeofoewwor20ripeglf
2 oweurol0werw=2=2-523-43840584rfjkvnlajfdsfjdlfjldfjwoe
3 oweurol0werfldfjsldfjdslfjeofoewwor20ripeglf
4 oweurol0w=2=2-523-43840584rfjkvnlajfdsfjdlfjldfjwoe
至此业务表数据完成迁移

将clob_u1_old表truncate释放lob段。

truncate table clob_u1_old;

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~