一、概述
dminit 是 DM 数据库初始化工具。在安装 DM 的过程中,用户可以选择是否创建初始数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具 dminit 来创建。
系统管理员可以利用 dminit 工具提供的各种参数,设置数据库存放路径、段页大小、是否对大小写敏感、以及是否使用 UNICODE 等,创建出满足用户需要的数据库。该工具位于安装目录的 /bin 目录下。
二、使用dminit
dminit 工具需要从命令行启动。找到 dminit 所在安装目录 /bin,输入 dminit 和参数后回车,语法如下:
dminit KEYWORD=value { KEYWORD=value }
其中,KEYWORD是dminit 参数关键字。多个参数之间排列顺序无影响,参数之间使用空格间隔。value是参数取值。
(注意:dminit如果没有带参数或者必须的参数没有设置,系统会引导用户进行设置,如下图所示。参数、等号和值之间不能有空格,例如 PAGE_SIZE=16。HELP 参数的后面不用添加“=”号。)
如果我们要初始化一个数据库,放在 /home/test/dmdbms 目录下,数据页 PAGE_SIZE 大小为 16 K,以及两个必须的用户密码(之前有提到达梦8最新的安装包,在初始化实例时,新增了必须修改SYSDBA、SYSAUDITOR默认用户密码的要求)。
./dminit PATH=/home/test/dmdbms PAGE_SIZE=16 sysdba_pwd=Dameng123 sysauditor_pwd=Dameng123
如果创建成功,则屏幕显示如下:
此时在 /home/test/dmdbms 目录下会出现一个 DAMENG 文件夹,内容包含初始数据库 DAMENG 的相关文件和 DM 数据库启动所必须的配置文件 dm.ini。
初始化一个数据库时数据库的默认名就是DAMENG,所以如果我们想在同一目录下再初始化一个数据库,就必须在命令行中增加设置参数数据库名DB_NAME的指令。
三、dminit 参数
dminit 使用较为灵活,参数较多。用户可使用“dminit help”快速查看 dminit 版本信息和各参数信息。在安全版本和非安全版本中,dminit help 看到的参数略有不同。下面展示的为安全版本中 help 信息:
INI_FILE 初始化文件dm.ini存放的路径
PATH 初始数据库存放的路径
CTL_PATH 控制文件路径
LOG_PATH 日志文件路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE 日志文件大小(2048),单位为:M,范围为:256M ~ 8G
CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE 权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL],3[BAIST]
SYSDBA_PWD 设置SYSDBA密码
SYSAUDITOR_PWD 设置SYSAUDITOR密码
DB_NAME 数据库名(DAMENG)
INSTANCE_NAME 实例名(DMSERVER)
PORT_NUM 监听端口号(5236)
BUFFER 系统缓存大小(8000),单位M
TIME_ZONE 设置时区(+08:00)
PAGE_CHECK 页检查模式(3),可选值:0/1/2/3
PAGE_HASH_NAME 设置页检查HASH算法
EXTERNAL_CIPHER_NAME 设置默认加密算法
EXTERNAL_HASH_NAME 设置默认HASH算法
EXTERNAL_CRYPTO_NAME 设置根密钥加密引擎
RLOG_ENCRYPT_NAME 设置日志文件加密算法,若未设置,则不加密
RLOG_POSTFIX_NAME 设置日志文件后缀名,长度不超过10。默认为log,例如DAMENG01.log
USBKEY_PIN 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE 设置页加密分片大小,可选值:0、512、4096,单位:Byte
ENCRYPT_NAME 设置全库加密算法
BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH MAIN数据文件镜像
ROLL_MIRROR_PATH 回滚文件镜像路径
MAL_FLAG 初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG 初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL 初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE 是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH 是否使用改进的字符类型HASH算法(1)
ELOG_PATH 指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM 分布式环境下协同工作的监听端口
HUGE_WITH_DELTA 是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE 是否生成HUGE表REDO日志(1) 1:是 0:否
PSEG_MGR_FLAG 是否仅使用管理段记录事务信息(0) 1:是 0:否
CHAR_FIX_STORAGE CHAR是否按定长存储(N),可选值:Y/N,1/0
SQL_LOG_FORBID 是否禁止打开SQL日志(N),可选值:Y/N,1/0
DPC_MODE 指定DPC集群中的实例角色(0) 0:无 1:MP 2:BP 3:SP,取值1/2/3时也可以用MP/BP/SP代替
USE_DB_NAME 路径是否拼接DB_NAME(1) 1:是 0:否
MAIN_DBF_PATH MAIN数据文件存放路径
SYSTEM_DBF_PATH SYSTEM数据文件存放路径
ROLL_DBF_PATH ROLL数据文件存放路径
TEMP_DBF_PATH TEMP数据文件存放路径
ENC_TYPE 数据库内部加解密使用的加密接口类型(1), 可选值: 1: 优先使用EVP类型 0: 不启用EVP类型
HELP 打印帮助信息
以上参数太多了,我就不一一介绍,大家感兴趣的话可以去搜索相关内容仔细阅读,我就只介绍几个比较重要的,比如页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置,具体含义如下:
page_size:数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。可选参数。选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。
extent_size:数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。可选参数。
case_sensitive: 标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,系统比较函数会将大写字母全部转为小写字母再进行比较。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。
charset:字符集选项。取值范围 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0。可选参数。
BLANK_PAD_MODE:设置字符串比较时,结尾空格填充模式是否兼容 ORACLE。1:兼容;0:不兼容。缺省值为 0。可选参数。
PAGE_CHECK:PAGE_CHECK 为页检查模式。取值范围 0、1、2、3。0:禁用页校验;1:开启页校验并使用 CRC 校验;2:开启页校验并使用指定的 HASH 算法进行校验;3:开启页校验并使用快速 CRC 校验。缺省值为 3。可选参数。
建库完成后,在 DM 服务器运行期间,可以通过查询 V$DM_INI 动态视图查看建库参数的具体信息,如下图所示:
有些参数在 V$DM_INI 中查询不到,可以使用系统函数来查看,比如可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小,该函数返回的值是字节单位,因此可以通过除以1024将其转换为KB单位,如下图所示:
还有其他一些系统函数,比如,通过系统函数 SF_GET_EXTENT_SIZE()获取系统的簇大小;通过系统函数 SF_GET_CASE_SENSITIVE_FLAG()或 CASE_SENSITIVE()查询设置的参数值;通过系统函数 SF_GET_UNICODE_FLAG()或 UNICODE()查询设置的参数值。
社区地址:https://eco.dameng.com