注册
DM存储结构
技术分享/ 文章详情 /

DM存储结构

筱梦 2023/12/25 2035 1 0

存储结构
物理存储结构
(1)配置文件
以.ini 结尾的文件
image.png
查看参数信息:
select para_name,PARA_VALUE,PARA_TYPE from v$dm_ini;
Para_type:
SESSION:动态会话级参数,即改即生效,针对当前会话有效
SYS:动态系统级参数,即改即生效,针对全局
INFILE:静态参数,修改完需要重启数据库实例生效
READ ONLY:只读参数,通过 vi 方式修改
修改参数说明:
sp_set_para_value(参数类型,参数名,参数值);
参数类型:1 代表动态参数,2 代表静态参数
修改动态参数:会同时修改内存和参数文件中的值
sp_set_para_value(1,'MEMORY_LEAK_CHECK',1);
修改静态参数:只会修改参数文件中的值
COMPATIBLE_MODE
是否兼容其他数据库模式。
0:不兼容,
1:兼容 SQL92 标准,
2:部分兼容 ORACLE,
3:部分兼容 MS SQL SERVER,
4:部分兼容 MYSQL,
5:兼容 DM6,
6:部分兼容 TERADATA,
7:部分兼容 POSTGRES
修改数据库的兼容模式为兼容 ORACLE 数据库。
sp_set_para_value(2,'COMPATIBLE_MODE',2);
修改完参数后,需要重启数据库
(2)控制文件
以.ctl 结尾的文件
[dmdba@localhost DAMENG]$ ll *.ctl -rw-r--r-- 1 dmdba dinstall 6656 12 月 21 11:45 dm.ctl
将控制文件转换为文本文件
[dmdba@localhost DAMENG]$ cd /dm8/bin
查看帮助手册:
[dmdba@localhost bin]$ ./dmctlcvt help
[dmdba@localhost bin]$ ./dmctlcvt type=1 src=/dm8/data/DAMENG/dm.ctl
dest=/tmp/dm.txt
控制文件记录的内容包含:
1.数据库名称;
2. 数据库服务器模式;
3. OGUID 唯一标识;
4. 数据库服务器版本;
5. 数据文件版本;
6. 数据库的启动次数;
7. 数据库最近一次启动时间;
8. 表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中
使用的表空间,数组的方式保存起来;
9. 控制文件校验码
(3)数据文件
以.DBF 结尾的文件
image.png
select * from DBA_DATA_FILES;
select * from V$DATAFILE;
(4)重做日志文件
重做日志文件记录的是数据库发生变更的每一步操作。达梦数据库默认有两个重
做日志文件。重做日志文件具有循环写、可覆盖的特点。
select path,rlog_size/1024/1024 from v$rlogfile;
添加重做日志文件:
alter database add LOGFILE '/dm8/data/DAMENG/DAMENG03.log' SIZE 256;
Resize 重做日志文件大小:
alter database RESIZE LOGFILE '/dm8/data/DAMENG/DAMENG01.log' to 300;
重做日志文件可以扩大,不能缩小,可以添加,不能删除。
(5)归档日志文件
归档日志文件是重做日志文件的副本,在重做日志文件归档前,将重做日志文件
的内容拷贝到归档路径下做副本。
逻辑存储结构
页:页是达梦数据库最小的使用单元和存储单元,页大小支持 4k,8k,16k,32k,
标准页大小为 8k。
查询页大小
select page;
簇:连续的页就组成了簇,一个簇总是在一个数据文件中,簇是达梦数据库最小
的分配单元。簇大小支持 16、32、64 个页。
段:段是簇的上级逻辑单元。段会占用存储空间,段:表段、索引段、临时段、
回滚段。
表空间:一个数据库拥有多个表空间,一个表空间可以拥有 1 个或多个数据文件,
1 个数据文件只能属于 1 个表空间。
从小到大排序:
页<簇<段<表空间<数据库
image.png

image.png
内存结构
(1)共享内存池
共享内存池是数据库在启动时,会向服务器申请一大片内存,供其他内存池或者
缓冲区在不够用时提供调用。减少系统的调用,提升数据库的性能。
参数:MEMORY_POOL
单位:M
select para_name,para_value from v$dm_ini where para_name='MEMORY_POOL';
(2)数据缓冲区
数据缓冲区,缓存的是数据页。数据缓冲区和共享内存池没有关系,通过三条链
表来管理数据缓冲区中的数据页。数据缓冲区满,淘汰 LRU 链表上很少被使用到
的数据页。
数据缓冲区大小设置建议:
OLTP:物理内存的 40%-60%
OLAP:物理内存的 60%-80%
数据缓冲区类型:normal,keep 可以手动管理,达梦数据库 keep 的是表空间
Fast,recycle 系统自动管理,keep 的是临时表、回滚段的信息
参数:BUFFER
单位:M
select para_name,para_value from v$dm_ini where para_name='BUFFER';
修改数据缓冲区大小为 800M
sp_set_para_value(2,'BUFFER',800);
(3)重做日志缓冲区
缓存的是重做日志记录的信息,单位是页。重做日志缓冲区不够用时,会向服务
器申请内存。
参数:RLOG_BUF_SIZE
单位:页
select para_name,para_value,para_type from v$dm_ini where
para_name='RLOG_BUF_SIZE';
(4)SQL 缓冲区
缓存的是包,执行计划,结果集的信息。当 SQL 类别、包比较多应该调整 SQL
缓冲区大小。当 SQL 缓冲区不够用时,会共享内存池申请内存。
参数:CACHE_POOL_SIZE
单位:M
select para_name,para_value,para_type from v$dm_ini where
para_name='CACHE_POOL_SIZE';
(5)字典缓冲区
缓存的是数据字典的信息。当数据库中有大量的对象或分区表时,考虑增加字典
缓冲区的大小。当字典缓冲区不够用时,会向共享内存池申请内存。
参数:DICT_BUF_SIZE
单位:M
select para_name,para_value,para_type from v$dm_ini where
para_name='DICT_BUF_SIZE';
线程结构
(1)监听线程
监听线程在数据库服务器端监听来自客户端的连接请求。
(2)IO 线程
将磁盘上的数据页加载到数据缓冲区中;将数据缓冲区中的脏页在一定机制下
(数据缓冲区满、执行检查点、数据库正常关闭)更新到磁盘上的数据文件中。
(3)日志刷新线程
将重做日志缓冲区中的记录在一定机制(事务提交、执行检查点)下更新到磁盘
上的重做日志文件中。
(4)日志归档线程
数据库开启归档模式后,重做日志文件在归当前,将重做日志文件的内容拷贝到
归档路径下。
(5)日志重做线程
主要用于数据库的实例恢复。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服