千家信息网

Exchange Partition的示例分析

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,今天就跟大家聊聊有关Exchange Partition的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Exchange Partit
千家信息网最后更新 2024年11月30日Exchange Partition的示例分析

今天就跟大家聊聊有关Exchange Partition的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Exchange Partition实验结果的结论:
中间表(非分区、空表)
1、源分区表的一个分区数据全部转移到中间表上了,源分区的这个分区数据查不到了
2、因为源分区表和目标分区表都是INTERVAL自动生成分区名字,目标分区表没有新增数据时是不会有分区名字的,所以对目标分区表插入一条数据新增一个分区
3、中间表和目标分区表的新增分区Exchange后,中间表和目标分区表的新增分区数据对调了
4、源分区表和目标分区表都是INTERVAL的情况下,无法保证原表导出的分区名字和目标表导入的分区名字一致


T3:源分区表
CREATE TABLE t3 (hid number,hdate date)
PARTITION BY RANGE(hid) INTERVAL (5)
(PARTITION p01 VALUES LESS THAN (10),
PARTITION p0q2 VALUES LESS THAN (14));

T2:中间表
CREATE TABLE t2 (hid number,hdate date)

T4:目标分区表
CREATE TABLE t4 (hid number,hdate date)
PARTITION BY RANGE(hid) INTERVAL (5)
(PARTITION p01 VALUES LESS THAN (10),
PARTITION p0q2 VALUES LESS THAN (14));

使T3表有数据
insert into t3 values(1,sysdate-1);
insert into t3 values(10,sysdate-1);
insert into t3 values(20,sysdate-1);
insert into t3 values(30,sysdate-1);
commit;
select partition_name ,partition_position from user_tab_partitions where table_name='T3';
PARTITION_NAME PARTITION_POSITION
------------------------------ ------------------
P01 1
P0Q2 2
SYS_P66 3
SYS_P67 4
SQL> select * from t3;
HID HDATE
---------- ---------
1 04-AUG-17
10 04-AUG-17
20 04-AUG-17
30 04-AUG-17

第一步
转移T3的3号分区SYS_P66到T2
ALTER TABLE T3 EXCHANGE PARTITION SYS_P66 WITH TABLE T2;


第二步
查看结果,T3的3号分区SYS_P66结构还在,但是分区数据到T2表
SQL>select partition_name ,partition_position from user_tab_partitions where table_name='T3';
PARTITION_NAME PARTITION_POSITION
------------------------------ ------------------
P01 1
P0Q2 2
SYS_P66 3
SYS_P67 4

SQL>select * from t3;
HID HDATE
---------- ---------
1 04-AUG-17
10 04-AUG-17
30 04-AUG-17

SQL> select * from t2;
HID HDATE
---------- ---------
20 04-AUG-17


第三步
再把T2转移到T4
因为T4是INTERVAL,没有新增数据就不会有新增分区,但是Exchange只能使用存在的分区名字且分区是可以插入这个值的,这下就必须先给T4表建立一个可用于Exchange的分区
SQL> ALTER TABLE T4 EXCHANGE PARTITION WITH TABLE T2; ---T4没有带任何分区名字,报错
ALTER TABLE T4 EXCHANGE PARTITION WITH TABLE T2
*
ERROR at line 1:
ORA-14006: invalid partition name

SQL> ALTER TABLE T4 EXCHANGE PARTITION SYS_P66 WITH TABLE T2; --T4带了一个不存在分区名字,报错
ALTER TABLE T4 EXCHANGE PARTITION SYS_P66 WITH TABLE T2
*
ERROR at line 1:
ORA-02149: Specified partition does not exist

SQL> ALTER TABLE T4 EXCHANGE PARTITION p01 WITH TABLE T2; --T4带了一个分区名字,但是这个分区是必须小于10,报错
ALTER TABLE T4 EXCHANGE PARTITION p01 WITH TABLE T2
*
ERROR at line 1:
ORA-14099: all rows in table do not qualify for specified partition

给T4表建立一个可用于Exchange的分区,INTERVAL情况下自动生成了SYS_P68了
SQL>insert into t4 values(19,sysdate-1);
1 row created.
SQL> commit;
SQL> select partition_name ,partition_position from user_tab_partitions where table_name='T4';
PARTITION_NAME PARTITION_POSITION
------------------------------ ------------------
P01 1
P0Q2 2
SYS_P68 3

继续Exchange,发现T2和T4的数据交换了
SQL> ALTER TABLE T4 EXCHANGE PARTITION SYS_P68 WITH TABLE T2;
Table altered.

SQL> select * from t2;
HID HDATE
---------- ---------
19 04-AUG-17

SQL> select * from t4;
HID HDATE
---------- ---------
20 04-AUG-17

看完上述内容,你们对Exchange Partition的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

分区表 数据 名字 目标 内容 示例 分析 情况 结果 自动生成 生成 一致 更多 知识 篇文章 结构 结论 行业 资讯 资讯频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全绘画图片可爱 北京保通科讯网络技术 上海教育网络安全设备品牌 型号 三妻四妾伴奏软件开发 专业服务器安全加固系统厂家 数据库文件大小增加的命令 网络安全法特征是 原神4399属于什么服务器 网络安全领导小组职能 druid数据库自定义密码 六安求职招聘软件开发定制 软件开发与数字货币的关系 服务器分区需要多大的内存 软件开发培训学几年 车载酷狗音乐显示服务器错误 最新软件开发招标模板 得格网络技术有限公司怎么样 中心集团网络技术有限公司 仙女座怎么连接服务器 东数西算服务器上市公司 计算机网络技术及其运用 数据库表内容的增删改 怎么用自己的计算机作为服务器 铁路网络安全宣传视频 计算机网络技术PPT顾可民 如何教育网络安全 计算机软件开发怎么学 网络安全大赛攻防题库 血战到底下载软件开发 网络安全证书有问题有什么隐患
0