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!
License will expire on 2024-03-22
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
初始化数据库实例名称,默认为 DMSERVER。名称为字符串,长度不能超过 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,不启用归档。
初始化数据库:
使用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!
License will expire on 2024-03-22
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-05-20 12:02:45
如果创建成功,则屏幕显示如下:
initdb V8
db version: 0x7000c
。。。。。。
create dm database success. 2023-05-20 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 5月 20 12:02 bak
-rw-r--r-- 1 dmdba dinstall 686 5月 20 12:02 sqllog.ini
-rw-r--r-- 1 dmdba dinstall 67417 5月 20 12:02 dm.ini
-rw-r--r-- 1 dmdba dinstall 536870912 5月 20 12:02 testdb01.log
-rw-r--r-- 1 dmdba dinstall 536870912 5月 20 12:02 testdb02.log
-rw-r--r-- 1 dmdba dinstall 536870912 5月 20 12:02 testdb03.log
-rw-r--r-- 1 dmdba dinstall 5632 5月 20 12:02 dm.ctl
drwxr-xr-x 2 dmdba dinstall 42 5月 20 12:02 ctl_bak
-rw-r--r-- 1 dmdba dinstall 633 5月 20 12:02 dm_service.prikey
-rw-r--r-- 1 dmdba dinstall 134217728 5月 20 12:02 MAIN.DBF
-rw-r--r-- 1 dmdba dinstall 134217728 5月 20 12:02 ROLL.DBF
drwxr-xr-x 2 dmdba dinstall 6 5月 20 12:02 HMAIN
-rw-r--r-- 1 dmdba dinstall 10485760 5月 20 12:02 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall 1062 5月 20 12:02 dminit20230520120243.log
后台启动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'
查看达梦数据库进程:
[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
安装达梦服务:
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