DM8表空间管理

DM8表空间管理

在 DM 数据库中,表空间由一个或者多个数据文件组成。DM 数据库中的所有对象在逻辑 上都存放在表空间中,而物理上都存储在所属表空间的数据文件中

一、DM 预定义系统表空间:

SYSTEM、ROLL、MAIN、TEMP、HMAIN

SYSTEM:系统表空间,存放数据字典信息(表定义、字段信息、权限信息等)

ROLL:回滚表空间,存放回滚信息。

MAIN:用户默认表空间,当创建用户时,如果没有指定默认表空间则使用 USERS表空间;

TEMP:临时表空间,存放临时表数据、大量 sql 排序时会占用临时表空间。

HAMIN:HUGE 表(列存储表)的默认表空间。

SYSTEM、ROLL、TEMP 不能脱机。

自定义表空间可以脱机,表空间脱机状态下无法正常读取数据。

每一个用户都有一个默认的表空间。对于 SYS、SYSSSO、SYSAUDITOR 系统用户,默

认的用户表空间是 SYSTEM,SYSDBA 的默认表空间为 MAIN,新创建的用户如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。

二、查询表空间相关信息

SELECT TABLESPACE_NAME,STATUS FROM SYS.USER_TABLESPACES;

 查询表空间和数据文件:

select * from DBA_DATA_FILES;

 表空间数据字典

select * from v$tablespace;

select * from dba_data_files;

select * from dba_free_space;

 三、表空间状态

1、联机状态 status = 0

2、脱机状态 status=1; 表空间的数据不能访问

注意:SYSTEM, ROLL TEMP 不能 offline;

Alter tablespace test offline;

Alter tablespace test online

四、创建表空间

命令行语法:

CREATE TABLESPACE <表空间名> <数据文件子句>[<数据页缓冲池子句>][<存储加密子句>][<

指定 DFS 副本子句>]

<数据文件子句> ::= DATAFILE <文件说明项>{,<文件说明项>}

<文件说明项> ::= <文件路径> [ MIRROR <文件路径>] SIZE <文件大小>[<自动扩展子句>]

