达梦数据库DM8之表空间创建和修改

1. 创建表空间
create tablespace TBS_DATA datafile '/dm8/dmdbms/data/dm02/TBS_DATA_01.DBF' size 128 autoextend on next 4 maxsize 1024;

create tablespace TBS_DATA1 datafile 'TBS_DATA1_01.DBF' size 128 autoextend on next 4 maxsize 1024;
说明:创建表空间时可以指明datafile完整路径,也可以只写数据文件名称(会默认创建在SYSTEM_PATH路劲下),size默认单位是MB(可以只写数字大小,不带MB),数据文件默认自动扩展,MAXSIZE默认扩展的最大值63TB,故建议在生产环境中创建表空间时限制每个数据文件的最大值,防止单个数据文件过大。

SQL> select tablespace_name,file_name from dba_data_files;
行号     TABLESPACE_NAME FILE_NAME                             
---------- --------------- --------------------------------------
1          SYSTEM          /dm8/dmdbms/data/dm02/SYSTEM.DBF
2          TBS_DATA1       /dm8/dmdbms/data/dm02/TBS_DATA1_01.DBF
3          TBS_DATA        /dm8/dmdbms/data/dm02/TBS_DATA_01.DBF
4          MAIN            /dm8/dmdbms/data/dm02/MAIN.DBF
5          TEMP            /dm8/dmdbms/data/dm02/TEMP.DBF
6          ROLL            /dm8/dmdbms/data/dm02/ROLL.DBF
6 rows got
已用时间: 5.369(毫秒). 执行号:1102.

2. 表空间添加数据文件
alter tablespace TBS_DATA add datafile  '/dm8/dmdbms/data/dm02/TBS_DATA_02.DBF' size 128;
alter tablespace TBS_DATA add datafile  '/dm8/dmdbms/data/dm02/TBS_DATA_03.DBF' size 128 autoextend on next 4 maxsize 1024;

SQL> select tablespace_name,file_name,autoextensible from dba_data_files;
行号     TABLESPACE_NAME FILE_NAME                              AUTOEXTENSIBLE
---------- --------------- -------------------------------------- --------------
1          SYSTEM          /dm8/dmdbms/data/dm02/SYSTEM.DBF       YES
2          TBS_DATA1       /dm8/dmdbms/data/dm02/TBS_DATA1_01.DBF YES
3          TBS_DATA        /dm8/dmdbms/data/dm02/TBS_DATA_03.DBF  YES
4          TBS_DATA        /dm8/dmdbms/data/dm02/TBS_DATA_02.DBF  YES
5          TBS_DATA        /dm8/dmdbms/data/dm02/TBS_DATA_01.DBF  YES
6          MAIN            /dm8/dmdbms/data/dm02/MAIN.DBF         YES
7          TEMP            /dm8/dmdbms/data/dm02/TEMP.DBF         YES
8          ROLL            /dm8/dmdbms/data/dm02/ROLL.DBF         YES
8 rows got
已用时间: 1.456(毫秒). 执行号:1105.

3. 删除表空间
删除表空间只能删除没有使用过的表空间。
drop tablespace [tablespace_name];

SQL> create table ww_text tablespace TBS_DATA1 as select * from dba_users;
SQL> drop tablespace TBS_DATA1;
drop tablespace TBS_DATA1;
[-3412]:试图删除已经使用的表空间.
已用时间: 9.202(毫秒). 执行号:0.
SQL> drop table ww_text;
操作已执行
已用时间: 34.421(毫秒). 执行号:1107.
SQL> drop tablespace TBS_DATA1;
操作已执行
已用时间: 96.967(毫秒). 执行号:1108.
SQL> 

4. 修改表空间名称
alter tablespace [table_name]  rename to [table_new_name];   --可在线修改

SQL> alter tablespace TBS_DATA  rename to TBS_DATA_N;
操作已执行
已用时间: 3.217(毫秒). 执行号:1109.

5. 修改表空间状态
1)离线表空间
SQL> alter tablespace TBS_DATA_N OFFLINE;
2)上线表空间
SQL> alter tablespace TBS_DATA_N online;
3) 检查表空间状态   -- 0 正常,1 离线
SQL> select status$ from v$tablespace where name='TBS_DATA_N';

6. 扩展数据文件大小
ALTER TABLESPACE TBS_DATA_N RESIZE DATAFILE '/dm8/dmdbms/data/dm02/TBS_DATA_02.DBF' TO 130;

7. 数据文件扩展属性修改
ALTER TABLESPACE TBS_DATA_N DATAFILE '/dm8/dmdbms/data/dm02/TBS_DATA_02.DBF' AUTOEXTEND OFF;  --关闭自动扩展
ALTER TABLESPACE TBS_DATA_N DATAFILE '/dm8/dmdbms/data/dm02/TBS_DATA_02.DBF' AUTOEXTEND ON;   --启动自动扩展

8.修改数据文件的路径
可以修改用户表空间中已存在数据文件的路径,待修改的数据文件所在表空间必须处于脱机状态并且只可修改用户创建的表空间中文件的路径
alter tablespace TBS_DATA_N offline;
alter tablespace TBS_DATA_N rename datafile '/dm8/dmdbms/data/dm02/TBS_DATA_02.DBF' to '/dm8/dmdbms/data/dm02/datafile/TBS_DATA_02.DBF';
alter tablespace TBS_DATA_N online;
SQL> select tablespace_name,file_name from dba_data_files;
行号     TABLESPACE_NAME FILE_NAME                                     
---------- --------------- ----------------------------------------------
1          SYSTEM          /dm8/dmdbms/data/dm02/SYSTEM.DBF
2          TBS_DATA_N      /dm8/dmdbms/data/dm02/TBS_DATA_03.DBF
3          TBS_DATA_N      /dm8/dmdbms/data/dm02/datafile/TBS_DATA_02.DBF
4          TBS_DATA_N      /dm8/dmdbms/data/dm02/TBS_DATA_01.DBF
5          MAIN            /dm8/dmdbms/data/dm02/MAIN.DBF
6          TEMP            /dm8/dmdbms/data/dm02/TEMP.DBF
7          ROLL            /dm8/dmdbms/data/dm02/ROLL.DBF
7 rows got
已用时间: 1.486(毫秒). 执行号:1119.
SQL> 

9. 表空间的备份
SQL> backup tablespace TBS_DATA_N backupset 'tablespace_TBS_DATA_N_bak_01';

达梦数据库社区地址:https://eco.dameng.com/

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