环境:centos 6, 数据库版本 DM8
在达梦数据库安装好后,运维层面首先面临的就是数据文件的管理,创建表空间和用户,以及维护。对于达梦小白来说,以下操作是需要熟知的:
1.查看当前数据库的数据文件和表空间情况
SQL> select file_name,file_id,tablespace_name,status,bytes/1024/1024 MB
2 from dba_data_files
3 order by tablespace_name,file_id;
LINEID FILE_NAME FILE_ID TABLESPACE_NAME STATUS MB
---------- ------------------------------------ ----------- --------------- --------- --------------------
1 /u01/dmdbms/data/DAMORG/BOOKSHOP.DBF 0 BOOKSHOP AVAILABLE 150
2 /u01/dmdbms/data/DAMORG/DMHR.DBF 0 DMHR AVAILABLE 128
3 /u01/dmdbms/data/DAMORG/MAIN.DBF 0 MAIN AVAILABLE 128
4 /u01/dmdbms/data/DAMORG/ROLL.DBF 0 ROLL AVAILABLE 128
5 /u01/dmdbms/data/DAMORG/SYSAWR.DBF 0 SYSAUX AVAILABLE 128
6 /u01/dmdbms/data/DAMORG/SYSTEM.DBF 0 SYSTEM AVAILABLE 24
7 /u01/dmdbms/data/DAMORG/TEMP.DBF 0 TEMP AVAILABLE 10
7 rows got
used time: 9.784(ms). Execute id is 7.
2.创建一个用户表空间,但是达梦数据库有个限制,比如我们想创建一个31M的表空间,会怎样呢?
SQL> create tablespace test_tbs datafile '/u01/dmdbms/data/DAMORG/TEST_TBS.DBF' size 31;
create tablespace test_tbs datafile '/u01/dmdbms/data/DAMORG/TEST_TBS.DBF' size 31;
[-2410]:Error in line: 1
Data file [/u01/dmdbms/data/DAMORG/TEST_TBS.DBF] size is invalid.
可以看到有报错,原来达梦数据库要求表空间的最小大小为页大小的4096倍,那么根据我本地的环境检查:
SQL> select page
2 ;
LINEID PAGE
---------- -----------
1 8192
那么也就是说,表空间最小也要有4096*8/1024 ,也就是32MB,那我们实现一下:
SQL> create tablespace test_tbs datafile '/u01/dmdbms/data/DAMORG/TEST_TBS.DBF' size 32 autoextend on next 2 maxsize 300,'/u01/dmdbms/data/DAMORG/TEST_TBS_2.DBF' size 32 autoextend on next 2 maxsize 300;
executed successfully
used time: 241.076(ms). Execute id is 11.
SQL> select sf_get_extent_size;
LINEID SF_GET_EXTENT_SIZE
---------- ------------------
1 16
used time: 0.612(ms). Execute id is 12.
SQL> select 16*8;
LINEID 16*8
---------- -----------
1 128
used time: 0.461(ms). Execute id is 13.
上面表空间添加了两个32M数据库文件,单词簇的扩展为2M,最大文件限制为300mb. 同时,贴出了默认的簇扩展单位为16个页的大小,换算为16*8kb=128kb,可以看到默认是比较小的。故而,针对大量的数据更新的表空间,建议修改较大的簇扩展单位,否则会造成性能问题。
3.有了表空间,那么创建测试用户。
SQL> create user dm_test identified by dmabctest123;
executed successfully
used time: 25.712(ms). Execute id is 14.
SQL> alter user dm_test identified by "dmtest123" default tablespace test_tbs;
executed successfully
used time: 19.666(ms). Execute id is 16.
SQL> grant create table to dm_test;
executed successfully
used time: 8.990(ms). Execute id is 17.
SQL> grant select on dmhr.city to dm_test;
executed successfully
used time: 10.241(ms). Execute id is 18.
SQL> conn dm_test/dmtest123
Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 3.326(ms)
SQL> create table m