DM数据库布局和存储管理
一、管理表空间
1.创建表空间
创建表空间时需要指定表空间名和其拥有的数据文件列表。比如创建名为 bookshop 的表空间,并指定该空间上拥有 2 个数据文件,每个数据文件的大小为 128M
例如:创建名为 bookshop 的表空间,并指定该空间上拥有 2 个数据文件,每个数据文件的大小为 128M
CREATE TABLESPACE bookshop DATAFILE 'd:\bookshop1.dbf' SIZE 128,'D:\bookshop2.dbf' SIZE 128;
2.删除表空间
删除表空间会删除其拥有的所有数据文件
例如:删除bookshop表空间
DROP TABLESPACE bookshop;
3.修改表空间
3.1修改表空间名
例如:将bookshop表空间名修改为books
ALTER TABLE bookshop RENAME TO books;
3.2修改表空间状态
两种状态
联机: OFFLINE
脱机: ONLINE
例如:
修改 bookshop 表空间状态为脱机。
ALTER TABLESPACE bookshop OFFLINE;
修改 bookshop 表空间状态为联机。
ALTER TABLESPACE bookshop ONLINE;
3.3修改表空间数据缓冲区
可以使用的数据缓冲区有NORMAL和KEEP。表空间修改成功后,要重启服务器才能生效,使用KEEP(DM的保留关键字)时,必须加双引号。
例如:将BOOKSHOP表空间绑定到KEEP缓冲区
ALTER TABLESPACE bookshop CACHE="KEEP";
3.4表空间文件的失效检查与恢复
3.4.1检查
- dm.ini 中参数 FIL_CHECK_INTERVAL 指定 DM 检查数据文件的时间间隔,设为 0 表示不检查。
- 通过系统过程 SP_FILE_SYS_CHECK()来手动的进行检查。
3.4.2恢复
-
调用系统过程SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备进行恢复;
-
如果使用过程中 DM 报错表空间数据文件被删除,通过操作系统的 ps 命令找到当前dmserver 的 PID:
ps –ef|grep dmserver;
-
使用操作系统 ls 命令查看被删除文件对应的副本:
ls /proc/<PID>/fd–l
会发现被删除的文件后有(deleted)字样;
-
使用操作系统的 cp 命令将文件复制到原位置:
cp bak_fildata_file_path_dir;
-
复制成功后,调用系统过程 SP_TABLESPACE_RECOVER(ts_name)完成表空间失效文件的恢复。
二、管理数据文件
1.添加数据文件
添加的数据文件大小最小为 4096*页大小
例如在 bookshop 表空间中添加大小为 64M 的数据文件。
ALTER TABLESPACE bookshop ADD DATAFILE 'd:\book.dbf' SIZE 64;
2.扩展数据文件大小
例如扩展 bookshop 表空间中数据文件 book.dbf 大小至 128M。
ALTER TABLESPACE bookshop RESIZE DATAFILE 'd:\book.dbf' TO 128;
3.指定数据文件的扩展属性
3.1创建表空间时指定
如指定扩展属性为可自动扩展,每次扩展为 10M,最大可扩展到 100M:
CREATE TABLESPACE bookshop DATAFILE 'd:\book.dbf' SIZE 32 AUTOEXTEND ON NEXT 10 MAXSIZE 100;
3.2在表空间中添加文件时指定
如指定扩展属性为不可自动扩展:
ALTER TABLESPACE bookshop ADD DATAFILE 'd:\book.dbf' SIZE 1024 AUTOEXTEND OFF;
3.3可修改表空间中已存在的数据文件的扩展属性
如修改扩展属性为可自动扩展:
ALTER TABLESPACE bookshop DATAFILE 'd:\book.dbf' AUTOEXTEND ON;
4.修改数据文件的路径
表空间必须处于脱机状态并且只可修改用户创建的表空间中文件的路径。如修改 bookshop 表空间中文件book.dbf 的路径为 e:\ book.dbf。
ALTER TABLESPACE bookshop RENAME DATAFILE 'd:\book.dbf' TO 'e:\book.dbf';
5.添加HUGE数据文件路径
如为普通表空间 bookshop 添加 HUGE 数据文件路径 e:\HUGE,将 bookshop 升级为混合表空间。
ALTER TABLESPACE bookshop ADD HUGE PATH 'e:\HUGE';
三、管理重做日志文件
1.添加重做日志文件
如添加重做大小为 128M的重做日志文件 DAMENG03.log。
ALTER DATABASE ADD LOGFILE 'd:\DAMENG03.log' size 128;
2.扩展重做日志文件
如扩展重做日志文件DAMENG03.log 到 256M。
ALTER DATABASE RESIZE LOGFILE 'd:\DAMENG03.log' to 256;
四、管理回滚空间
回滚空间的空间名固定为ROLL,不可修改。
- 首先转换控制文件到文本文件:
dmctlcvt c2t D:\dm.ctl D:\ctl.txt
-
编辑 ctl.txt 文本文件中 fil_path=d:\roll.dbf 为 fil_path=e:\ roll.dbf,保存文本文件。
-
复制 d:\roll.dbf 文件为 e:\ roll.dbf。
-
最后转换文本文件到控制文件:
dmctlcvt t2c D:\ctl.txt D:\dm.ctl
达梦在线服务平台:https://eco.dameng.com/