达梦数据库 dminit 初始化工具常用参数详解
在达梦数据库的部署过程中,数据库初始化是承上启下的关键一步。它决定了数据库的字符集、页大小、大小写敏感等核心属性——而这些属性一旦设定,后续无法修改。因此,理解dminit的常用参数,是每一位 DM 数据库管理员的必修课。
dminit是达梦数据库的命令行初始化工具,位于安装目录的/bin下。它的核心功能是创建一个初始数据库,生成包括dm.ini(配置文件)、数据文件(.dbf)、控制文件(.ctl)和重做日志文件(.log)在内的一套完整数据库文件。
与图形化的dbca工具相比,dminit更适合批量部署和脚本化运维场景。使用前可通过./dminit HELP查看所有参数的详细说明。
使用格式:参数、等号和值之间不能有空格,例如PAGE_SIZE=32。
PATH(必选参数)
含义:初始数据库存放的根目录。
说明:所有数据文件、控制文件、日志文件和配置文件都会生成在该目录下。默认路径为dminit当前所在的工作目录。
示例:
PATH=/home/dmdba/dmdbms/data
提示:建议将数据目录与操作系统、安装目录分开存放,便于管理和备份。
LOG_PATH(可选参数)
含义:重做日志文件的存放路径。
说明:每个 DM 数据库实例至少需要两个重做日志文件,默认命名为<库名>01.log和<库名>02.log。如果不指定LOG_PATH,日志文件默认存放在PATH/DB_NAME/目录下。日志文件路径个数不能超过 10 个。
示例(指定两个日志文件):
LOG_PATH=/home/dmdba/dmdbms/data/DAMENG01.log LOG_PATH=/home/dmdba/dmdbms/data/DAMENG02.log
注意:日志文件的大小由LOG_SIZE参数统一控制,每个日志文件大小相同。
PAGE_SIZE(不可修改)
含义:数据页大小,取值范围为 4、8、16、32,单位KB。
默认值:8 KB。
说明:页大小是达梦数据库中最重要的初始化参数之一,因为一旦设定无法更改。页大小越大,单行记录能存储的字段总长度就越大,但空间利用率可能下降。一个关键的限制是:除去 CLOB、BLOB 等大字段外,一行记录的所有字段的实际长度之和不能超过页大小的一半。
生产环境建议:除非有特殊原因,建议设置为32 KB,避免后期数据迁移或开发过程中出现“记录超长”的问题。
EXTENT_SIZE(不可修改)
含义:数据文件使用的簇大小,即每次分配新的段空间时连续的页数。
取值范围:16、32、64,单位:页数。
默认值:16。
说明:簇是 DM 数据库空间分配的基本单位,同样在数据库创建后无法修改。较大的簇大小可以减少空间分配的频率,提升批量插入的性能,但也可能造成小表的空间浪费。一般建议使用默认值 16 或 32。
LOG_SIZE(可后续调整)
含义:每个重做日志文件的大小。
取值范围:256 MB ~ 8192 MB(64 位版本)。
默认值:64 位系统默认为4096 MB。
说明:LOG_SIZE设置的是每个重做日志文件的大小,所有日志文件大小相同。与PAGE_SIZE不同,LOG_SIZE在数据库创建后可以通过ALTER DATABASE语句进行调整。
生产环境建议:正式环境建议设置为2048 MB或更高。过小的日志文件会导致频繁的日志切换,影响性能。
CASE_SENSITIVE(不可修改)
含义:标识符(如表名、列名)是否大小写敏感。
取值范围:Y/y/1表示敏感,N/n/0表示不敏感。
默认值:Y(大小写敏感)。
说明:这是另一个极其重要且不可修改的参数。在大小写敏感模式下,小写的标识符需要用双引号括起,否则会被系统自动转换为大写。在大小写不敏感模式下,系统不会转换字符的大小写。
迁移建议:
从Oracle、DB2迁移 → 保持默认敏感(Y)
从SQL Server、MySQL迁移 → 设置为不敏感(N)
如果设置不当,后续查询时表名、字段名的大小写问题会非常令人头疼。
CHARSET / UNICODE_FLAG(不可修改)
含义:数据库的字符集。
取值范围:
0:GB18030(支持 GB18030-2022 版本)
1:UTF-8(支持 UNICODE 12.0 版本)
2:韩文字符集 EUC-KR
默认值:0(GB18030)。
说明:字符集同样在数据库创建后无法修改。如果要从其他数据库迁移数据,字符集必须与源数据库保持一致。此外,当CHARSET=0(GB18030)时,不可与CASE_SENSITIVE=N同时使用。
迁移建议:如果源库是 Oracle 且使用了 AL32UTF8 字符集,建议设置CHARSET=1(UTF-8)。
DB_NAME(不可修改)
含义:数据库名称。
默认值:DAMENG。
命名规则:只能由_、$、大写字母 A-Z、小写字母 a-z、数字 0-9 组成,且第一个字符不能是数字,长度不超过 128 个字符。
注意:数据库名称不可修改,初始化时需慎重选择。
INSTANCE_NAME(可修改)
含义:数据库实例名称。
默认值:DMSERVER。
命名规则:与DB_NAME相同,但长度不超过 16 个字符。
说明:与DB_NAME不同,INSTANCE_NAME在数据库创建后可以通过修改dm.ini中的INSTANCE_NAME参数进行调整。
注意:在多实例环境中,实例名称必须唯一。
PORT_NUM(可修改)
含义:数据库服务器的监听端口号。
取值范围:1024 ~ 65534。
默认值:5236。
说明:如果同一台服务器上部署多个 DM 实例,必须为每个实例分配不同的端口号。PORT_NUM在数据库创建后可以通过修改dm.ini中的PORT_NUM参数进行调整。
以下是一个完整的dminit初始化命令示例,涵盖了上述所有常用参数:
./dminit PATH=/dmdata \
PAGE_SIZE=32 \
EXTENT_SIZE=32 \
LOG_SIZE=2048 \
CASE_SENSITIVE=1 \
CHARSET=1 \
DB_NAME=DMDB \
INSTANCE_NAME=DMSERVER \
PORT_NUM=5236 \
SYSDBA_PWD=DMdba_123 \
SYSAUDITOR_PWD=DMauditor_123
说明:实际使用时,请根据业务需求替换密码和路径,并将命令写在一行(或使用\换行)。
参数 默认值 是否可修改 一句话建议
PATH 当前目录 ❌ 指定数据存放根目录
PAGE_SIZE 8 KB ❌ 生产环境建议 32 KB
EXTENT_SIZE 16 页 ❌ 建议保持默认或 32
LOG_SIZE 4096 MB ✅ 生产环境建议 2048 MB 以上
CASE_SENSITIVE Y(敏感) ❌ 根据源库类型慎重选择
CHARSET 0(GB18030) ❌ 与源库保持一致
DB_NAME DAMENG ❌ 数据库名称,不可更改
INSTANCE_NAME DMSERVER ✅ 实例名称,多实例需唯一
PORT_NUM 5236 ✅ 多实例需不同端口
最重要的提醒
达梦数据库的初始化是一次性的。PAGE_SIZE、EXTENT_SIZE、CASE_SENSITIVE、CHARSET、DB_NAME等参数一旦设定,后续无法通过任何方式修改。如果在初始化时对这些参数理解不足、设置不当,唯一的解决办法就是删除数据库文件,重新初始化——在生产环境中,这往往意味着巨大的代价。
因此,在执行dminit之前,请务必确认每一个参数的含义和取值,做到“一次做对”。
希望本文能帮助你在达梦数据库初始化时少走弯路。如果在实际使用中遇到问题,欢迎留言交流。
文章
阅读量
获赞
