达梦体系结构的学习

达梦逻辑存储结构

达梦数据库的逻辑单元从大到小依次为:数据库–>表空间–>数据文件–>段–>簇–>页。到页就没有了,由此看出页是最小的逻辑单元,是数据库最小的分配单位。数据库由一个或多个表空间组成。每一个表空间有一个或多个数据文件组成,每一个数据文件由一个或多个簇组成,段是簇的上级逻辑单位,一段可以跨多个数据文件,簇是磁盘上连续的页组成的。一个簇总在一个数据文件中。大体结构如下所示:达梦体系结构的学习
页:数据块,最小的数据IO单元。页的大小可以设置为4K,8k,16k,32k,默认8k。
数据页包含4个部分:页头控制信息,数据,空闲空间,行偏移数组。

簇:是由16或32个连续的数据页组成。默认16。比如:数据文件 大小为32m ,页大小是8k,则共有 32M/8K/16=256个簇。每个簇的大小,8k*16=128k。

段:由表空间中的一组簇组成,数据文件可以由不同的簇来组成。

达梦物理存储结构

配置文件

以ini结尾的文件
达梦体系结构的学习

控制文件

控制文件是一个二进制文件,以ctl结尾。
达梦体系结构的学习
查看控制文件参数:cat dm.ini|grep ctl
达梦体系结构的学习
查看控制文件内容:dmctlcvt type=1 src=/dm7/data/DAMENG/dm.ctl dest=/tmp/dmctl.txt
达梦体系结构的学习
不要随便去修改控制文件

数据文件

以dbf结尾的文件
数据文件的大小范围:4096页大小 -------2147483647页大小
达梦数据库页大小:4K 8K 16K 32K 默认8k
表空间中数据文件的总数不超过256个
达梦体系结构的学习

重做日志文件

以log结尾的文件
达梦体系结构的学习
1、查看日志文件 v$rlogfile;
达梦体系结构的学习
2、增加一个日志文件
SQL> alter database add logfile ‘/dm7/data/DAMENG/DAMENG04.log’ size 128;
达梦体系结构的学习
3、修改日志文件的大小
达梦体系结构的学习
重做日志不能删除,所有日志文件大小要求一致

备份文件

以bak为扩展名的文件,还一个.meta元数据文件

归档日志文件

利用归档日志,将系统恢复至故障发生的前一刻,也可以还原指定的时间点,如果没有归档日志,则只能利用备份来进行恢复。

归档参数文件: dmarch.ini

跟踪文件

跟踪日志文件记录了系统各会话执行的sql语句,错误信息,主要错误和性能问题。启动跟踪日志,对系统性能有较大的影响,默认情况下跟踪日志是关闭的。

Dm.ini svr_log 参数改为1就打开中跟踪日志。

事件日志文件

记录了数据库运行期间的关键事件,如启动,关闭,内存申请失败,io错误等一些致命的错误。

存放在DM_HOME/log目录下。命名格式:dm_实例名_日期。

达梦线程的管理

达梦数据库是单进程、多线程结构
数据库实例:内存结构 + 一系列的线程组成的。

相关视图:
V$LATCHES:在等待线程信息
V$threads:当前系统中所有活的线程的信息。
V$wthrd_history:记录自数据库启动以来,所有活动过的线程的相关历史信息。
V$process:查看当前数据进程信息。
达梦体系结构的学习
达梦体系结构的学习
监听线程
IO线程
工作线程
调度线程
日志重做线程
日志归档线程
日志写线程 (把重做日志缓冲区的数据到重做日志中)