已索引

开启审计(等保、监管)

$disql SYSAUDITOR/xxxx
SQL> SP_SET_ENABLE_AUDIT(1); --- 立即生效

开启 SQL 日志(问题分析、追踪)

$ vim /dmdb/dmdata/DMDB/sqllog.ini
$ disql SYSDBA/xxxx
SQL> sp_set_para_value(1,'SVR_LOG',1);
SQL> SP_REFRESH_SVR_LOG_CONFIG();

修改内存分配器为 libjemalloc

# rpm  -ivh  jemalloc*.rpm
# vim /dmdb/dmdbms/bin/DmServiceDM
……
### END INIT INFO
export LD_PRELOAD="/usr/lib64/libjemalloc.so.2"
DM_HOME="/home/dmdba/dmdbms"
……
# lsof -p 1707 | grep -i mall
dmserver 1707 dmdba  mem    REG  253,0     703520   5373873 /usr/lib64/libjemalloc.so.2

修改如下参数

  • 'CALC_AS_DECIMAL' = 1;
    默认值为 0,默认值为0时 select round(5/7,2) 这类计算会返回 0.
  • 'TEMP_SPACE_LIMIT' = 30720;
    30G无论如何都够了,一表通最大使用8G,PAS最大使用22G。
  • 'PWD_POLICY' = 31
    调整密码强度策略,满足等保和监管要求。
  • 开启延迟段分配
    DEFERRED_SEGMENT_CREATION'=1

Oracle 字符集是 GBK,块大小是 8,达梦字符集是 UTF8,块大小是 32。
NCRS 系统在 Oracle 里通过 dba_segments 统计出来的数据量是 24.45G。
DTS 迁移时使用x2,达梦新建的表空间使用量是 90G,不使用 x2,是 86G。
在达梦数据库开启延迟段分配后,达梦新建的表空间使用量是 32G。
该用户有很多空白分区,段的数量为 58397,页大小是32K,一个 extent 是 32 个页。
所以一个空表或者分区也会占用 1M ,在 0 数据量的情况下就是 57G。

-- By 许望(RHCA、OCM、VCP)
最后修改:2026 年 09 月 11 日 03 : 09 PM
如果觉得我的文章对你有用,请随意赞赏