DM8 表空间管理

编程入门 行业动态 更新时间:2024-10-23 11:24:27

DM8 表<a href=https://www.elefans.com/category/jswz/34/1771407.html style=空间管理"/>

DM8 表空间管理

DM8 表空间管理

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

在创建 DM 数据库时,会自动创建 4 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN表空间和 TEMP 表空间。

-- 查看表空间信息

select

SF_GET_PARA_STRING_VALUE(1,'INSTANCE_NAME') AS   INSTANCE_NAME,

a.id ,a.NAME , case  when a."TYPE$" = 1 then 'DATAFILE'   else'TEMPFILE' end  AS TYPE,

case a."STATUS$"

when 0 then 'ONLINE'

WHEN 1 then 'OFFLINE'

when 2 then 'RES_OFFLINE'

ELSE 'CORRUPT' END AS STATUS,

round(A.MAX_SIZE * page /power(2,30),2) as MAX_SIZE_GB,

A.FILE_NUM,

round(a.TOTAL_SIZE * page/power(2,30),2) AS TOTAL_SIZE_GB  ,

ROUND (a.USED_SIZE  * page/power(2,30),2) as USED_SIZE_GB ,

a.CACHE

from v$tablespace a ;

创建表空间

理论上最多允许有 65535 个表空间,但用户允许创建的表空间 ID 取值范围为

0~32767,超过 32767 的只允许系统使用,ID 由系统自动分配,ID 不能重复使用,即使删除掉已有表空间,也无法重复使用已用 ID 号,也就是说只要创建 32768 次表空间后,用户将无法再创建表空间。

--创建表空间

--查看最小数据文件大小

select page * 4096 /1024 /1024 ;

--查看数据文件存放路径

select path from v$datafile ;

--安装数据文件路径创建表空间,注意路径和命名规则

create TABLESPACE <tablespace_name> datafile '....' size <大于等于最小值> autoextend on next 5 maxsize <最大值> ;

修改表空间

ALTER TABLESPACE <表空间名> [ONLINE|OFFLINE|CORRUPT|<表空间重命名子句>|<数据文件重命名子句>|<增加数据文件子句>|<修改文件大小子句>|<修改文件自动扩展子句>|<数据页缓冲池子句>]

修改表空间状态

ALTER TABLESPACE bookshop OFFLINE/online;

修改表空间名称

可修改已存在的由用户创建的表空间的名称。比如可修改 bookshop 表空间名为books。

ALTER TABLESPACE bookshop RENAME TO books;

修改表空间数据缓冲区

用户表空间可以切换使用的数据缓冲区,系统表空间、回滚表空间、重做日志表空间和

临时文件表空间不允许修改数据缓冲区。可以使用的数据缓冲区有 NORMAL 和 KEEP。表空间修改成功后,并不会立即生效,而是需要服务器重启。缓冲池名 KEEP 是达梦的保留关键字,使用时必须加双引号。例如将 bookshop 表空间绑定到 KEEP 缓冲区。

ALTER TABLESPACE bookshop CACHE= “KEEP”;

查看表空间与数据文件对应关系

SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID = df.GROUP_ID (+);  -- v$datafile 视图无法详细offline表空间的数据文件信息.

增加一个路径为 d:\TS1_1.dbf,大小为 128M 的数据文件到表空间 TS1。

ALTER TABLESPACE TS1 ADD DATAFILE 'd:\TS1_1.dbf' SIZE 128;

修改表空间 TS1 中数据文件 d:\TS1.dbf 的大小为 200M。

ALTER TABLESPACE TS1 RESIZE DATAFILE 'd:\TS1.dbf' TO 200;

重命名表空间 TS1 的数据文件 d:\TS1.dbf 为 e:\TS1_0.dbf。

ALTER TABLESPACE TS1 OFFLINE;

ALTER TABLESPACE TS1 RENAME DATAFILE 'd:\TS1.dbf' TO 'e:\TS1_0.dbf';

ALTER TABLESPACE TS1 ONLINE;

修改表空间 TS1 的数据文件 d:\TS1.dbf 自动扩展属性为每次扩展 10M,最大文件大小为 1G。

ALTER TABLESPACE TS1 DATAFILE 'd:\TS1.dbf' AUTOEXTEND ON NEXT 10 MAXSIZE 1000;

修改表空间 TS1 缓冲池名字为 KEEP。

