ITPub博客

首页 > 数据库 > 国内数据库 > 关于达梦表空间管理的随笔

关于达梦表空间管理的随笔

原创 国内数据库 作者:yanhengdoudou 时间:2020-04-15 09:59:47 0 删除 编辑

   

1.DM7 表空间概述

         在 DM7 数据库中,表空间是一种逻辑存储结构,数据库的对象如表、索引等在逻辑上都是存储在指定的表空间中。数据库在初始化的时候,系统会自动创建 5 个默认表空间, SYSTEM , MAIN , ROLL , TEMP 和 HMAIN 表空间。其中 SYSTEM 表空间是系统表空间,存储有数据字典信息,用户数据不能存放在该表空间上。 ROLL , TEMP 和 HMAIN 表空间,由系统自动维护,不需要用户干预。初始的 MAIN 表空间为用户默认表空间。表空间只是一种逻辑结构,对应的物理存储结构为数据文件。也即是,用户的数据是存储在表空间对应的数据文件上面。 DM7 数据库中,物理存储结构的数据文件后缀为 DBF 。系统提供 v$tablespace 和 v$datafile 视图查询表空间和数据文件。

 

-- 查询表空间

SQL>select * from v$tablespace;

 

-- 查询数据文件

SQL>select * from v$datafile;

 

-- 查询表空间对应的数据文件

SELECT

        ts.NAME,

        df.PATH

FROM

        V$TABLESPACE AS ts,

        V$DATAFILE   AS df

WHERE

        ts.ID = df.GROUP_ID;

2.DM7 表空间管理

2.1 表空间创建与删除

-- 创建表空间,最简洁形式

-- 仅指定数据文件路径,以及数据文件初始大小,单位为( MB )

-- 注意大小仅为数字,不能带 M 符号

CREATE TABLESPACE bookshop DATAFILE '/opt/bookshop1.dbf' SIZE 128;

 

-- 以上创建表空间语句,自动指定如下属性:

autoextend on    

maxsize 33554431

CACHE = NORMAL

属性分别指:数据文件自动扩展,扩展最大大小,数据页的缓冲池名称

 

-- 创建表空间,指定非自动扩展

CREATE TABLESPACE bookshop DATAFILE '/opt/bookshop1.dbf' SIZE 128 autoextend off;

 

-- 删除表空间

drop tablespace bookshop;

 

删除表空间时,改表空间上必须没有数据库对象,否则会删除失败

2.3   表空间数据文件路径修改

当已有操作系统目录空间不足,需要将存放在该目录下的数据库数据文件更新目录时,可以使用如下语句。使用本方法的前提是,表空间必须处在脱机状态:

 

-- 表空间脱机处理

ALTER TABLESPACE bookshop OFFLINE;

 

-- 更改数据文件路径

ALTER TABLESPACE bookshop RENAME DATAFILE '/opt/book.dbf' TO '/data/book.dbf';

 

 

-- 在使用脱机处理失效时,可以将数据库系统进行关闭处理,然后手动修改控制文件,并移动数据文件至新的目录后,重新启动数据库系统。

 

3.DM7 表空间监控

监控表空间使用空间情况:

 

--DM7 查询表空间使用

select

        t.name tablespace_name,

        d.free_size*SF_GET_PAGE_SIZE()/1024/1024

        ||'M' free_space,

        d.total_size*SF_GET_PAGE_SIZE()/1024/1024

        ||'M' total_space,

        d.free_size*100/d.total_size "% FREE"

from

        v$tablespace t,

        v$datafile d

where

        t.id=d.group_id;

 

 

4.DM7 表空间备份

DM7 数据库支持用户表空间的备份还原操作。表空间备份需要在联机状态下执行,并且需要开启数据库归档模式。这是因为,表空间的数据库对象的字典信息是存储在数据库的系统 SYSTEM 表空间中。表空间的还原恢复,只能在备份源库上联机执行。

 

-- 表空间全量备份

BACKUP TABLESPACE t1 FULL TO TS_BAK BAKFILE '/opt/tablespace_bak.bak' ;

 

-- 表空间还原

ALTER TABLESPACE t1 OFFLINE;

RESTORE TABLESPACE t1 FROM '/opt/tablespace_bak.bak' IDENTIFIED BY ABCDEF;

ALTER TABLESPACE t1 ONLINE;

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949798/viewspace-2683298/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 再谈记录超长
请登录后发表评论 登录
全部评论

注册时间:2019-09-29

  • 博文量
    70
  • 访问量
    193341