欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

达梦数据库表空间

程序员文章站 2024-03-21 09:55:34
...

创建表空间:

规划磁盘表空间数据库文件的存放位置,数据文件大小。 DM 要求数据文件的大小要大于页大小的 4096 倍,小于页大小的 2(31 次方)-1 倍

默认创建表空间,缓冲区类型为 NORMAL。

create tablespace tbs DATAFILE '/home/dmdbms/DAMENG/TBS01.dbf' SIZE 32 CACHE=normal;

指定缓冲区为 KEEP:

create tablespace tbs_keep DATAFILE '/dm/data/DAMENG/TBSKEEP01.dbf' SIZE 32 CACHE="KEEP";
select page*4096/1024/1024;
select * from DBA_TABLESPACES;
select * from DBA_DATA_FILES;

1、查看表空间

select * from v$tablespace;
select t.name,f.* from v$datafile f ,v$tablespace t where t.id=0 and t.id=f.group_id;
select tablespace_name,FILE_NAME,bytes/1024/1024 from dba_data_files;

2、创建表空间

create tablespace tbs DATAFILE '/home/dmdbms/DAMENG/TBS01.DBF' SIZE 200;

DM 表空间的数据文件只能增加、不能减少,也不能单独删除某个数据文件,只能删除整个表空间。表空间有数据时不能直接删除。

create tablespace tbs datafile '/dm/data/DAMENG/tbs01.dbf' size 128 autoextend on next 1 maxsize 20480,'/dm7/data/DAMENG/tbs02.dbf' size 128 autoextend on next 1 maxsize 20480;     -----设置自动扩展,最大限制。

3、表空间扩容、缩小

扩容有两种方式,resize现有datdfile,或增加数据文件

alter tablespace "tbs" resize datafile '/data/dm/DAMENG/TBS01.dbf' to 400;
alter tablespace "tbs" add datafile '/data/dm/DAMENG/TBS02.dbf' size 200;

达梦数据库无法通过resize或者drop datafile来缩小表空间,只能通过迁移,导入导出来实现。

4、临时表空间创建

临时表空间不能单独创建,而是通过dm.ini参数文件修改,并且临时表空间只能有一个

        TEMP_PATH                       = d:\champion\data\DAMENG            #temporary file path
        TEMP_SIZE                       = 10                    #temporary file size  in Megabytes
        TEMP_SPACE_LIMIT                = 0                     #temp space limit in megabytes

重启生效

5、创建大表空间

create huge tablespace "TS_big_data" path 'D:\champion\data\DAMENG\big_data';

6、表空间删除

drop tablespace TBS;

7、表空间迁移

普通表空间数据文件的迁移:

create tablespace tbs DATAFILE '/data/dm/TBS01.DBF' SIZE 200;
select tablespace_name,file_name,bytes/1024/1024 from dba_data_files;
alter tablespace tbs offline;
alter tablespace tbs RENAME DATAFILE '/data/dm/TBS01.DBF' to '/data/dm/DAMENG/TBS01.DBF';
alter tablespace tbs online;

8、查看表空间使用率

SELECT
        a.tablespace_name "表空间名称"                         ,
        total        / (1024 * 1024) "表空间大小(M)"                 ,
        free         / (1024 * 1024) "表空间剩余大小(M)"               ,
        (total       - free) / (1024 * 1024 ) "表空间使用大小(M)"      ,
round((total - free) / total, 4) * 100 "使用率 %"
FROM  (
                SELECT
                        tablespace_name,
                        SUM(bytes) free
                FROM
                        dba_free_space
                GROUP BY
                        tablespace_name
        ) a,
        (
                SELECT
                        tablespace_name,
                        SUM(bytes) total
                FROM
                        dba_data_files
                GROUP BY
                        tablespace_name
        ) b
WHERE
        a.tablespace_name = b.tablespace_name;

更多资讯请上达梦技术社区了解: https://eco.dameng.com

相关标签: big data 数据库