当前位置:首页 > 生活百科

卸载oracle客户端步骤(oracle数据库重启命令)

栏目:生活百科日期:2025-01-17浏览:0

概述

有这么个需求,有一张5000万大表,需要保留最后3个月数据,也就是1000万数据,而这张表使用很频繁,生产环境也是7*24小时不停,如果用分段delete影响的时间太长,所以用了rename切换的方法。这里先在测试数据库做一下演练。

以测试环境BN_SEQUENCE表做测试,数据量大约是6千万。


思路

最近有点喜欢上画图,感觉形象点,可能有点丑,大家不要介意~


实现方案

1、获取A表定义、索引、触发器、外键约束

这里的表定义、索引、主外键实际上用PLSQL就可以直接看到了,所以就不写了,只写了触发器的。

相关sql:

--查看表上触发器定义SELECT * FROM DBA_TRIGGERS WHERE TABLE_NAME='BN_SEQUENCE';SELECT DBMS_METADATA.GET_DDL('TRIGGER','CHK_BIU_BN_SEQUENCE','GLOGOWNER') FROM DUAL;SELECT DBMS_METADATA.GET_DDL('TRIGGER','BN_SEQUENCE_PN','GLOGOWNER') FROM DUAL;-- Create tablecreate table BN_SEQUENCE( BN_RULE_GID VARCHAR2(101 CHAR) not null, BN_CONTEXT VARCHAR2(300 CHAR) not null, BN_SEQUENCE_ID VARCHAR2(50 CHAR) not null, CURVALUE VARCHAR2(50 CHAR), DOMAIN_NAME VARCHAR2(50 CHAR) not null, INSERT_USER VARCHAR2(128 CHAR) not null, INSERT_DATE DATE not null, UPDATE_USER VARCHAR2(128 CHAR), UPDATE_DATE DATE)tablespace DATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 1 next 1 minextents 1 maxextents unlimited pctincrease 0 );.....

2、创建B表&–BN_SEQUENCE_BAK

--这里只创建表定义,不加约束、索引、触发器、外键-- Create tablecreate table BN_SEQUENCE_BAK( BN_RULE_GID VARCHAR2(101 CHAR) not null, BN_CONTEXT VARCHAR2(300 CHAR) not null, BN_SEQUENCE_ID VARCHAR2(50 CHAR) not null, CURVALUE VARCHAR2(50 CHAR), DOMAIN_NAME VARCHAR2(50 CHAR) not null, INSERT_USER VARCHAR2(128 CHAR) not null, INSERT_DATE DATE not null, UPDATE_USER VARCHAR2(128 CHAR), UPDATE_DATE DATE)tablespace DATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 1 next 1 minextents 1 maxextents unlimited pctincrease 0 );

3、分段insert

为了避免对线上环境的影响,建议分段insert,插入最近3个月的数据。

insert into BN_SEQUENCE_BAK select * from BN_SEQUENCE where update_date &>=to_date('2019/08/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss') andupdate_date &<to_date('2019/09/19 14:00:00', 'yyyy/mm/dd hh34:mi:ss');insert into BN_SEQUENCE_BAK select * from BN_SEQUENCE where update_date &>=to_date('2019/07/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss') andupdate_date &<to_date('2019/08/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss');insert into BN_SEQUENCE_BAK select * from BN_SEQUENCE where update_date &>=to_date('2019/06/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss') andupdate_date &<to_date('2019/07/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss');insert into BN_SEQUENCE_BAK select * from BN_SEQUENCE where update_date &>=to_date('2018/06/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss') andupdate_date &<to_date('2019/06/19 00:00:00', 'yyyy/mm/dd hh34:mi:ss');

4、切换表

这里实际上我在生产环境做切换也踏坑了,没考虑到有物化视图这种情况,所以导致切换不了。

alter table BN_SEQUENCE rename to BN_SEQUENCE_ARCH;alter table BN_SEQUENCE_BAK rename to BN_SEQUENCE;

5、数据补录

把前面插入数据后到切换表后的数据做一下补录。

insert into BN_SEQUENCE select * from BN_SEQUENCE_ARCH where update_date &>=to_date('2019/09/19 14:00:00', 'yyyy/mm/dd hh34:mi:ss')

