
表空间管理
[root@cjc-db-01 ~]# xhost +access control disabled, clients can connect from any host[root@cjc-db-01 ~]# echo $DISPLAYlocalhost:11.0
图形界面管理表空间
打开manager工具


新增表空间
数据文件大小,必须>=32MB

查看创建语句

通过命令查看表空间名称
[dmdba@cjc-db-01 ~]$ disql sysdba/Dameng123Server[LOCALHOST:5236]:mode is normal, state is openlogin used time : 10.398(ms)disql V8
SQL> select tablespace_name from dba_tablespaces;LINEID TABLESPACE_NAME---------- ---------------1 SYSTEM2 ROLL3 TEMP4 MAIN5 BOOKSHOP6 DMHR7 CJC8 HMAIN8 rows got
创建表,不指定表空间
SQL> create table t1(id int);executed successfullyused time: 253.312(ms). Execute id is 602.
创建表指定表空间
SQL> create table t2(id int) tablespace CJC;executed successfullyused time: 2.205(ms). Execute id is 603.
不指定表空间,默认存放在MAIN表空间下,类似Oracle的USERS表空间。
SQL> select tablespace_name,table_name from dba_tables where owner='SYSDBA';LINEID TABLESPACE_NAME TABLE_NAME---------- --------------- ------------------1 TEMP ##PLAN_TABLE2 TEMP ##HISTOGRAMS_TABLE3 MAIN T14 CJC T2used time: 242.219(ms). Execute id is 604.
命令创建表空间
SQL> select file_name from dba_data_files;LINEID FILE_NAME---------- -----------------------------1 dm8/data/DAMENG/SYSTEM.DBF2 /dm8/data/DAMENG/CJC.dbf3 /dm8/data/DAMENG/DMHR.DBF4 /dm8/data/DAMENG/BOOKSHOP.DBF5 /dm8/data/DAMENG/MAIN.DBF6 /dm8/data/DAMENG/TEMP.DBF7 /dm8/data/DAMENG/ROLL.DBF7 rows got
数据文件大小数值型,不能写单位。
SQL> create tablespace chen datafile '/dm8/data/DAMENG/chen.dbf' size 10M;create tablespace chen datafile '/dm8/data/DAMENG/chen.dbf' size 10M;create tablespace chen datafile '/dm8/data/DAMENG/chen.dbf' size 10M;*line 1, column 67, nearby [M] has error[-2007]:Syntax error.used time: 0.529(ms). Execute id is 0.
数据文件大小不能小于32M
SQL> create tablespace chen datafile '/dm8/data/DAMENG/chen.dbf' size 10;create tablespace chen datafile '/dm8/data/DAMENG/chen.dbf' size 10;[-2410]:Error in line: 1Data file [/dm8/data/DAMENG/chen.dbf] size is invalid.used time: 0.504(ms). Execute id is 0.
创建成功,大小单位MB,这块和Oracle不同,Oracle支持MB、GB等单位。
SQL> create tablespace chen datafile '/dm8/data/DAMENG/chen.dbf' size 32;executed successfullyused time: 30.891(ms). Execute id is 607.
查看物理文件
[root@cjc-db-01 ~]# ll -rth /dm8/data/DAMENG/chen.dbf-rw-r--r-- 1 dmdba dinstall 32M Sep 17 23:10 /dm8/data/DAMENG/chen.dbf
查看数据文件信息
新增表空间或数据文件时,不指定自动扩展属性时默认开启自动扩容,最大可扩展为16TB。
和Oracle不同,Oracle默认不开启自动扩展,数据块大小8KB时,单个数据文件自动扩展最大值32GB。
SQL> select tablespace_name,file_name,bytes,AUTOEXTENSIBLE,MAXBYTES from dba_data_files;LINEID TABLESPACE_NAME FILE_NAME BYTES AUTOEXTENSIBLE MAXBYTES---------- --------------- ----------------------------- -------------------- -------------- --------------1 SYSTEM /dm8/data/DAMENG/SYSTEM.DBF 24117248 YES 175921849958402 CHEN /dm8/data/DAMENG/chen.dbf 33554432 YES 175921849958403 CJC /dm8/data/DAMENG/CJC.dbf 104857600 YES 175921849958404 DMHR /dm8/data/DAMENG/DMHR.DBF 134217728 YES 175921849958405 BOOKSHOP /dm8/data/DAMENG/BOOKSHOP.DBF 157286400 YES 175921849958406 MAIN /dm8/data/DAMENG/MAIN.DBF 134217728 YES 175921849958407 TEMP /dm8/data/DAMENG/TEMP.DBF 10485760 YES 175921849958408 ROLL /dm8/data/DAMENG/ROLL.DBF 134217728 YES 175921849958408 rows got
新增数据文件
大小也不能指定单位
SQL> alter tablespace cjc add datafile '/dm8/data/DAMENG/cjc01.dbf' size 32;executed successfullyused time: 120.055(ms). Execute id is 612.
查看数据文件
SQL> select tablespace_name,file_name,bytes,AUTOEXTENSIBLE,MAXBYTES from dba_data_files where tablespace_name='CJC';LINEID TABLESPACE_NAME FILE_NAME BYTES AUTOEXTENSIBLE MAXBYTES---------- --------------- -------------------------- -------------------- -------------- --------------1 CJC /dm8/data/DAMENG/CJC.dbf 104857600 YES 175921849958402 CJC /dm8/data/DAMENG/cjc01.dbf 33554432 YES 17592184995840used time: 6.713(ms). Execute id is 613.
表空间删除
SQL> drop tablespace chen;executed successfullyused time: 152.603(ms). Execute id is 611.
物理文件也一块删除了,并且删除时不会检查表空间下是否有数据,直接进行删除。
[root@cjc-db-01 ~]# ll -rth /dm8/data/DAMENG/chen.dbfls: cannot access /dm8/data/DAMENG/chen.dbf: No such file or directory
注意:
数据文件的物理文件也自动删除了,这块和Oracle不同,Oracle语法更灵活。
Oracle数据库删除表空间部分命令如下:
1.删除空的表空间,但是不包含物理文件drop tablespace tablespace_name;2.删除非空表空间,但是不包含物理文件drop tablespace tablespace_name including contents;3.删除空表空间,包含物理文件drop tablespace tablespace_name including datafiles;4.删除非空表空间,包含物理文件drop tablespace tablespace_name including contents and datafiles;5.如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTSdrop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
数据文件移动
DM:
SQL> alter tablespace cjc offline;executed successfullyused time: 148.983(ms). Execute id is 614.SQL> alter tablespace cjc rename datafile '/dm8/data/DAMENG/cjc01.dbf' to '/dm8/cjc01.dbf';executed successfullyused time: 344.095(ms). Execute id is 615.SQL> alter tablespace cjc online;executed successfullyused time: 5.031(ms). Execute id is 616.
检查数据文件
SQL> select tablespace_name,file_name,bytes,AUTOEXTENSIBLE,MAXBYTES from dba_data_files where tablespace_name='CJC';LINEID TABLESPACE_NAME FILE_NAME BYTES AUTOEXTENSIBLE MAXBYTES---------- --------------- ------------------------ -------------------- -------------- --------------1 CJC /dm8/data/DAMENG/CJC.dbf 104857600 YES 175921849958402 CJC /dm8/cjc01.dbf 33554432 YES 17592184995840used time: 5.854(ms). Execute id is 617.
对应日志:
并没有数据文件移动的日志,只有在表空间offline和online时控制文件自动备份的日志,数据文件调整不配有日志吗?
[dmdba@cjc-db-01 log]$ tail -10f dm_DMSERVER_202209.log2022-09-17 23:55:34.193 [INFO] database P0000007134 T0000000000000017494 backup control file /dm8/data/DAMENG/dm.ctl to file /dm8/data/DAMENG/dm_20220917235534_193513.ctl2022-09-17 23:55:34.207 [INFO] database P0000007134 T0000000000000017494 backup control file /dm8/data/DAMENG/dm.ctl to file /dm8/data/DAMENG/ctl_bak/dm_20220917235534_195045.ctl succeed2022-09-17 23:55:46.563 [INFO] database P0000007134 T0000000000000017494 backup control file /dm8/data/DAMENG/dm.ctl to file /dm8/data/DAMENG/dm_20220917235546_563538.ctl2022-09-17 23:55:46.565 [INFO] database P0000007134 T0000000000000017494 backup control file /dm8/data/DAMENG/dm.ctl to file /dm8/data/DAMENG/ctl_bak/dm_20220917235546_565264.ctl succeed
Oracle数据文件移动对比:
12C以前
alter tablespace cjctbs offline;RMAN> copy datafile '/home/oracle/cjctbs03.dbf' to '/u01/app/oracle11/oradata/chendb/cjctbs03.dbf';alter database rename file '/home/oracle/cjctbs03.dbf' to '/u01/app/oracle11/oradata/chendb/cjctbs03.dbf';alter tablespace cjctbs online;
12C开始,可以在线移动
简化了修改数据文件路径的方法,可以在线执行,减少了修改路径过程中造成的数据不可用问题。
ALTER DATABASE MOVE DATAFILE '/home/oracle/cjctbs06.dbf' TO '/u01/app/oracle11/oradata/chendb/cjctbs06.dbf';
LOGFILE管理
命令查看日志文件信息
注意:和Oracle不同,是查询v$rlogfile,不是v$logfile。
SQL> select group_id,file_id,path,rlog_size from v$rlogfile;LINEID GROUP_ID FILE_ID PATH RLOG_SIZE---------- ----------- ----------- ----------------------------- --------------------1 2 0 /dm8/data/DAMENG/DAMENG01.log 2684354562 2 1 /dm8/data/DAMENG/DAMENG02.log 268435456
console查看logfile信息
[dmdba@cjc-db-01 ~]$ console

