创建表空间

表空间管理操作需要DM服务器处于打开状态

创建表空间:指定表空间名和其拥有的数据文件列表。

SQL> CREATE TABLESPACE BOOKSHOP DATAFILE ‘/opt/bookshop1.dbf’ size 128,’/opt/bookshop2.dbf’ size 128;

理论上最多允许65535个表空间,但用户允许创建的表空间ID取值范围为0~32767,超过32767的只允许系统使用,ID由系统自动分配,ID不能重复使用,即使删除掉已有表空间,也无法重复使用已用ID号,也就是说只要创建32768次表空间后,用户将无法再创建表空间。

表空间通过数据文件来扩展,表空间的大小等于构成该表空间的所有数据文件的大小之和。所以要扩展表空间可以通过添加新的数据文件或者扩展表空间中已有的数据文件完成。

删除表空间只能删除未使用过的表空间,删除表空间时会删除其拥有的所有数据文件。

SQL> drop tablespace bookshop;

修改表空间名

SQL> alter tablespace bookshop rename to books;

修改表空间状态

用户表空间有联机和脱机两种状态。系统表空间、回滚表空间、重做日志表空间和临时文件表空间不允许脱机。设置表空间状态为脱机状态时,如果该表空间有未提交的事务,则脱机失败报错。脱机后可对表空间的数据进行备份。

SQL> alter tablespace books offline;

SQL> alter tablespace books online;

在MPP环境下,如果节点间的表空间不一致,EP01为ONLINE状态,EP02为OFFLINE状态,用户以LOCAL方式登录实例,并执行SP_SET_SESSION_LOCAL_TYPE(1),使得该会话可以执行DDL操作,再执行ONLINE或者OFFLINE即可。

修改表空间数据缓冲区

用户表空间可以切换使用的数据缓冲区,系统表空间、回滚表空间、重做日志表空间和临时文件表空间不允许修改数据缓冲区。可以使用的数据缓冲区有NORMAL和KEEP。表空间修改成功后,并不会立即生效,而是需要重启服务器生效。缓冲池名KEEP是达梦的保留关键字,使用时必须加双引号。将bookshop表空间绑定到KEEP缓冲区

SQL> ALTER TABLESPACE BOOKS CACHE=“KEEP”;

查询表空间和数据文件对应关系

通过查询动态视图V达梦 建表同时建索引 达梦数据库建表_SQLDATAFILE得到系统中所有数据文件的信息,

将两个动态视图以表空间ID为连接条件,可以查询得到表空间上对应的数据文件

SQL> select ts.NAME,df.PATH from V达梦 建表同时建索引 达梦数据库建表_数据库_02DATAFILE AS df WHERE ts.ID=df.GROUP_ID;

达梦 建表同时建索引 达梦数据库建表_表空间_03