达梦表空间管理
1,通过CRT连接到数据库服务器上,查询到达梦数据库
[dmdba@yunwei ~]$ ps -ef|grep dmserver
dmdba 2427 1 0 19:36 ? 00:00:01 /dm7/db/bin/dmserver /dm7/data/TEST/dm.ini -noconsole
dmdba 3371 3345 0 19:45 pts/1 00:00:00 grep dmserver
2,查询达梦数据占用的端口,这里查询出来的端口是5237,默认是5236端口
[dmdba@yunwei ~]$netstat -nap | grep 2427
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::5237 :::* LISTEN 2427/dmserver
3,连接达梦数据库
[dmdba@yunwei ~]$ disql sysdba/SYSDBA@127.0.0.1:5237
服务器[127.0.0.1:5237]:处于普通打开状态
登录使用时间: 4.291(毫秒)
disql V7.6.0.96-Build(2018.09.19-97292)ENT
Connected to: DM 7.1.6.96
SQL> select tablespace_name from dba_tablespaces;
行号 TABLESPACE_NAME
---------- ---------------
1 SYSTEM
2 ROLL
3 TEMP
4 MAIN
5 TBS
6 HMAIN
// SYSTEM:数据字典和全局的系统数据
// ROLL:回滚表空间,存放回滚数据,MVCC(事务多版本)
// TEMP:临时表空间,存放临时数据
// MAIN: main表空间,如果用户创建数据对象不指定存储位置,默认放到main
// HMAIN:Hmain表空间,存放的是huge table 的信息
// TBS: 之前建立的表空间
已用时间: 36.312(毫秒). 执行号:3
1,创建一个表空间
SQL> create tablespace tbs2 datafile '/dm7/data/TEST/TBS2.dbf' size 31;
create tablespace tbs2 datafile '/dm7/data/TEST/TBS2.dbf' size 31;
第1 行附近出现错误[-2410]:数据文件[/dm7/data/TEST/TBS2.dbf]大小无效.
已用时间: 0.646(毫秒). 执行号:0.
//报错原因:表空间大小必须是page的4096倍
//最小的表空间查询
SQL> select page*4096/1024/1024;
行号 PAGE*4096/1024/1024
---------- -------------------
1 32
已用时间: 1.182(毫秒). 执行号:4.
//添加320M的表空间大小计算
SQL> select page*4096/1024/1024*10;
行号 PAGE*4096/1024/1024*10
---------- ----------------------
1 320
已用时间: 0.321(毫秒). 执行号:5.
添加表空间
//单位是M,添加32M表空间
SQL> create tablespace tbs2 datafile '/dm7/data/TEST/TBS2.dbf' size 32;
操作已执行
已用时间: 27.992(毫秒). 执行号:6.
2,创建一个表空间tbs3,要求2个数据文件,分别存放到不同的disk上,初始大小为32M,单个文件大100M
SQL> create tablespace tbs3 datafile '/dm7/data/TEST/disk1/TBS3_1.dbf' size 32 autoextend on maxsize 100,'/dm7/data/TEST/disk2/TBS3_2.dbf' size 32 autoextend on maxsize 100;
操作已执行
已用时间: 20.307(毫秒). 执行号:7.
3,表空间tbs4,初始文件大小32M,每次扩展1M,最大33M
SQL> create tablespace tbs4 datafile '/dm7/data/TEST/tbs4.dbf' size 32 autoextend on next 1 maxsize 33;
操作已执行
1,当表空间不足时,添加数据文件
SQL> alter tablespace tbs add datafile '/dm7/data/TEST/tbs_02.dbf' size 50 autoextend on maxsize 100;
操作已执行
//查询tbs表空间的数据文件
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS';
行号 TABLESPACE_NAME FILE_NAME
---------- --------------- -------------------------
1 TBS /dm7/data/TEST/TBS.dbf
2 TBS /dm7/data/TEST/tbs_02.dbf
2,表空间更换存储位置
先查询表空间状态,0-online;1-offline,更换存储位置要先把表空间offline
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces;
行号 TABLESPACE_NAME STATUS
---------- --------------- -----------
1 SYSTEM 0
2 ROLL 0
3 TEMP 0
4 MAIN 0
5 TBS 0
6 TBS2 0
7 TBS3 0
8 TBS4 0
9 HMAIN NULL
更改tbs2的存储位置
//查询tbs2数据文件
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS2';
行号 TABLESPACE_NAME FILE_NAME
---------- --------------- -----------------------
1 TBS2 /dm7/data/TEST/TBS2.dbf
//表空间offline
SQL> alter tablespace tbs2 offline;
操作已执行
已用时间: 97.127(毫秒). 执行号:15.
SQL> alter tablespace tbs2 rename datafile '/dm7/data/TEST/TBS2.dbf' to '/dm7/data/TBS2.dbf';
操作已执行
已用时间: 321.348(毫秒). 执行号:16.
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS2';
行号 TABLESPACE_NAME FILE_NAME
---------- --------------- ------------------
1 TBS2 /dm7/data/TBS2.dbf
//online
SQL> alter tablespace tbs2 online;
操作已执行
3,删除表空间—表空间有数据不允许删除
SQL> drop tablespace tbs4;
操作已执行