<自动扩展子句> ::= AUTOEXTEND <ON [<每次扩展大小子句>][<最大大小子句> |OFF>

<每次扩展大小子句> ::= NEXT <扩展大小>

<最大大小子句> ::= MAXSIZE <文件最大大小>

<数据页缓冲池子句> ::= CACHE = <缓冲池名>

<存储加密子句> ::= ENCRYPT WITH <加密算法> [[BY] <加密密码>]

<指定 DFS 副本子句> ::= [<指定副本数子句>][<副本策略子句>]

<指定副本数子句> ::= COPY <副本数>

<副本策略子句> ::= GREAT | MICRO

参数含义:

1. <表空间名> 表空间的名称,最大长度 128 字节;

2. <文件路径> 指明新生成的数据文件在操作系统下的路径+新数据文件名。数据文

件的存放路径符合 DM 安装路径的规则,且该路径必须是已经存在的;

3. MIRROR 数据文件镜像,用于在数据文件出现损坏时替代数据文件进行服务;

MIRROR 数据文件的<文件路径>必须是绝对路径。要使用数据文件镜像,必须在建库时开启

页校验的参数 PAGE_CHECK;

4. <文件大小> 整数值,指明新增数据文件的大小(单位 MB),取值范围 4096*页大

小~2147483647*页大小;

5. <缓冲池名> 系统数据页缓冲池名 NORMAL 或 KEEP。缓冲池名 KEEP 是 DM 的保

留关键字,使用时必须加双引号;

6. <加密算法> 可通过查看动态视图 V$CIPHERS 获取算法名;

7. <加密密码> 最大长度 128 字节,若未指定,由 DM 随机生成;

8. <指定 DFS 副本子句> 专门用于指定分布式文件系统 DFS 中副本的属性;

9. < 副本数> 表空 间文件 在 DFS 中 的副 本 数, 默 认为 DMDFS.INI 中 的

DFS_COPY_NUM 的值;

10. <副本策略子句> 指定管理 DFS 副本的区块:宏区(GREAT)或是微区(MICRO)

例:create tablespace "TEST" datafile

'/data/DAMENG/TEST_01.DBF' size 256 autoextend on next 1 maxsize 20480,

'/data/DAMENG/TEST_02.DBF' size 256 autoextend on next 1

maxsize 20480 CACHE = NORMAL

注意

1、表空间名在数据库中必须唯一;

2、表空间名要大写,

3、表空间大小不能带单位,

4、不能小于32m。(表空间数据文件初始大小:4096*8192=32m)

5、一个表空间中,数据文件和镜像文件一起不能超过 256 个

6、如果全库已经加密,就不再支持表空间加密

7、SYSTEM 表空间不允许关闭自动扩展,且不允许限制空间大小

 五、修改表空间

 语法格式

ALTER TABLESPACE <表空间名> [ONLINE|OFFLINE|CORRUPT|<表空间重命名子句>|<数据

文件重命名子句>|<增加数据文件子句>|<修改文件大小子句>|<修改文件自动扩展子句>|<数据页缓冲

池子句>]

<表空间重命名子句> ::= RENAME TO <表空间名>

<数据文件重命名子句>::= RENAME DATAFILE <文件路径>{,<文件路径>} TO <文件路径>{,<

文件路径>}

<增加数据文件子句> ::= ADD <数据文件子句>

<数据文件子句>见上一节表空间定义语句

<修改文件大小子句> ::= RESIZE DATAFILE <文件路径> TO <文件大小>

<修改文件自动扩展子句> ::= DATAFILE <文件路径>{,<文件路径>}[<自动扩展子句>]

<自动扩展子句> ::= 见 3.4.1 节说明

<数据页缓冲池子句> ::= CACHE = <缓冲池名>

 参数:

1. <表空间名> 表空间的名称;

2. <文件路径> 指明数据文件在操作系统下的路径+新数据文件名。数据文件的存

放路径符合 DM 安装路径的规则,且该路径必须是已经存在的;

3. <文件大小> 整数值,指明新增数据文件的大小(单位 MB);

4. <缓冲池名> 系统数据页缓冲池名 NORMAL 或 KEEP。

例:

表空间重命名:

alter tablespace tbs RENAME to tbstest;

管理数据文件:

alter tablespace tbs add datafile ' TEST_02.DBF' size 32 AUTOEXTEND off;

alter tablespace tbs DATAFILE ' TEST_02.DBF' AUTOEXTEND on NEXT 2 MAXSIZE 10240;

alter tablespace tbs DATAFILE ' TEST_01.DBF' AUTOEXTEND on NEXT 2 MAXSIZE 10240;

alter tablespace tbs resize DATAFILE ' TEST_01.DBF' TO 64;

注意:

1. 不论 dm.ini 的 DDL_AUTO_COMMIT 设置为自动提交还是非自动提交,ALTER

TABLESPACE 操作都会被自动提交;

2. 修改表空间数据文件大小时,其大小必须大于自身大小;

3. SYSTEM 表空间不允许关闭自动扩展,且不允许限制空间大小

4. 如果表空间有未提交事务时,表空间不能修改为 OFFLINE 状态;

5. 重命名表空间数据文件时,表空间必须处于 OFFLINE 状态,修改成功后再将表空

间修改为 ONLINE 状态;

6. 表空间如果发生损坏(表空间还原失败,或者数据文件丢失或损坏)的情况下,允

许将表空间切换为 CORRUPT 状态,并删除损坏的表空间,如果表空间上定义有对象,需要

先将所有对象删除,再删除表空间。

六、表空间删除

DROP TABLESPACE [IF EXISTS] 表空间名;

注意:

1. 删除不存在的表空间会报错。若指定 IF EXISTS 关键字,删除不存在的表空间,不会报错;

2. SYSTEM、RLOG、ROLL 和 TEMP 表空间不允许删除;

3. 系统处于 SUSPEND 或 MOUNT 状态时不允许删除表空间,系统只有处于 OPEN 状态下才允许删除表空间。

七、常见表空间维护

1、增加数据文件

查询表空间的数据文件:

select * from dba_data_files WHERE tablespace_name='TEST'

增加数据文件:

ALTER tablespace test add datafile '/data/DAMENG/TEST_03.DBF' SIZE 32

AUTOEXTEND ON NEXT 1 MAXSIZE 2048;

2、更换储存位置

1) 表空间 offline

Alter tablespace test offline

2) 修改存储位置

Alter tablespace test rename datafile '/data/DAMENG/TEST_03.DBF' TO

'/data/test_03.DBF';

3) 表空间 online

Alter tablespace test online; ------------------------------------------------------------------- alter tablespace "TEST" offline;

alter tablespace "TEST" rename datafile '/dm8/data/TEST_03.DBF' to

'/dm8/data/DAMENG/TEST_03.DBF';

alter tablespace "TEST" online

https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值