点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
1.1 场景描述
步骤1:
dmsql system/xxxx@dmdb
kill session 16000 @db31;
select * from dba_locks @db31
步骤2:
dmsql system/xxxx@dmdb
sys unlock table acctxxx.md_xxx_procws_xxx_his_cc01;
imsql acctxxx/xxxx@xxx.xxx.9.39:3910
sys check table acctxxx.MD_xxx_procws_xxx_HIS_CC01;
select count(*) from acctxxx.MD_xxx_procws_xxx_HIS_CC01;
CREATE or replace INDEX MD_xxx_procws_xxx_HIS_CC01_1 ON MD_xxx_procws_xxx_HIS_CC01(BATCHSN,WSSEQ) HASH 1000000;
重建完索引,记录数还是不一致。
方案一:
imsql system/xxxx@10.xxx.x.39:3910
drop INDEX MD_xxx_procws_xxx_HIS_CC01_1 on acctxxx.MD_xxx_procws_xxx_HIS_CC01;
MDB-03035: cannot delete all indexes when there is a primary key
方案二(实际方案):
imsql system/xxxx@10.xxx.x.39:3910
iMSQL> rename table acctxxx.MD_xxx_procws_xxx_HIS_CC01 to acctxxx.MD_xxx_procws_xxx_HIS_CC01bak;
Table renamed
iMSQL> CREATE TABLE acctxxx.MD_xxx_procws_xxx_HIS_CC01(
BATCHSN VARCHAR(64) NOT NULL,
WSSEQ VARCHAR(25) NOT NULL,
RLB_DISP VARCHAR(18),
STATUS VARCHAR(2) NOT NULL,
ID_NO NUMERIC(14) NOT NULL,
PHONE_NO VARCHAR(20),
CONTRACT_NO NUMERIC(14),
DAY_BILLCYCL VARCHAR(8) NOT NULL,
CONTENT VARCHAR(230),
GEN_TIME VARCHAR(17) NOT NULL,
DEAL_TIME VARCHAR(17) NOT NULL,
DEAL_CODE VARCHAR(5),
PRIMARY KEY(BATCHSN,WSSEQ,ID_NO)
);
Table MD_xxx_procws_xxx_HIS_CC01 created
iMSQL> CREATE INDEX MD_xxx_procws_xxx_HIS_CC01_1 ON acctxxx.MD_xxx_procws_xxx_HIS_CC01(BATCHSN,WSSEQ) HASH 1000000;
Index md_xxx_procws_xxx_his_cc01_1 created
insert into acctxxx.MD_xxx_procws_xxx_HIS_CC01 select * from acctxxx.MD_xxx_procws_xxx_HIS_CC01bak;
commit;
imsql acctxxx/xxxx@10.xxx.x.39:3910
grant all on all to acctopr;
grant select on all to acctqry;
grant select on all to bdsopr;
commit;
dmsql dmsql system/xxxx@dmdb
select count(*) from acctxxx.MD_xxx_procws_xxx_HIS_CC01 @db31;
select count(*) from acctxxx.MD_xxx_procws_xxx_HIS_CC01 @db31_bak;
select count(*) from acctxxx.MD_xxx_procws_xxx_HIS_CC01 @db31_bak2;
方案三:
imsql acctxxx/xxxx@10.xxx.x.39:3910
CREATE or replace INDEX MD_xxx_procws_xxx_HIS_CC01_1 ON MD_xxx_procws_xxx_HIS_CC01(BATCHSN,WSSEQ) HASH 1000001;
CREATE or replace INDEX MD_xxx_procws_xxx_HIS_CC01_1 ON MD_xxx_procws_xxx_HIS_CC01(BATCHSN,WSSEQ) HASH 1000000;

本文作者:付青启(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