ALTER TABLESPACE TS1 CACHE="KEEP";

修改表空间为 CORRUPT 状态,注意只有在表空间处于 OFFLINE 状态或表空间损坏的情况下才允许使用。

ALTER TABLESPACE TS1 CORRUPT;

为表空间 TS1 添加 HUGE 数据文件路径

ALTER TABLESPACE TS1 ADD HUGE PATH 'D:\dmdbms\data\DAMENG\TS1\HUGE2';

删除表空间

只可以删除用户创建的表空间并且只能删除未使用过的表空间。删除表空间时会删除其拥有的所有数据文件。例如删除 bookshop 表空间。

DROP TABLESPACE bookshop;

--- 

-3412: 试图删除已经使用的表空间

查找表空间上对象的.先删除这些对象后,才能删除表.

如果表空间位某对象的默认表空间, 可以删除用户和其所有的对象.  -- 删除慎重.

表空间失效文件检查

SP_FILE_SYS_CHECK ();  -- 在 LINUX 操作系统下,检查是否有数据文件被删除。

表空间失效文件恢复

[dmdba@enmoedu3 ~]$ ps -ef | grep dmserver

dmdba     8908     1  0 10:11 pts/3    00:02:31 /opt/dm8/bin/dmserver path=/opt/dm8/data/PROD/dm.ini -noconsole

dmdba    20920 20851  0 16:03 pts/7    00:00:00 grep --color=auto dmserver

dmdba@enmoedu3 ~]$ cd /proc/8908/fd

[dmdba@enmoedu3 fd]$ ll

总用量 0

lr-x------ 1 dmdba dinstall 64 8月  24 15:49 0 -> /dev/null

l-wx------ 1 dmdba dinstall 64 8月  24 15:49 1 -> /opt/dm8/log/DmServiceENMO.log

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 10 -> /opt/dm8/data/PROD/PROD04.log

lr-x------ 1 dmdba dinstall 64 8月  24 15:49 11 -> pipe:[71648]

l-wx------ 1 dmdba dinstall 64 8月  24 15:49 12 -> pipe:[71648]

lr-x------ 1 dmdba dinstall 64 8月  24 15:49 13 -> pipe:[71649]

l-wx------ 1 dmdba dinstall 64 8月  24 15:49 14 -> pipe:[71649]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 15 -> socket:[75263]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 16 -> /opt/dm8/data/PROD/ROLL.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 17 -> /opt/dm8/data/PROD/BOOKSHOP.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 18 -> /opt/dm8/data/PROD/DMHR.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 19 -> /opt/dm8/data/PROD/PROD_TBS01.DBF

l-wx------ 1 dmdba dinstall 64 8月  24 15:48 2 -> /opt/dm8/log/DmServiceENMO.log

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 20 -> /opt/dm8/data/PROD/PROD_TBS02.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 21 -> /opt/dm8/arch/ARCHIVE_LOCAL1_0x43EF1C8F_EP0_2022-08-24_09-56-42.log

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 22 -> /opt/dm8/data/PROD/MAIN.DBF (deleted)

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 23 -> socket:[75367]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 24 -> socket:[279391]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 25 -> socket:[279392]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 26 -> /opt/dm8/data/PROD/TEST_TBS01.dbf

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 27 -> /opt/dm8/data/PROD/TEST_IDX_TBS01.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 28 -> socket:[371378]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 29 -> socket:[580573]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 3 -> socket:[71636]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 30 -> socket:[556453]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 4 -> socket:[71637]

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 5 -> /opt/dm8/data/PROD/SYSTEM.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 6 -> /opt/dm8/data/PROD/TEMP.DBF

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 7 -> /opt/dm8/data/PROD/PROD01.log

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 8 -> /opt/dm8/data/PROD/PROD02.log

lrwx------ 1 dmdba dinstall 64 8月  24 15:49 9 -> /opt/dm8/data/PROD/PROD03.log

[dmdba@enmoedu3 fd]$ cp 22 /opt/dm8/data/PROD/MAIN.DBF

[dmdba@enmoedu3 fd]$

1.准备恢复

SP_TABLESPACE_PREPARE_RECOVER('MAIN');

2.恢复

SP_TABLESPACE_RECOVER('MAIN');

更多推荐

DM8 表空间管理

本文发布于:2024-03-07 03:50:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1716769.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:空间

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!