暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦V8数据库03-20241007

黄宏亮数字 2024-10-07
232

达梦V8数据库01-20241006

达梦V8数据库02-20241006

达梦V8数据库01-20241007

达梦V8数据库02-20241007

1、内存池

a) 共享内存池

a)共享内存池是DM Server在启动时从操作系统申请的一大片内存,即为内存池。当系统在运行过程中需要申请内存时,可在共享内存池内进行申请;当用完该内存时,再释放掉,即归还给共享内存池。

b)系统管理员可通过配置文件dm.ini对共享内存池大小进行管理,参数MEMORY_POOL配置了共享内存池的默认大小,参数MEMORY_EXTENT_SIZE配置了每次可自动扩展的大小,参数MEMORY_TARGET指定了共享内存池能扩展到的最大大小

b) 运行时内存池

DM Server的一些功能模块在运行时还会使用自己的运行时内存池。这些运行时内存池是从操作系统申请一片内存作为本功能模块的内存池来使用,如会话内存池、虚拟机内存池等

2、缓冲区

c) 数据缓冲区

  1. a)  DM Server在将数据页写入磁盘之前以及从磁盘上读取数据页之后,数据页所存储的地方。DM Server中有四种类型的数据缓冲区,分别是NORMALKEEPFASTRECYCLE。其中,用户可以在创建表空间或修改表空间时,指定表空间属于NORMALKEEP缓冲区。RECYCLE缓冲区供临时表空间使用,FAST缓冲区根据用户指定的FAST_POOL_PAGES大小由系统自动进行管理,用户不能指定使用RECYCLEFAST缓冲区的表或表空间。

  2. b) NORMAL缓冲区主要是提供给系统处理的一些数据页,没有特定指定缓冲区的情况下,默认缓冲区为NORMALKEEP的特性是对缓冲区中的数据页很少或几乎不怎么淘汰出去,主要针对用户的应用是否需要经常处在内存当中,如果是这种情况,可以指定缓冲区为KEEP

  3. d) 日志缓冲区

  4. a) 日志缓冲区是用于存放重做日志的内存缓冲区。为了避免由于直接的磁盘IO而使系统性能受到影响,系统在运行过程中产生的日志并不会立即被写入磁盘,而是和数据页一样,先将其放置到日志缓冲区中。

  5. b) DM Server提供了参数RLOG_BUF_SIZE对日志缓冲区大小进行控制,日志缓冲区所占用的内存是从共享内存池中申请的,单位为页数量,且大小必须为2N次方,否则采用系统默认大小512

  6. e) 字典缓冲区

字典缓冲区主要存储一些数据字典信息,如模式信息、表信息、列信息、触发器信息等。每次对数据库的操作都会涉及到数据字典信息,访问数据字典信息的效率直接影响到相应的操作效率,如进行查询语句,就需要相应的表信息、列信息等,这些字典信息如果都在缓冲区里,则直接从缓冲区中获取即可,否则需要I/O才能读取到这些信息。

f) SQL缓冲区

提供在执行SQL语句过程中所需要的内存,包括计划、SQL语句和结果集缓存。很多应用当中都存在反复执行相同SQL语句的情况,此时可以使用缓冲区保存这些语句和它们的执行计划,这就是计划重用。计划重用加快了SQL语句的执行效率,但同时也给内存增加了压力,可以通过配置文件dm.ini的参数USE_PLN_POOL设置是否需要计划重用。

3SSD缓冲区

a) 固态硬盘采用闪存作为存储介质,因没有机械磁头的寻道时间,在读写效率上比机械磁盘具有优势。在内存、SSD磁盘、机械磁盘之间,符合存储分级的条件。为提高系统执行效率,DM ServerSSD文件作为内存缓存与普通磁盘之间的缓冲层,称为“SSD缓存

b) DM Server在的dm.ini中提供参数SSD_BUF_SIZESSD_FILE_PATH来配置SSD缓冲,SSD_BUF_SIZE指定缓冲区的大小,单位是MDM Server根据该参数创建相应大小的文件作为缓冲区使用;SSD_FILE_PATH指定该文件所在的文件夹路径,管理员需要保证设置的路径是位于固态磁盘上。

