当前位置:网站首页>Conversion from non partitioned table to partitioned table and precautions
Conversion from non partitioned table to partitioned table and precautions
2022-07-07 12:56:00 【PHP Development Engineer 】
Sometimes data archiving is not considered when designing at the beginning . Data archiving is not a simple export delete. Because our databases are generally delete Don't free up space . But we usually encounter insufficient space in the database , We have to face this problem . Of course, you can also do space recycling for defragmentation . I don't like it very much , Especially when it's a big watch .MySQL Once you surpass 100G Of , I dare not do it in online environment .Oracle I have done online recycling of 20T Table of , debris 800G, Recycled once and made it 55 Hours ( No downtime )
Personally, I think the best way is to use zoning , It's easy to say whether to migrate partitions or archive partitions . Generally, the partition is truncated , Soon . But what if a table has not been partitioned before ?
Let's give an example
create table b (id int ,a varchar2(10),time date); Common heap table simulation 5 Data
insert into b values (1,'a',sysdate-120);
insert into b values (2,'b',sysdate-90);
insert into b values (3,'c',sysdate-60);
insert into b values (4,'d',sysdate-30);
insert into b values (5,'e',sysdate);Generally speaking, we have to use time . So time indexing .
create index b1 on b (time);Generally, tables have primary keys , stay Oracle The business document number should be used as the primary key , stay MySQL of use ID Self increment has no business meaning . stay PG According to the in Oracle Just come .
Alter table b add constraint pkb primary key(id);by B Add primary key to the table , Note here that it must be named by itself rather than ordered by the database itself . Because there is no problem with normal masters and slaves , But there are OGG In this case, it is a pit . Later I'll talk about why .
ALTER TABLE b MODIFY
PARTITION BY RANGE (time)
(
PARTITION b1 VALUES LESS THAN (TO_DATE ('2022-03-01', 'YYYY-MM-DD')),
PARTITION b2 VALUES LESS THAN (TO_DATE ('2022-04-01', 'YYYY-MM-DD')),
PARTITION b3 VALUES LESS THAN (TO_DATE ('2022-05-01', 'YYYY-MM-DD')),
PARTITION b4 VALUES LESS THAN (TO_DATE ('2022-06-01', 'YYYY-MM-DD')),
PARTITION b5 VALUES LESS THAN (TO_DATE ('2022-07-01', 'YYYY-MM-DD'))
) online
UPDATE INDEXES
(
pkb GLOBAL,
b1 LOCAL
);This is the command to convert non partitioned tables into separate tables online . Notice that in the red part, I specify the primary key name , If it is automatic, it is the name of automatic . The pit mentioned above is right here , Because in OGG scenario , The automatic name of the target side, that is, the downstream database, is different from that of the upstream side of the source side . Executing this command will cause OGG The interrupt .
Is this a database problem or OGG The problem of ? I don't think it's , It's about getting familiar with the product . After execution, you can see that the table has become partitioned .
At this time, the expired data will be truncated as long as drop partition That's all right. , Of course, pay attention to one UPDATE GLOBAL INDEXES; Otherwise, the data cannot be written .
The source code attachment has been packaged and uploaded to Baidu cloud , You can download it yourself ~
link : https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27 Extraction code : yu27 Baidu cloud link is unstable , It may fail at any time , Let's keep it tight .
If Baidu cloud link fails , Please leave me a message , When I see it, I will update it in time ~
Open source address Code cloud address : http://github.crmeb.net/u/defu
Github Address : http://github.crmeb.net/u/defu
边栏推荐
- Find ID value MySQL in string
- HZOJ #236. Recursive implementation of combinatorial enumeration
- 2022 polymerization process test question simulation test question bank and online simulation test
- leetcode刷题:二叉树27(删除二叉搜索树中的节点)
- leetcode刷题:二叉树25(二叉搜索树的最近公共祖先)
- xshell评估期已过怎么办
- ACL 2022 | 序列标注的小样本NER:融合标签语义的双塔BERT模型
- 事务的七种传播行为
- leetcode刷题:二叉树21(验证二叉搜索树)
- Leetcode skimming: binary tree 27 (delete nodes in the binary search tree)
猜你喜欢

2022聚合工艺考试题模拟考试题库及在线模拟考试

NPM instal reports agent or network problems

leetcode刷题:二叉树19(合并二叉树)

leetcode刷题:二叉树24(二叉树的最近公共祖先)

Four functions of opencv

leetcode刷题:二叉树21(验证二叉搜索树)
![《ASP.NET Core 6框架揭秘》样章[200页/5章]](/img/4f/5688c391dd19129d912a3557732047.jpg)
《ASP.NET Core 6框架揭秘》样章[200页/5章]

ACL 2022 | 序列标注的小样本NER:融合标签语义的双塔BERT模型

What if does not match your user account appears when submitting the code?

2022a special equipment related management (boiler, pressure vessel and pressure pipeline) simulated examination question bank simulated examination platform operation
随机推荐
Steps of building SSM framework
Common knowledge of one-dimensional array and two-dimensional array
2022 examination questions and online simulation examination for safety production management personnel of hazardous chemical production units
Design and implementation of communication protocol
Aosikang biological sprint scientific innovation board of Hillhouse Investment: annual revenue of 450million yuan, lost cooperation with kangxinuo
About IPSec
Day-19 IO stream
JS to convert array to tree data
Unity 构建错误:当前上下文中不存在名称“EditorUtility”
The left-hand side of an assignment expression may not be an optional property access. ts(2779)
认养一头牛冲刺A股:拟募资18.5亿 徐晓波持股近40%
leetcode刷题:二叉树24(二叉树的最近公共祖先)
Day-17 connection set
智云健康上市:市值150亿港元 SIG经纬与京新基金是股东
关于 appium 启动 app 后闪退的问题 - (已解决)
Cookie
图像像素读写操作
ICLR 2022 | pre training language model based on anti self attention mechanism
IPv6 experiment
初学XML