国产数据库达梦7体系结构介绍

1.数据库分类:

2.达梦数据库逻辑存储结构:

页----簇----段-----数据文件-----表空间-----数据库

页是最小的逻辑单元,是数据库最小的分配单位。

数据库是由一个或多个表空间组成。

每一个表空间由一个或多个数据文件组成。

每一个数据库文件由一个或多个簇组成。

段是簇的上级逻辑单位,一段可以跨多个数据文件。

簇是磁盘上连接的页组成,一个簇总是一个数据文件中。

3.物理存储结构

3.1配置文件

以ini结尾的文件

3.2控制文件

控制文件是一个二进制文件,以ctl结尾。

控制文件参数

[dmdba@dca01 DAMENG]$ cat dm.ini|grep ctl

CTL_PATH                        = /dm7/data/DAMENG/dm.ctl     #ctl file path

CTL_BAK_PATH                    = /dm7/data/DAMENG/ctl_bak    #dm.ctl backup path

CTL_BAK_NUM                     = 10                            #backup number of dm.

查看控制文件内容:

[dmdba@dca01 ~]$ dmctlcvt help

格式: ./dmctlcvt KEYWORD=value

[dmdba@dca01 ~]$ dmctlcvt type=1 src=/dm7/data/DAMENG/dm.ctl dest=/tmp/dmctl.txt

不要随便去修改控制文件。

3.3数据文件

以.dbf结尾的文件

数据文件的大小范围:4096*页大小 -------2147483647*页大小

表空间中数据文件的总数不超过256个。

3.4备份文件

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

3.5事件日志文件

记录了数据库运行期间的关键事件,如启动,关闭,内存申请失败,io错误等一些致命的错误。DM_HOME/log目录下,命令格式为:

dm_实例名_日期。

3.6跟踪文件

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

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

4.达梦的内存结构

4.1共享内存

   采用共享内存池可以一次性向操作系统申请一大片内存,即内存池在实例运行中要内存时,可在共享内存池进行申请或者释放,共享内存池可以在实例的配置文件dm.ini中进行配置。

SQL> select para_name,para_value from v$dm_ini where para_name like '%MEMORY%';

MEMORY_TARGET共享内存的总大小,0:表示不限制。

Oracle memory_target = sga+pga

公共池:memory_pool  157 (减少系统调用)

SQL> select distinct name,is_shared from v$mem_pool order by 2;

共享内存的分类:公共池,数据缓冲区,字典缓冲区,sql缓冲区,重做日志缓冲区,排序区,hash区

4.2数据缓冲区

缓存使用的数据块,增加逻辑读的次数,提高修改和查询的性能。

参数:buffer

参考值:

Oltp: buffer  大小占整个物理内存的40%-60%

Olap:buffer  大小占整个物理内存的60%-80%

数据缓冲区保存的数据页,包括用户更改的数据页,查询时从磁盘读取的数据页。

相关视图:

V$bufferpool:用记录页面缓冲区结构信息。

V$buffer_lru_first:显示所缓冲区LRU链首页信息。

V$buffer_lru_last:显示所缓冲区LRU链末页信息。

V$buffer_upd_first:显示所缓冲区update链首页信息。

V$buffer_upd_last:显示所缓冲区update链末页信息。

数据缓冲区有5种类型:

Normal keep  fast  recycle  和roll;

ORALCE:RECYCLE 和keep  存的是表。

DM:RECYCLE和keep存的是表空间。

修改参数值:

Oracle:alter system set  para_name=para_value

DM:SP_SET_PARA_VALUE(scope,para_name,para_value);

Scope:

1:动态参数

2:静态参数

DM的参数类型:

Sys/session:动态参数,同时修改内存和配置文件

Read only:在数据库运行状态时,不能修改。

In file:静态参数,修改配置文件,重启服务生效。

通过视图v$parameter来查看类型

SQL> sp_set_para_value(2,'BUFFER',1500);

重启生效

Buffer_pools:缓冲池个数

Max_buffer:缓冲区最大值

是否读取多页:multi_page_num ,默认是单页。

如果数据库加密或是启用ssd缓冲区,则不支持多页读取。

4.3 字典缓冲区

字典缓冲区主要存的是一些数据字典信息如模式信息,表信息,列信息,触发器信息等等。实例在启动的时候,会将部分的数据字典信息加载到字典缓冲区中,并采用lru算法进行字典信息的控制。

DICT_BUF_SIZE:单位M

V$DICT_CACHE_ITEM:字典缓冲区中字典对象的信息。

V$DICT_CACHE:字典缓冲区的信息。

8.3.4sql缓冲区

DM执行一条sql的过程

SQL> select para_name,para_value from v$dm_ini where para_name='DICT_BUF_SIZE';

A 语法分析

B 语义分析(读字典表)

C 权限判断

D查找数据块是否在内存(在内存,产生逻辑读,不在内存,产生物理读)

E是否有可用的执行计划,如果有,按执行计划来,如果没有,就生成执行计划,运行sql,将结果集发回客户端)

Sql缓冲区里存放的都是最近使用的执行计划和最近查询的结果集。

Use_pln_pool:是否重用执行计划

1:启执行计划重用

2:对不包含显示参数的语句进行常量参数优化

3:即使包含显示参数语句,也进行常量参数优化

0:禁止执行计划重用。

CACHE_POOL_SIZE:缓冲区的大小

RS_CAN_CACHE:控制结果集缓存

0:禁止重用结果集

1:强制模式,默认缓存所有的结果集

2:手动模式,默认不缓存结果集

仅当参数RS_CAN_CACHE=1且USR_PLN_POOL非0 的时候,才会缓存结果。

相关的视图:

V$sql_plan:缓冲区中执行计划的信息。

V$sql_history:sql执行历史信息

V$sql_text:sql执行信息

V$cachesql:缓冲区中sql语句的信息

 

4.5重做日志缓冲区

用于存入重做日志的内存缓冲区,为了避免直接对磁盘的io进行文读写,对数据库的性能产生影响。

Rlog_buf_size:日志缓冲区的大小,单位:page大小设置为2的幂

Rlog_pool_size:最大日志缓冲的大小:单位M

重做日志机制:每3秒写一次,或者是当我们提交事务的时候,commit;

4.6排序区

提供数据排序所需要的内存空间,如果内存排序无法完成,把部分的排序转到磁盘上,tmp

Sort_buf_size 单位:M

4.7hash区

为了哈希链接设定的缓冲区,该缓冲区是虚拟缓冲区

HJ_BUF_SIZE

4.8ssd缓冲区

将ssd文件作为内存缓冲与普通磁盘之间的缓冲层,称为SSD缓存,默认SSD缓冲区是关闭的,启用SSD缓冲区,将SSD_BUF_SIZE设置为大于0,并指定SSD_FILE_PATH就可以了。

5.达梦线程的管理

达梦数据库是单进程、多线程结构

数据库实例:内存结构+一系列的线程+数据文件组成的

相关视图:

V$latches:在等待的线程信息

V$threads:当前系统中所有活的线程的信息。

V$wthrd_history:记录自数据库启动以来的,所有活动过的线程的相关历史信息。

V$process:查看当前数据进程信息。

监听线程:检测外部连接(5236)

IO线程:(写脏数据到磁盘)

工作线程:(执行任务)

调度线程:清理临时段和失效段,分配任务给工作线程和唤醒工作线程)

日志重做线程:数据库异常关闭,下次启动,利用重做日志,构造脏数据块)

日志归档线程:对重做日志做副本

日志写线程:把重做日志缓冲区的数据写到重做日志中

.........

利用控制台工具,查看和调整线程参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值