c) 默认SSD缓冲区是关闭的,即SSD_BUF_SIZE0。若要配置SSD缓冲区,将其设置为大于0的数并指定SSD_FILE_PATH即可。

   select para_name,para_value from v$dm_ini where para_name like 'SSD_BUF_SIZE';

4、   排序区

  1. a)  提供数据排序所需要的内存空间。当用户执行SQL语句时,常常需要进行排序,所使用的内存就是排序缓冲区提供的。在每次排序过程中,都首先申请内存,排序结束后再释放内存。

  2. b)  DM Server提供了参数来指定排序缓冲区的大小,参数SORT_BUF_SIZEDM配置文件dm.ini中,系统管理员可以设置其大小以满足需求,由于该值是由系统内部排序算法和排序数据结构决定,建议使用默认值2M

5、哈希区

  1. a)  提供了为哈希连接而设定的缓冲区,不过该缓冲区是个虚拟缓冲区。之所以说是虚拟缓冲,是因为系统没有真正创建特定属于哈希缓冲区的内存,而是在进行哈希连接时,对排序的数据量进行了计算。如果计算出的数据量大小超过了哈希缓冲区的大小,则使用DM8创新的外存哈希方式;如果没有超过哈希缓冲区的大小,实际上使用的还是VPOOL内存池来进行哈希操作。

  2. b)  DM Serverdm.ini中提供了参数HJ_BUF_SIZE来进行控制,由于该值的大小可能会限制哈希连接的效率,所以建议保持默认值,或设置为更大的值。DM Server还提供了创建哈希表个数的初始化参数,其中,HAGR_HASH_SIZE表示处理聚集函数时创建哈希表的个数,建议保持默认值100000

  3. c) HAGR_HASH_SIZEHJBUF_SIZE是用于控制哈希聚合(Hash Aggregation)和哈希连接(Hash Join)性能的两个内存参数。

  4. d) HAGR_HASH_SIZE:控制哈希聚合操作时,单个哈希表的内存大小。这个参数需要根据预计的聚合数据量进行设置,设置过小会导致哈希表需要多次溢出,增加CPU的使用和IO的频繁。设置过大会导致内存不足,影响查询性能。

  5. e) HJBUF_SIZE:控制哈希连接操作时,每个线程的哈希表内存大小。同样,这个参数也需要根据预计的连接数据量进行设置。

  6. f) 在达梦数据库中,这两个参数可以通过配置文件进行设置,通常在dm.ini配置文件中,或者通过动态参数修改。

例如,设置HAGR_HASH_SIZE256MBHJBUF_SIZE128MB

以上,既然看到这里了,如果觉得不错,随手点个赞,下次再见。

1、信创名单查询:

http://www.itsec.gov.cn/aqkkcp/cpgg/202409/t20240930_194299.html

http://www.itsec.gov.cn/aqkkcp/cpgg/202312/t20231226_162074.html

2、审计监控诊断优化

老白D-Smart, 借助他在健康监控、故障预警、问题诊断、定期巡检、专项审计等诸多自动化运维工作

微信DBAiop社区下载社区版

输入 《下载》 获得下载全部命令

输入 《下载7》 获得RHEL7/CENTOS 7绿色安装包

输入 《下载8》 获得RHEL8/CENTOS 8绿色安装包

输入 《docker》获得Docker版安装镜像安装包

海信聚好看的 DBdoctor,, 在对数据库几乎没有影响的情况下实时监控数据库和服务器的各项指标, 发现和诊断问题根因非常方便.

https://www.dbdoctor.cn/

3、集群管理软件

乘数开源的clup, 专门用来管理集群管理软件, 如果你要管理很多套数据库,自研的连接池、分布式存储、一体机、备份平台等, 企业可以关注一下.

https://github.com/apecloud/kubeblocks

4、数据同步&迁移&备份恢复

•NineData,老领导出去创业做的产品, 产品涵盖了数据同步、迁移、备份、比对、devopschatDBA.

https://www.ninedata.cloud/home

文章转载自黄宏亮数字,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论