注册
DM8 dminit初始化工具介绍及使用
专栏/技术分享/ 文章详情 /

DM8 dminit初始化工具介绍及使用

DM_271235 2023/07/17 1547 0 0
摘要

dminit介绍
dminit 是 DM 数据库初始化工具。在安装 DM 的过程中,用户可以选择是否创建初始数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具 dminit 来创建。可以利用 dminit 工具提供的各种参数,设置数据库存放路径、段页大小、 是否对大小写敏感、以及是否使用 UNICODE 等,创建出满足用户需要的数据库。该工具位于安装目录的/bin 目录下。
dminit语法如下

dminit工具需要从命令行启动。找到 dminit 所在安装目录/bin,输入 dminit 和参数后回车。
语法如下: 
dminit KEYWORD=value { KEYWORD=value } 
KEYWORD:dminit 参数关键字。多个参数之间排列顺序无影响,参数之间使用空格间隔。 
value:参数取值。

查看dminit参数

cd $DM_HOME/bin
使用./dminit help 可以查看dminit的参数。
[dmdba@Kylin01 ~]$ dminit help
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
version: 03134283968-20230322-185138-20033 Pack9
格式: ./dminit     KEYWORD=value

例子: ./dminit     PATH=/public/dmdb/dmData PAGE_SIZE=16
关键字                     说明(默认值)
--------------------------------------------------------------------------------
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                   日志文件大小(256),单位为:M,范围为:256M ~ 2G
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[ZB]
LENGTH_IN_CHAR             VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD                 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD             设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME                    数据库名(DAMENG)
INSTANCE_NAME              实例名(DMSERVER)
PORT_NUM                   监听端口号(5236)
BUFFER                     系统缓存大小(100),单位M
TIME_ZONE                  设置时区(+08:00)
PAGE_CHECK                 页检查模式(1),可选值:0/1/2
PAGE_HASH_NAME             设置页检查HASH算法
EXTERNAL_CIPHER_NAME       设置默认加密算法
EXTERNAL_HASH_NAME         设置默认HASH算法
EXTERNAL_CRYPTO_NAME       设置根密钥加密引擎
RLOG_ENCRYPT_NAME          设置日志文件加密算法,若未设置,则不加密
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                分布式环境下协同工作的监听端口
DFS_FLAG                   初始化时设置dm.ini中的DFS_INI(0)
DFS_PATH                   启用dfs时指定数据文件的缺省路径
DFS_HOST                   指定连接分布式系统DFS的服务地址(localhost)
DFS_PORT                   指定连接分布式系统DFS的服务端口号(3332)
DFS_COPY_NUM               指定分布式系统的副本数(3)
DFS_DB_NAME                指定分布式系统的中数据库名(默认与DB_NAME一致)
SHARE_FLAG                 指定分布式系统中该数据库的共享属性(0)
REGION_MODE                指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略
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代替
HELP                       打印帮助信息

重点参数详解
PATH

初始数据库存放的路径。默认路径为 dminit.exe/dminit 当前所在的工作目录。文件路径长 度最大为 256 个字符。可选参数。

LOG_PATH

初始数据库日志文件的路径。默认值 Windows 下为 PATH\DB_NAME\DB_NAME01.log和PATH\DB_NAME\DB_NAME02.log,Linux 下为 PATH/DB_NAME/DB_NAME01.log和PATH/DB_NAME/DB_NAME02.log(PATH 和 DB_NAME 表示各自设置的值)。文件路径长度 最大为 256 个字符。日志文件路径个数不能超过 10 个。可选参数。 
修改日志文件大小可以使用 LOG_SIZE 参数。 例如,创建一个数据库,包含两个日志文件 DATA01.log 和 DATA02.log。 
./dminit PATH=/home/dest/dmdbms LOG_PATH=/home/dest/dmdbms/DATA01.log 
LOG_PATH=/home/dest/dmdbms/DATA02.log

PAGE_SIZE

数据文件使用的页大小。取值:4、8、16、32,单位:K。默认值为 8。可选参数。 
选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。

LOG_SIZE

重做日志文件大小。取值:64~2048 之间的整数,单位 M。默认值为 256。可选参数。 每个 DM 数据库实例至少有两个重做日志文件,循环使用,LOG_SIZE 设置每个重做日志文件的大小。 
修改日志文件路径可以使用 LOG_PATH 参数。

CASE_SENSITIVE

标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。默认值为 Y。可选参数。

CHARSET/UNICODE_FLAG

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

DB_NAME

初始化数据库名称,默认为 DAMENG。名称为字符串,长度不能超过 128 个字符。可选
参数。文件名不能包含字符‘/’‘\’‘<’‘>’‘:’‘*’‘?’‘|’‘'’‘"’。

INSTANCE_NAME

