注册
DMDPC分区表更改表空间测试
技术分享/ 文章详情 /

DMDPC分区表更改表空间测试

Captain J 2026/06/15 310 0 0
## DMDCP启动顺序 .\dmserver.exe d:\DM\dpc_data_mac\mp\DAMENG\dm.ini dpc_mode=MP .\dmserver.exe d:\DM\dpc_data_mac\sp1\DAMENG\dm.ini dpc_mode=SP .\dmserver.exe d:\DM\dpc_data_mac\bp1\DAMENG\dm.ini dpc_mode=BP .\dmserver.exe d:\DM\dpc_data_mac\bp2\DAMENG\dm.ini dpc_mode=BP

1、创建表空间

CREATE TABLESPACE CRSC_BEMS_1 DATAFILE 'CRSC_BEMS_1.DBF' SIZE 128 STORAGE( ON RAFT_1); CREATE TABLESPACE CRSC_BEMS_2 DATAFILE 'CRSC_BEMS_2.DBF' SIZE 128 STORAGE( ON RAFT_2); SP_TS_GROUP_CREATE('TSG_CRSC_BEMS', 'tablespace group1'); SP_TS_GROUP_ADD_TS('TSG_CRSC_BEMS', 'CRSC_BEMS_1'); SP_TS_GROUP_ADD_TS('TSG_CRSC_BEMS', 'CRSC_BEMS_2'); CREATE TABLESPACE MUBIAO_1 DATAFILE 'MUBIAO_1.DBF' SIZE 128 STORAGE( ON RAFT_1); CREATE TABLESPACE MUBIAO_2 DATAFILE 'MUBIAO_2.DBF' SIZE 128 STORAGE( ON RAFT_2); SP_TS_GROUP_CREATE('MUBIAO', 'tablespace group2'); SP_TS_GROUP_ADD_TS('MUBIAO', 'MUBIAO_1'); SP_TS_GROUP_ADD_TS('MUBIAO', 'MUBIAO_2');

2、查询表空间相关信息

-- 查询表空间与RAFT组的归属关系 SELECT t1.id, t1.name AS tablespaceName, t2.name AS raftName FROM "SYS"."V$TABLESPACE" t1 LEFT JOIN DPC_TABLESPACE dts ON t1.id = dts.ts_id AND t1.name = dts.name LEFT JOIN DPC_BP_RAFT t2 ON dts.raft_id = t2.raft_id ORDER BY t1.id;

image.png

--查看表空间组下的表空间列表 call SP_GET_ALL_TS_BY_TSGROUP('MUBIAO')

image.png

3、创建分区表

create table test1(c1 int, c2 int) PARTITION BY RANGE(c1)( PARTITION p1 VALUES LESS THAN (100) storage (on CRSC_BEMS_1), PARTITION p2 VALUES EQU OR LESS THAN(MAXVALUE) storage (on CRSC_BEMS_2)); -- 查询当前用户下,分区表各分区的表空间 SELECT table_name,partition_name, tablespace_name FROM DBA_TAB_PARTITIONS WHERE table_name = 'TEST1' ORDER BY partition_position;

image.png

4、将表移动至第二个表空间组内

-- 将表移动到其他表空间组内 Alter TABLE sysdba.TEST1 MOVE PARTITION P1 TO MUBIAO_1; Alter TABLE sysdba.TEST1 MOVE PARTITION P2 TO MUBIAO_2; -- 查询当前用户下,分区表各分区的表空间 SELECT table_name,partition_name, tablespace_name FROM DBA_TAB_PARTITIONS WHERE table_name = 'TEST1' ORDER BY partition_position;

image.png

5、创建表分区默认为表空间组(多次测试)

--p1分区指定表空间CRSC_BEMS_1,p2分区指定表空间组TSG_CRSC_BEMS,p3分区指定MUBIAO create table test2(c1 int, c2 int) PARTITION BY RANGE(c1)( PARTITION p1 VALUES LESS THAN (10) storage (on CRSC_BEMS_1), PARTITION p2 VALUES LESS THAN (20) storage (on TSG_CRSC_BEMS), PARTITION p3 VALUES EQU OR LESS THAN(MAXVALUE) ) storage (on MUBIAO); -- 查询当前用户下,分区表各分区的表空间 SELECT table_name,partition_name, tablespace_name FROM DBA_TAB_PARTITIONS WHERE table_name = 'TEST2' ORDER BY partition_position;

image.png

--每个分区都设置在表空间组TSG_CRSC_BEMS下,6个分区 create table test11(c1 int, c2 int) PARTITION BY RANGE(c1)( PARTITION p1 VALUES LESS THAN (10) storage (on TSG_CRSC_BEMS), PARTITION p2 VALUES LESS THAN (20) storage (on TSG_CRSC_BEMS), PARTITION p3 VALUES LESS THAN (30) storage (on TSG_CRSC_BEMS), PARTITION p4 VALUES LESS THAN (40) storage (on TSG_CRSC_BEMS), PARTITION p5 VALUES LESS THAN (50) storage (on TSG_CRSC_BEMS), PARTITION p6 VALUES EQU OR LESS THAN(MAXVALUE) ) storage (on TSG_CRSC_BEMS); SELECT table_name,partition_name, tablespace_name FROM DBA_TAB_PARTITIONS where TABLE_NAME IN ('TEST11') ORDER BY table_name;

image.png

--每个分区都设置在表空间组TSG_CRSC_BEMS下,3个分区 create table test10(c1 int, c2 int) PARTITION BY RANGE(c1)( PARTITION p1 VALUES LESS THAN (10) storage (on TSG_CRSC_BEMS), PARTITION p2 VALUES LESS THAN (20) storage (on TSG_CRSC_BEMS), PARTITION p3 VALUES EQU OR LESS THAN(MAXVALUE) ) storage (on TSG_CRSC_BEMS); SELECT table_name,partition_name, tablespace_name FROM DBA_TAB_PARTITIONS where TABLE_NAME IN ('TEST10') ORDER BY table_name;

image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服