达梦数据库管理用户自定义表空间

达梦数据库物理结构

DM 数据库指的是磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及临时数据文件等;
DM数据库为数据库中的所有对象分配逻辑空间,并存放在数据文件中。
在DM数据库内部,所有的数据文件组合在一起被划分到一个或者多个表空间中,所有的数据库内部对象都存放在这些表空间中。
常见表空间为SYSTEM 表空间,MAIN 表空间,ROLL 表空间,TEMP 表空间,HMAIN 表空间,用户自定义表空间;

相关视图

V$TABLESPACE
dba_data_files

创建表空间

SQL> CREATE TABLESPACE tsoa DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa01.dbf' SIZE 32,'/dm8/dmdbms/data/DAMENG/tsoa02.dbf' SIZE 32;
executed successfully
used time: 32.685(ms). Execute id is 503.
SQL>
SQL> select name,FILE_NUM, STATUS$ from v$tablespace where name='TSOA';

LINEID     NAME FILE_NUM    STATUS$    
---------- ---- ----------- -----------
1          TSOA 2           0

used time: 0.714(ms). Execute id is 505.
SQL> 
SQL> select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA';

LINEID     TABLESPACE_NAME FILE_NAME                     SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ----------------------------- ------- -------------------- --------------
1          TSOA            /dm8/dmdbms/data/DAMENG/tsoa01.dbf 32      4096                 YES
2          TSOA            /dm8/dmdbms/data/DAMENG/tsoa02.dbf 32      4096                 YES

used time: 14.854(ms). Execute id is 507.
SQL>  

重命名表空间

alter tablespace tsoa to tsoa2;
无论表空间是否有数据,表空间都可以重新命名
SQL> create table  t01 (id int) storage(on TSOA);
executed successfully
used time: 5.752(ms). Execute id is 511.
SQL> 
SQL> insert into t01 values(100);
affect rows 1

used time: 0.891(ms). Execute id is 516.
SQL> commit;
executed successfully
used time: 1.303(ms). Execute id is 517.
SQL> 
SQL> 
SQL> select OWNER,TABLE_NAME,TABLESPACE_NAME,PARTITIONED from dba_tables  where TABLE_NAME='T01';

LINEID     OWNER  TABLE_NAME TABLESPACE_NAME PARTITIONED
---------- ------ ---------- --------------- -----------
1          SYSDBA T01        TSOA            NO

used time: 74.828(ms). Execute id is 513.
SQL> 
SQL> 
SQL>
SQL> alter tablespace tsoa rename to tsoa2;
executed successfully
used time: 5.753(ms). Execute id is 514.
SQL> select OWNER,TABLE_NAME,TABLESPACE_NAME,PARTITIONED from dba_tables  where TABLE_NAME='T01';

LINEID     OWNER  TABLE_NAME TABLESPACE_NAME PARTITIONED
---------- ------ ---------- --------------- -----------
1          SYSDBA T01        TSOA2           NO

used time: 6.234(ms). Execute id is 515.
SQL> 

创建表和插入数据到表空间

SQL> create table  t01 (id int) storage(on TSOA);
executed successfully
used time: 5.752(ms). Execute id is 511.
SQL> 
SQL> insert into t01 values(100);
affect rows 1

used time: 0.891(ms). Execute id is 516.
SQL> commit;
executed successfully
used time: 1.303(ms). Execute id is 517.
SQL> 
SQL> 
SQL> select OWNER,TABLE_NAME,TABLESPACE_NAME,PARTITIONED from dba_tables  where TABLE_NAME='T01';

LINEID     OWNER  TABLE_NAME TABLESPACE_NAME PARTITIONED
---------- ------ ---------- --------------- -----------
1          SYSDBA T01        TSOA            NO

used time: 74.828(ms). Execute id is 513.
SQL> 
SQL> 

删除表空间

能被删除的表空间,必须没有任何数据;

SQL> drop  TABLESPACE tsoa2;
drop  TABLESPACE tsoa2;
[-3412]:Try to drop used tablespace.
used time: 4.599(ms). Execute id is 0.
SQL> select * from t01;

LINEID     ID         
---------- -----------
1          100

used time: 0.466(ms). Execute id is 539.
SQL> 
SQL> drop table t01;
executed successfully
used time: 18.854(ms). Execute id is 540.
SQL> 
SQL>  drop  TABLESPACE tsoa2;
executed successfully
used time: 101.793(ms). Execute id is 541.
SQL>  select * from t01;
 select * from t01;
[-2106]:Error in line: 1
Invalid table or view name [T01].
used time: 0.568(ms). Execute id is 0.
SQL> 

添加数据文件

SQL> alter tablespace tsoa2  add DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa03.dbf' SIZE 32;
executed successfully
used time: 9.120(ms). Execute id is 520.
SQL>  select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA2';

LINEID     TABLESPACE_NAME FILE_NAME                     SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ----------------------------- ------- -------------------- --------------
1          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa01.dbf 32      4096                 YES
2          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa03.dbf 32      4096                 YES
3          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa02.dbf 32      4096                 YES