初始化数据库名称,默认为 DAMENG。名称为字符串,长度不能超过 128 个字符。可选
参数。文件名不能包含字符‘/’‘\’‘<’‘>’‘:’‘*’‘?’‘|’‘'’‘"’。

CTL_PATH

初始数据库控制文件的路径,默认值 Windows 下为 PATH\DB_NAME\dm.ctl,Linux 下为/PATH/DM_NAME/dm.ctl(PATH 和 DB_NAME 表示各自设置的值)。文件路径长度最大为 256 个字符。可选参数。

EXTENT_SIZE

数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值:16、32、64。单位:页数。缺省值 16。可选参数。 

SYSDBA_PWD

初始化时设置 SYSDBA 的密码,默认为 SYSDBA。密码长度为 9~48 个字符。可选参数。 

SYSAUDITOR_PWD

初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR。密码长度为 9~48 个字符。可选参数。

PORT_NUM

初始化时设置 dm.ini 中的数据库服务器监听端口号,默认 5236。服务器配置此参数,有效值范围(1024~65534),发起连接端的端口在 1024~65535 之间随机分配。可选参数。 

BUFFER

系统缓存大小,以 M 为单位。推荐值:系统缓冲区大小为可用物理内存的 60%~80%。有效值范围(8~1048576),缺省值为 100。可选参数。

TIME_ZONE

初始化时区,默认为东八区(+08:00)。格式为[正负号]小时[:分钟],其中,正负号和分钟为可选项。时区设置范围为:-12:59~+14:00。可选参数。

ARCH_FLAG

初始化时设置 dm.ini 中的 ARCH_INI 值。取值 0 或 1。默认值为 0。可选参数。1 表示 ARCH_INI=1,启用归档。同时,需要配置 dmarch.ini 文件。 
0 表示 ARCH_INI=0,不启用归档。 

初始化数据库
1)使用dminit初始化一个数据库,数据库放在/dm/dmtestdb目录下,数据页 PAGE_SIZE大小为16K。

su - dmdba
创建存放数据库的目录:
mkdir -p /dm/dmtestdb
[dmdba@Kylin01 dmtestdb]$ cd /dm/dmdbms/dm8/bin/
[dmdba@Kylin01 bin]$ ./dminit path=/dm/dmtestdb LOG_PATH=/dm/dmtestdb/testdb/testdb01.log LOG_PATH=/dm/dmtestdb/testdb/testdb02.log LOG_PATH=/dm/dmtestdb/testdb/testdb03.log CASE_SENSITIVE=1 CHARSET=0 db_name=testdb instance_name=testdbServer port_num=5237 LOG_SIZE=512 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dm/dmtestdb/testdb/testdb01.log


 log file path: /dm/dmtestdb/testdb/testdb02.log


 log file path: /dm/dmtestdb/testdb/testdb03.log

write to dir [/dm/dmtestdb/testdb].
create dm database success. 2023-07-16 12:02:45
如果创建成功,则屏幕显示如下:
initdb V8
db version: 0x7000c
。。。。。。
create dm database success. 2023-07-16 12:02:45
此时在/dm/dmtestdb目录下会出现一个testdb文件夹,包含初始数据库 testdb的相关文件和 DM 数据库启动所必须的配置文件 dm.ini。 
[dmdba@Kylin01 bin]$ ls -rlt /dm/dmtestdb/testdb/
总用量 1845336
drwxr-xr-x 2 dmdba dinstall         6  7月 16 12:02 bak
-rw-r--r-- 1 dmdba dinstall       686  7月 16 12:02 sqllog.ini
-rw-r--r-- 1 dmdba dinstall     67417  7月 16 12:02 dm.ini
-rw-r--r-- 1 dmdba dinstall 536870912  7月 16 12:02 testdb01.log
-rw-r--r-- 1 dmdba dinstall 536870912  7月 16 12:02 testdb02.log
-rw-r--r-- 1 dmdba dinstall 536870912  7月 16 12:02 testdb03.log
-rw-r--r-- 1 dmdba dinstall      5632  7月 16 12:02 dm.ctl
drwxr-xr-x 2 dmdba dinstall        42  7月 16 12:02 ctl_bak
-rw-r--r-- 1 dmdba dinstall       633  7月 16 12:02 dm_service.prikey
-rw-r--r-- 1 dmdba dinstall 134217728  7月 16 12:02 MAIN.DBF
-rw-r--r-- 1 dmdba dinstall 134217728  7月 16 12:02 ROLL.DBF
drwxr-xr-x 2 dmdba dinstall         6  7月 16 12:02 HMAIN
-rw-r--r-- 1 dmdba dinstall  10485760  7月 16 12:02 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall      1062  7月 16 12:02 dminit20230520120243.log

2)后台启动dmserver服务

[dmdba@Kylin01 ~]$ cd /dm/dmdbms/dm8/bin
[dmdba@Kylin01 bin]$ nohup ./dmserver /dm/dmtestdb/testdb/dm.ini &
[1] 2653
[dmdba@Kylin01 bin]$ nohup: 忽略输入并把输出追加到'nohup.out'