查看redo参数信息

monitor查看redo file信息
[dmdba@cjc-db-01 ~]$ monitor


LOGFILE调整
resize调整
由256M调整到100M,提示值无效,实际是值过小,调整失败。
SQL> alter database resize logfile 'DAMENG01.log' to 100;alter database resize logfile 'DAMENG01.log' to 100;[-2410]:Data file [/dm8/data/DAMENG/DAMENG01.log] size is invalid.used time: 114.220(ms). Execute id is 0.
由256M调整都300M成功
SQL> alter database resize logfile 'DAMENG01.log' to 300;executed successfullyused time: 2.142(ms). Execute id is 630.
尝试resize调小,失败,难道resize只能调大,不能调小?
SQL> alter database resize logfile 'DAMENG01.log' to 290;alter database resize logfile 'DAMENG01.log' to 290;[-2410]:Data file [/dm8/data/DAMENG/DAMENG01.log] size is invalid.used time: 2.037(ms). Execute id is 0.
查看redo信息
SQL> select group_id,file_id,path,rlog_size from v$rlogfile;LINEID GROUP_ID FILE_ID PATH RLOG_SIZE---------- ----------- ----------- ----------------------------- --------------------1 2 0 /dm8/data/DAMENG/DAMENG01.log 3145728002 2 1 /dm8/data/DAMENG/DAMENG02.log 314572800used time: 0.341(ms). Execute id is 633.
既然不能通过resize方式调小logfile,能否通过新增,删除的方式调整呢?
尝试删除,语法不对
SQL> alter database drop logfile '/dm8/data/DAMENG/DAMENG04.log';alter database drop logfile '/dm8/data/DAMENG/DAMENG04.log';alter database drop logfile '/dm8/data/DAMENG/DAMENG04.log';*line 1, column 15, nearby [drop] has error[-2007]:Syntax error.used time: 0.259(ms). Execute id is 0.
继续尝试删除,语法还是不对
SQL> alter database delete logfile '/dm8/data/DAMENG/DAMENG04.log';alter database delete logfile '/dm8/data/DAMENG/DAMENG04.log';alter database delete logfile '/dm8/data/DAMENG/DAMENG04.log';*line 1, column 22, nearby [logfile] has error[-2007]:Syntax error.used time: 0.280(ms). Execute id is 0.
查看官方文档
https://eco.dameng.com/document/dm/zh-cn/pm/definition-statement.html


可以看到没有删除logfile的命令,这不是基本需求吗?
之前一直觉得Oracle调整logfile很麻烦,需要先新增,后删除,删除时还需要检查logfile状态,不能是当前日志文件,状态也不能是活跃的,需要执行多次手动切换、手动生成检查点操作才能完成logfile的调整。
看到DM调整logfile可以直接resize,简化了很多步骤,但是居然连一些基本功能都没有?
新增redo log file
SQL> alter database add logfile '/dm8/data/DAMENG/DAMENG03.log' size 10;alter database add logfile '/dm8/data/DAMENG/DAMENG03.log' size 10;[-2410]:Error in line: 1Data file [/dm8/data/DAMENG/DAMENG03.log] size is invalid.used time: 0.382(ms). Execute id is 0.
报错信息也是魔幻,不能小于多大你到是显示出来呀?
SQL> alter database add logfile '/dm8/data/DAMENG/DAMENG03.log' size 350;executed successfullyused time: 74.590(ms). Execute id is 634.