used time: 2.152(ms). Execute id is 521.
SQL> 

扩展数据文件

数据文件可以变大,达梦数据库无法通过resize或者drop datafile来缩小表空间,只能通过迁移,导入导出来实现。
SQL>  ALTER TABLESPACE tsoa2  RESIZE DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa03.dbf' TO 64;
executed successfully
used time: 4.897(ms). Execute id is 524.
SQL> select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA2';

LINEID     TABLESPACE_NAME FILE_NAME                     SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ----------------------------- ------- -------------------- --------------
1          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa01.dbf 32      4096                 YES
2          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa03.dbf 64      8192                 YES
3          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa02.dbf 32      4096                 YES

used time: 2.181(ms). Execute id is 525.
SQL>  ALTER TABLESPACE tsoa2  RESIZE DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa03.dbf' TO 32;
 ALTER TABLESPACE tsoa2  RESIZE DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa03.dbf' TO 32;
[-2410]:Data file [/dm8/dmdbms/data/DAMENG/tsoa03.dbf] size is invalid.
used time: 3.145(ms). Execute id is 0.
SQL> 

重命名数据文件

SQL> select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA2';

LINEID     TABLESPACE_NAME FILE_NAME                     SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ----------------------------- ------- -------------------- --------------
1          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa01.dbf 32      4096                 YES
2          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa03.dbf 64      8192                 YES
3          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa02.dbf 32      4096                 YES

used time: 1.386(ms). Execute id is 532.
SQL> 
SQL>  ALTER TABLESPACE tsoa2 offline;
executed successfully
used time: 95.018(ms). Execute id is 527.
SQL> 
SQL> select * from t01;
select * from t01;
[-3408]:tablespace [TSOA2] is offline.
used time: 0.823(ms). Execute id is 0.
SQL> 
SQL> 
SQL> ALTER TABLESPACE tsoa2 rename DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa03.dbf' to '/dm8/dmdbms/data/DAMENG/tsoa04.dbf';
executed successfully
used time: 255.943(ms). Execute id is 529.
SQL>  ALTER TABLESPACE tsoa2 online;
executed successfully
used time: 5.693(ms). Execute id is 530.
SQL> select * from t01;

LINEID     ID         
---------- -----------
1          100

used time: 0.746(ms). Execute id is 531.
SQL> select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA2';

LINEID     TABLESPACE_NAME FILE_NAME                     SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ----------------------------- ------- -------------------- --------------
1          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa01.dbf 32      4096                 YES
2          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa04.dbf 64      8192                 YES
3          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa02.dbf 32      4096                 YES

used time: 1.386(ms). Execute id is 532.
SQL> 

更换数据文件路径


SQL> select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA2';

LINEID     TABLESPACE_NAME FILE_NAME                     SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ----------------------------- ------- -------------------- --------------
1          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa01.dbf 32      4096                 YES
2          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa04.dbf 64      8192                 YES
3          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa02.dbf 32      4096                 YES

used time: 1.386(ms). Execute id is 532.
SQL> 

SQL>  ALTER TABLESPACE tsoa2 offline;
executed successfully
used time: 91.852(ms). Execute id is 533.
SQL> 
SQL>  ALTER TABLESPACE tsoa2 rename DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa04.dbf'to '/dm8/dmdbms/DAMENG/tsoa05.dbf';
executed successfully
used time: 87.344(ms). Execute id is 534.
SQL> select TABLESPACE_NAME,FILE_NAME,round(BYTES/1024/1024) size_MB,BLOCKS,AUTOEXTENSIBLE from dba_data_files where TABLESPACE_NAME='TSOA2';

LINEID     TABLESPACE_NAME FILE_NAME                          SIZE_MB BLOCKS               AUTOEXTENSIBLE
---------- --------------- ---------------------------------- ------- -------------------- --------------
1          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa01.dbf      32      4096                 YES
2          TSOA2           /dm8/dmdbms/DAMENG/tsoa05.dbf 64      8192                 YES
3          TSOA2           /dm8/dmdbms/data/DAMENG/tsoa02.dbf      32      4096                 YES

used time: 29.460(ms). Execute id is 535.
SQL> ALTER TABLESPACE tsoa2 online;
executed successfully
used time: 9.299(ms). Execute id is 536.
SQL> select * from t01;

LINEID     ID         
---------- -----------
1          100

used time: 0.563(ms). Execute id is 537.
SQL> 

删除数据文件

达梦数据库无法通过resize或者drop datafile来缩小表空间,只能通过迁移,导入导出来实现。
SQL> 

SQL> 
SQL> ALTER TABLESPACE tsoa2 drop DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa01.dbf';
ALTER TABLESPACE tsoa2 drop DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa01.dbf';

ALTER TABLESPACE tsoa2 drop DATAFILE '/dm8/dmdbms/data/DAMENG/tsoa01.dbf';
                                              *                      
line 1, column 47, nearby [drop] has error[-2007]:
Syntax error.
used time: 0.216(ms). Execute id is 0.
SQL> 

达梦在线服务平台:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值