注册
达梦数据库学习03:dminit实例初始化参数学习
技术分享/ 文章详情 /

达梦数据库学习03:dminit实例初始化参数学习

Hi70KG 2023/08/08 2586 1 0

dminit实例初始化参数学习

操作系统环境

# cat /etc/*-release Kylin Linux Advanced Server release V10 (Sword) DISTRIB_ID=Kylin DISTRIB_RELEASE=V10 DISTRIB_CODENAME=juniper DISTRIB_DESCRIPTION="Kylin V10" DISTRIB_KYLIN_RELEASE=V10 DISTRIB_VERSION_TYPE=enterprise DISTRIB_VERSION_MODE=normal NAME="Kylin Linux Advanced Server" VERSION="V10 (Sword)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)" ANSI_COLOR="0;31" Kylin Linux Advanced Server release V10 (Sword) # uname -ra Linux DCA 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux

DM数据库版本

SQL> select DB_VERSION,BUILD_VERSION from v$instance; DB_VERSION BUILD_VERSION ------------------- ----------------------------------- DB Version: 0x7000c 1-3-12-2023.04.17-187846-20040-ENT

LOG_SIZE

该参数控制日志文件使用的簇大小,以 M为单位, 默认每个日志文件大小为 256M,可以配置为64和 2048之间的整数。 如果设置过小,更新等较大的事务,可能会导致redo log 频繁切换,从而影响数据库性能。 推荐值:2048M。

查询当前数据库LOG_SIZE大小

SQL> select PATH,RLOG_SIZE/1024/1024 MB from v$rlogfile; 行号 PATH MB ---------- ------------------------- -------------------- 1 /dm8/data/DM01/DM0101.log 2048 2 /dm8/data/DM01/DM0102.log 2048

PAGE_SIZE

数据文件使用的页大小,可以为 4K、8K、 16K或 32K之一,选择的页大小越大,则 DM支持的元组长度也越大,但同时空间利用率可能下降,因为每次新分配的块体积变大,耗费时间也越长,该参数默认是8K。只能是 4K、8K、16K或32K之一。

推荐是32k的页,虽然大页会导致IO的增加,空间利用率下降,新版本优化后性能并没有太大影响,反而应用兼容性更好

查询当前数据库PAGE_SIZE大小

[dmdba@localhost /dm8/data/DM01 2023-08-08 12:08:56]
$ cat dminit20230803210515.log|grep "page size" 
	page size: 32768

EXTENT_SIZE

该参数控制数据文件使用的簇大小,即每次分配新的段空间时连续的页数,默认是16页,只能配置16页、32页、64页之一,生产环境推荐使用32页。即每次扩容 32*PAGE_SIZE。

查询当前数据库extent size大小

[dmdba@localhost /dm8/data/DM01 2023-08-08 12:05:40] $ cat dminit20230803210515.log|grep "extent size" extent size: 32

大小写敏感参数(CASE_SENSITIVE)

CASE_SENSITIVE有 0 和 1 两个值,分别代表不同含义。

  • CASE_SENSITIVE = 1 代表数据库对大小写敏感,会将A和a当成两个不同的字符对待,小写的标识符应用""括起,否则被系统自动转换为大写,只有""中的内容是严格区分大小写的,其他都会默认转换成大写。初始化数据库时,如不指定CASE_SENSITIVE值,默认为 1,数据库大小写敏感。
  • CASE_SENSITIVE = 0 表示数据库对大小写不敏感,会将A和a看作是相同的字符,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。表名、列名、字符串内容全部忽略大小写,无论大写、小写、是否加双引号都不影响。通俗来说,就是大小写不敏感时无论大小写都是一样的

另外,在使用disql查询工具进行查询时,默认会将小写转为大写。

查询数据库大小写是否敏感

SQL> select decode(case_sensitive,1,'大小写敏感','大小写不敏感'); DECODE(CASE_SENSITIVE,1,'大小写敏感','大小写不敏感') ---------------------------------------------------- 大小写敏感

字符集编码(CHARSET/UNICODE_FLAG)

字符集选项, 取值: 0 代表 GB18030, 1 代表 UTF-8, 2 代表韩文字符集 EUC-KR。 默认为 0

查询当前数据库字符集编码

SQL> select sf_get_unicode_flag(); SF_GET_UNICODE_FLAG() --------------------- 0 已用时间: 1.848(毫秒). 执行号:1004. SQL> select unicode(); UNICODE() ----------- 0 已用时间: 1.195(毫秒). 执行号:1005.

VARCHAR类型长度是否以字符为单位(LENGTH_IN_CHAR)

1 或 Y:是, 所有 VARCHAR 类型对象的长度以字符为单位。 这种情况下, 定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为 8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过 8188;

0 或 N:否,所有 VARCHAR 类型对象的长度以字节为单位。默认是0。

该参数影响的仅仅是VARCHAR数据类型,对CHAR类型不影响。

查询LENGTH_IN_CHAR参数

SQL> select para_name,para_value from v$dm_ini where para_name='LENGTH_IN_CHAR'; 行号 PARA_NAME PARA_VALUE ---------- -------------- ---------- 1 LENGTH_IN_CHAR 0

空格填充模式参数(BLANK_PAD_MODE)

该参数在整个实例生命周期内是不能被修改的,若要修改,只能重建数据库。设置字符串比较时, 结尾空格填充模式是否兼容 ORACLE。 取值: 1 兼容; 0 不兼容。默认为 0。

当BLANK_PAD_MODE=0时,除去group by 这种分组操作时严格区分外,其他比较、count等操作不严格区分'a'和'a ',认为这两个字符串是相等的

查询空格填充模式参数是否兼容Oracle模式

SQL> select para_name,para_value from v$dm_ini where para_name='BLANK_PAD_MODE'; PARA_NAME PARA_VALUE -------------- ---------- BLANK_PAD_MODE 0 已用时间: 6.584(毫秒). 执行号:1008. SQL> select blank_pad_mode(); BLANK_PAD_MODE() ---------------- 0

区分字符串结尾空格参数(SPACE_COMPARE_MODE)

space_compare_mode参数是一静态参数,在初始化数据库后可进行修改,修改后需重启数据库,初始化数据库后space_compare_mode默认值是 0。

当SPACE_COMPARE_MODE=0时,除去group by 类似操作严格区分外,其他操作不严格区分。

space_compare_mode 有 0 和 1 两个值。

  • SPACE_COMPARE_MODE = 0 代表维持原有的数据库策略,默认值
  • SPACE_COMPARE_MODE = 1 代表会对结尾空格进行比较

查询SPACE_COMPARE_MODE参数值

SQL> select para_name,para_value from v$dm_ini where para_name='SPACE_COMPARE_MODE'; PARA_NAME PARA_VALUE ------------------ ---------- SPACE_COMPARE_MODE 0

除以上参数会影响到具体的使用外,还有默认加密算法、默认HASH算法、根密钥加密引擎、全库加密算法、是否使用改进的字符类型HASH算法(USE_NEW_HASH)等参数也是实例生命周期内不允许修改的,这些参数只会在做备份还原时要求一致性,对实际使用影响不大,可根据需求定义即可。
达梦社区技术https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服