3)验证数据库初始化配置相关信息

查看达梦数据库进程:
[dmdba@Kylin01 bin]$ ps -ef|grep dms
dmdba       1310       1  0 20:23 ?        00:00:02 /dm/dmdbms/dm8/bin/dmserver path=/dm/dmdata/CB/dm.ini -noconsole
dmdba       2653    2557  7 20:47 pts/0    00:00:00 ./dmserver /dm/dmtestdb/testdb/dm.ini
dmdba       2727    2557  0 20:47 pts/0    00:00:00 grep dms
查看数据库端口:
[dmdba@Kylin01 bin]$ ss -ntpla|grep 5237
LISTEN    0         128                      *:5237                   *:*        users:(("dmserver",pid=2653,fd=5))   
查看db_name和数据库状态:
SQL> select NAME,STATUS$ from  v$database;

行号     NAME   STATUS$    
---------- ------ -----------
1          testdb 4     
testdb为db_name,STATUS$ 4代表open状态。
查看实例名和状态:
SQL> select NAME,INSTANCE_NAME,DB_VERSION,STATUS$,MODE$ from v$instance;

行号     NAME         INSTANCE_NAME DB_VERSION          STATUS$ MODE$ 
---------- ------------ ------------- ------------------- ------- ------
1          TESTDBSERVER TESTDBSERVER  DB Version: 0x7000c OPEN    NORMAL
查看字符集:
SQL>  select sf_get_unicode_flag();

行号     SF_GET_UNICODE_FLAG()
---------- ---------------------
1          0
SQL> select unicode();

行号     UNICODE()  
---------- -----------
1          0
注意:0 表示GB18030,1表示 UTF-8,2表示EUC-KR。
字符集在创建实例时指定,设定后不可更改,如果需要变更字符集,只能重建实例。
查看页大小:
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE from v$parameter where NAME='GLOBAL_PAGE_SIZE';

行号     NAME             TYPE      VALUE SYS_VALUE FILE_VALUE
---------- ---------------- --------- ----- --------- ----------
1          GLOBAL_PAGE_SIZE READ ONLY 16384 16384     8192
查看redo log日志文件:
SQL> select GROUP_ID,FILE_ID,PATH,CLIENT_PATH,RLOG_SIZE/1024/1024||'M' from v$rlogfile;

行号     GROUP_ID    FILE_ID     PATH                             CLIENT_PATH  RLOG_SIZE/1024/1024||'M'
---------- ----------- ----------- -------------------------------- ------------ ------------------------
1          2           0           /dm/dmtestdb/testdb/testdb01.log testdb01.log 512M
2          2           1           /dm/dmtestdb/testdb/testdb02.log testdb02.log 512M
3          2           2           /dm/dmtestdb/testdb/testdb03.log testdb03.log 512M
查看数据库存放路径:
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE from v$parameter where NAME='SYSTEM_PATH';

行号     NAME        TYPE      VALUE               SYS_VALUE           FILE_VALUE         
---------- ----------- --------- ------------------- ------------------- -------------------
1          SYSTEM_PATH READ ONLY /dm/dmtestdb/testdb /dm/dmtestdb/testdb /dm/dmtestdb/testdb

查询大小写敏感参数:
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE from v$parameter where NAME='GLOBAL_STR_CASE_SENSITIVE';

行号     NAME                      TYPE      VALUE SYS_VALUE FILE_VALUE
---------- ------------------------- --------- ----- --------- ----------
1          GLOBAL_STR_CASE_SENSITIVE READ ONLY 1     1         1

4)安装配置达梦服务

su - root
[root@Kylin01 ~]# cd /dm/dmdbms/dm8/script/root
[root@Kylin01 root]# ./dm_service_installer.sh --help
[root@Kylin01 root]# ./dm_service_installer.sh -t dmserver -p testdb -dm_ini /dm/dmtestdb/testdb/dm.ini
Created symlink /etc/systemd/system/multi-user.target.wants/DmServicetestdb.service → /usr/lib/systemd/system/DmServicetestdb.service.
创建服务(DmServicetestdb)完成
用服务方式启动达梦数据库:
[dmdba@Kylin01 ~]$ DmServicetestdb start
Starting DmServicetestdb:                                  [ OK ]
[dmdba@Kylin01 ~]$ DmServicetestdb status
DmServicetestdb (pid 3021) is running.
[dmdba@Kylin01 ~]$ disql sysdba/dameng123:5237

服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 2.434(ms)
disql V8
SQL> select NAME,STATUS$ from  v$database;

行号     NAME   STATUS$    
---------- ------ -----------
1          testdb 4

已用时间: 1.972(毫秒). 执行号:500.
SQL> 

达梦在线服务平台:https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服