达梦数据库(DM8)表空间介绍及管理
1、DM8表空间介绍
system表空间:数据字典信息和动态性能视图
roll表空间:数据库运行中的回滚记录
main表空间:数据库的默认表空间。创建用户或者创建数据库对象时,没有指定表空间,就存放在默认表空间 main 表空间中。
hamin表空间:huge 表空间
temp:临时表空间,临时数据,排序都存储在临时表空间。
查看表空间对应的数据文件:
SQL>selelct name,path from v$tablespace ts,v$datafile df where ts.id=df.group_id;
2、表空间管理
创建表空间对应的数据文件:
例1:表空间 TEST,创建一个初始大小为 100m 的数据文件
create tablespace test datafile ‘/dm8/data/DAMENG/TEST01.DBF’ SIZE 100M;
例2:表空间 TEST,数据文件初始大小为 50m,每次自动扩展 2m,最大可扩展到 1g。
SQL>create tablespace “TEST” datafile ‘/dm8/data/DAMENG/TEST01.DBF’ size 50 autoextend on next 2 maxsize 1024;
表空间状态(脱机、联机):
脱机:alter TABLESPACE TEST OFFLINE;
联机:alter TABLESPACE TEST ONLINE;
查询表空间状态:
select s.TABLESPACE_NAME,s.STATUS from SYS.DBA_TABLESPACES;
0:为联机状态
1:为脱机状态
表空间不足时:
①resize数据文件:
alter tablespace test resize datafile ‘/dm8/data/DAMENG/TEST01.DBF’ TO 100;
②添加数据文件:
alter tablespace test add datafile ‘/dm8/data/DAMENG/TEST02.DBF’ size 100;
修改表空间名称:
ALTER TABLESPACE test RENAME TO mdf_test;
注意:system、temp、roll 表空间不允许脱机,TEMP 表空间不能被删除
表空间删除:
drop tablespace mdf_test;
修改表空间数据缓冲区:
用户表空间可以切换使用的数据缓冲区,系统表空间、回滚表空间、重做日志表空间和
临时文件表空间不允许修改数据缓冲区。可以使用的数据缓冲区有 NORMAL 和 KEEP。表空间修改成功后,并不会立即生效,而是需要服务器重启。缓冲池名 KEEP 是达梦的保留关键字,使用时必须加双引号。
ALTER TABLESPACE test CACHE= “KEEP”;
表空间文件失效检查:
通过系统过程 SP_FILE_SYS_CHECK()来手动的进行检查,系统一旦检测出某个表空间内的数据文件被删除,则与该表空间所有的操作都将会失败,并报错该表空间内有数据文件被删除。
表空间失效文件恢复:
LINUX 系统中被删除的文件,只要其句柄没有被关闭,可以在/proc//fd 中找到其对应的文件副本。其中指打开该文件的进程 id。 利用该方法,结合 OS 命令,DM7 提供失效文件的恢复方案如下:
1、 调用系统过程 SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备进行恢复;
2、 如果使用过程中 DM 报错表空间数据文件被删除,通过操作系统的 ps 命令找到当前dmserver 的 PID:ps –ef|grepdmserver;
3、 使用操作系统 ls 命令查看被删除文件对应的副本:ls /proc//fd–l,会发现被删除的文件后有(deleted)字样;
4、 使 用 操 作 系 统 的 cp 命 令 将 文 件 复 制 到 原 位 置cpbak_fildata_file_path_dir;
5、 复制成功后,调用系统过程 SP_TABLESPACE_RECOVER(ts_name)完成表空间失效文件的恢复。
注意:
要保证数据文件正确修复,需要保证在 SP_TABLESPACE_PREPARE_RECOVER后进行数据文件的复制。
本文介绍了达梦数据库DM8中的表空间概念,包括system、roll、main、hamin和temp表空间的作用。详细讲解了如何创建、管理表空间,如调整数据文件大小、改变表空间状态、修改表空间名称、删除表空间以及应对表空间文件失效的恢复方法。内容涵盖创建、扩展、脱机/联机、删除表空间的操作以及数据缓冲区的修改。
5983

被折叠的 条评论
为什么被折叠?