6、B表创建索引、触发器

记得需要重命名。

-- Add comments to the table comment on table BN_SEQUENCE is 'This table stores the current sequence value of the business number.';-- Add comments to the columns comment on column BN_SEQUENCE.BN_RULE_GID is 'BN_RULE_GID contains the unique identifier for the Business Number (BN) rule.';-- Create/Recreate primary, unique and foreign key constraints alter table BN_SEQUENCE add constraint PK_BN_SEQUENCE primary key (BN_RULE_GID, BN_CONTEXT, BN_SEQUENCE_ID) using index  tablespace INDX pctfree 10 initrans 2 maxtrans 255 storage ( initial 1M next 1M minextents 1 maxextents unlimited pctincrease 0 );alter table BN_SEQUENCE add constraint FK_BN_SEQRULE_GID foreign key (BN_RULE_GID) references BN_RULE (BN_RULE_GID);-- Grant/Revoke object privileges grant select, insert, update, delete on BN_SEQUENCE to APP_USER;grant select on BN_SEQUENCE to APP_USER_SELECT;grant select, insert, update, delete on BN_SEQUENCE to EXT_USER;....

7、校验数据

结果:数据全部迁移了,保留了去年6月19号到现在的数据,整个过程10分钟


8、drop表

建议保留一段时间后再执行。

“卸载oracle客户端步骤(oracle数据库重启命令)” 的相关文章

天猫直播怎么开通直播(天猫店铺申请条件及费用)

前几天刚给大家分享了淘宝达人开通直播权限的细节,收到很多老铁们的发来的成功消息,在此笔者祝贺大家正式进入淘宝直播行当。于此同时,还有老铁们咨询了一些店铺开通的问...

ffmpeg录屏原理(ubuntu自带录屏软件介绍)

FFmpeg是领先的多媒体框架,是一个强大的处理音视频的开源库,能够解码、编码、转码、混流、流媒体分离、滤镜和播放几乎所有格式的音视频内容。它既可以使用API对...

ai如何编辑文字段落(ai文字无法编辑的原因)

今天我们给大家带来一篇Illustrator实例教程,教大家制作悬浮文字的效果。首先,我们在Illustrator中新建一个画板,输入文字。接下来,我们选中文字...

如何免费建立网站,免费创建个人网站的流程与方法

最近因为买到了个人还挺喜欢的域名,于是心血来潮折腾了2个晚上建了个网站,学了一些教程踩了一些坑。想写一份30分钟搭建一个网站的教程分享于大家,有兴趣的朋友可以接...

qq理财通安全吗,腾讯理财通发展历程

3月18日,腾讯公布了2019年财报,财报中提到金融科技及企业服务板块收入1014亿元,占比27%,同比增长了21%;其中金融科技及企业服务板块中,腾讯理财通表...

学seo优化难吗,浅谈新手学习SEO的方法和建议

站点优化除站点内部有站点外,涉及的工作很多。一遇到点小问题,对于一位新手来说,都是很难处理的。许多公司想要培养一批专业的SEO人员,以便更好地管理企业网站。因此...

html登陆页面代码(网页制作登录注册页面)

大家好,这篇文章给大家分享怎么样设计一个简单的会员登陆页面话不多说,直接看效果图:简单的会员登陆页面html代码:&<pclass="tpt-login"...

免费转换mp3格式的软件(歌曲转换成mp3格式软件推荐)

在我们的电脑上有很多实用的软件,只是很少有人去发掘,今天就给大家分享5款舍不得卸载的电脑PC软件,黑科技十足!建议低调使用。一、桌面时钟屏保我们经常在一些视频里...

ipad无法充电怎么办, 三种方法教你解决

ipad充不进电是怎么回事1、原装充电器坏了。我们都知道,现在的充电器包括充电头和数据线这两个部分,ipad充不进电,有可能是充电头或者数据线有损坏。2、未使用...

万词霸屏的公司都有哪些,关键词霸屏快速排名方法

最近可能很多公司都在推广“万词霸屏”项目,咋眼一听好似很牛逼的样子,快速排名,快速上关键词,不限制地区,不限制关键词,每天上千关键词在首页等等,笔者发现特别是河...