实例初始化参数说明
1.功能简介
dminit 是DM 数据库初始化工具。在安装DM 的过程中,用户可以选择是否创建初始数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具dminit 来创建。
系统管理员可以利用dminit 工具提供的各种参数,设置数据库存放路径、段页大小、是否对大小写敏感、以及是否使用UNICODE 等,创建出满足用户需要的数据库。该工具位于安装目录的/bin 目录下。
2.使用dminit
dminit 工具需要从命令行启动。找到dminit 所在安装目录/bin,输入 dminit 和参数后回车。参数在下一节详细介绍。
语法如下:
dminit KEYWORD=value { KEYWORD=value }
KEYWORD:dminit 参数关键字。多个参数之间排列顺序无影响,参数之间使用空格间隔。
例如,初始化一个数据库,放在/home/test/dmdbms 目录下,数据页 PAGE_SIZE 大小为 16K。
./dminit path=/data/dmdata page_size=16
此时在/data/dmdata目录下出现一个DAMENG文件夹,内容包含初始数据库DAMENG相关文件和数据库启动所必须的配置文件DM.INI.
3.dminit参数查看
dminit使用比较灵活,参数比较多,用户可以使用 DMINIT help 快速查看各个参数信息。
[dmdba@localhost bin]$ ./dminit help
4.参数的讲解
4.1 ini_file
初始化文件dm.ini 存放的路径,指定一个已经存在的dm.ini 文件所在的绝对路径。作用是将现有INI 文件,拷贝到新库,作为新库的INI 文件直接使用。文件路径长度最大为256 个字符。可选参数。
如果不指定该参数,那么dminit 工具会直接生成一个新的dm.ini 文件。如果指定了该参数但指定的INI 文件不存在,那么dminit 工具会报错无效的INI 文件,同时生成一个新的dm.ini 文件。
例 如 , 指 定 现 有/data/dmdata/DAMENG库 中dm.ini , 给 新 创 建 的/home/dest/dmdbms 库使用。
[dmdba@localhost bin]$ ./dminit ini_file=/data/dmdata/DAMENG/dm.ini path=/data/dmdata1/
4.2 path
初始数据库存放的路径。默认路径为dminit.exe 当前所在的工作目录。文件路径长度最大为256 个字符。可选参数。
4.3 ctl_path
初始数据库控制文件的路径,默认值Windows 下为PATH\DB_NAME\dm.ctl,Linux下为/PATH/DM_NAME/dm.ctl(PATH 和DB_NAME 表示各自设置的值)。文件路径长度最大为256 个字符。可选参数 注明:path 是上面一个path参数路径,db_name 是后面讲到的数据库名称参数。
4.4 log_path
初始数据库日志文件的路径。默认值
修改日志文件大小可以使用
例如:创建一个数据库,包含2个日志文件data01.log和data01.log
[dmdba@localhost bin]$ ./dminit PATH=/home/dest/dmdbms LOG_PATH=/home/dest/dmdbms/DATA01.log LOG_PATH=/home/dest/dmdbms/DATA02.log
4.5 extent_size
数据文件使用的簇大小,取值:16,32,64 , 单位:页数。缺失值:16 ,可选参数。 类似oracle 的段大小。
4.6 page_size
数据文件使用的页大小。取值:4、8、16、32,单位:K。默认值为8。可选参数。选择的页大小越大,则DM 支持的元组长度也越大,但同时空间利用率可能下降.
类似oracle 的块大小。
4.7 log_size
重做日志文件大小。取值:64到2048.单位:M ,默认值:256.
每个实例数据库实例至少有2个重做日志文件,循环使用,log_size设置每个重做日志文件的大小。
修改日志文件啊路径使用log_path参数。
4.8 case_sensitive
标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。默认值为Y。可选参数。
4.9 charset/unicode_flag
字符集选项。取值:0 代表GB18030,1 代表UTF-8,2 代表韩文字符集EUC-KR。默认为0。可选参数。
4.10 sec_priv_mode
权限模式,取值0,1和2 。0:traditon ,表示传统模式,1:BMJ,表示专用机模式,2:eval ,表示eval测评模式,默认为0,可选参数。
4.11 length_in_char
VARCHAR 类型对象的长度是否以字符为单位。取值:1、Y 表示是,0、N 表示否。默认值为0。可选参数。
1 或Y:是,所有VARCHAR 类型对象的长度以字符为单位。这种情况下,定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度8188 上限仍然不变,也就是说,即使定义列长度为8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过8188;
0 或N:否,所有VARCHAR 类型对象的长度以字节为单位。
4.12 SYSDBA_PWD
初始化时设置SYSDBA的密码,默认SYSDBA,密码长度为9到48个字符,可选参数。
4.13 SYSAUDITOR_PWD
初始化时设置SYSAUDITOR 的密码,默认为SYSAUDITOR。密码长度为9~48 个字符。可选参数。
4.14 DB_NAME
初始数据库名称,默认为DAMENG,名字为字符串,长度不能超过128个字符。可选参数,文件名不能包含字符‘/’‘\’‘<’‘>’‘:’‘*’‘?’‘|’‘'’‘"’
4.15 instance_name
初始化数据库实例名称,默认为DMSERVER.名称为字符串,长度不能超过128个字符。可选参数,‘/’‘\’‘<’‘>’‘:’‘*’‘?’‘|’‘'’‘"’
4.16 port_num
初始化设置DM.INI中数据库服务器监听端口号,默认5236,服务器配置参数,有效范围(1024-65524),发起连接端的端口在 1024~65535 之间随机分配。可选参数。
4.17 buffer
系统缓存大小,已M为单位,推荐值:系统缓冲区大小为可用物理内存的60%到80%,有效范围(8~1048576),缺省值为100。可选参数。
4.18 time_zone
初始化时区,默认为东八区(+08:00)。格式为[正负号]小时[:分钟],其中,正负号和分钟为可选项。时区设置范围为:-12:59~+14:00。可选参数。
4.19 PAGE_CHECK、PAGE_HASH_NAME
PAGE_CHECK 为页检查模式。取值为:0:禁用页校验;1:开启页校验并使用CRC 校验;2:开启页校验并使用指定的HASH 算法进行校验。默认0。可选参数。
PAGE_CHECK 主要用来和数据库镜像一起使用。当PAGE_CHECK 为1 或2 时,表示开启镜像系统,默认值0 不开启。开启镜像后,用户还需要对指定的数据文件或回滚文件创建对应的镜像文件,涉及到的建库参数有SYSTEM_MIRROR_PATH、MAIN_MIRROR_PATH 和ROLL_MIRROR_PATH,下文会详细介绍
镜像系统的运行流程:当系统需要把数据写入数据文件(或回滚文件)时,在写入以后如果数据文件(或回滚文件)创建了镜像文件,则需要把数据内容同时写入到镜像文件中。当系统需要从数据文件(或回滚文件)中读取数据时,如果数据文件(或回滚文件)中的校验信息与通过页内容生成的校验信息不一致则认为数据页已经损坏,那么系统会自动读取镜像文件中的数据继续提供服务。PAGE_HASH_NAME 用于设置页检查HASH 算法。当且仅当PAGE_CHECK=2 时,使用PAGE_HASH_NAME 来指定用于页检查的HASH 算法。
4.20EXTERNAL_CIPHER_NAME,EXTERNAL_HASH_NAME、EXTERNAL_CRYPTO_NAME
第三方加密时使用。缺省情况下,使用DM内部默认算法。
EXTERNAL_CIPHER_NAME:设置默认加密算法。备份、还原、建表等凡是用到加密算法,但是加密算法缺省的情况下,如果用户指定了第三方加密,则用此算法。算法名为字符串,不能超过128字节,且该算法使用的加密密钥的字节数不能超过32个字符。可选参数。EXTERNAL_HASH_NAME:设置默认HASH算法。用来生成加密数据的校验码。算法名为字符串,不能超过128字节,且该算法计算出的散列值的字节数不能超过64个字符。可选参数
EXTERNAL_CRYPTO_NAME:设置服务器根密钥加密引擎。加密引擎的使用,详细请参考《DM8安全管理》一书加密引擎章节。加密引擎的名字不能超过256个字符。可选参数。EXTERNAL_CIPHER_NAME、EXTERNAL_HASH_NAME与EXTERNAL_CRYPTO_NAME无关,两者没有必然联系。
4.21 rlog_enc_flag
设置联机日志文件和归档文件是否加密,取值Y/N,1/0,y/n ,默认值为0,可选参数,如果使用第三方加密,则默认值算法为EXTERNAL_CIPHER_NAME。否则使用
AES256_CFB。
4.22 usbkey_pin
USBKEY PIN 是登录第三方设备UKEY 的密码。供使用UKEY 的用户使用。UKEY 用于服务器端存储加密根密钥的证书,缺省使用磁盘物理文件dm_service.prikey 存储根密钥密钥的密文。
在DM 的加密机制中,增加移动UKEY 的使用,更能确保SVR_KEY 的安全性,数据安全性也得到进一步提升。USBKEY PIN 为字符串,不能超过48 个字节。可选参数。
4.23 page_enc_slice_size
使用数据页按扇区大小进行分片加解密时,指定数据页加解密的分片大小。可配置大小为0、512 或4096,单位为byte,默认值为4096。其中,0 表示不按分片进行加解密。可选参数。
4.24 encrypt_name
指定全库加密算法,加密密钥由DM 自动生成。不指定时,不进行全库加密。
全库加密操作流程:第一步,在创建数据库的过程中,通过参数ENCRYPT_NAME 的设置,使用DM 内部支持的加密算法或是第三方的加密算法对数据库文件进行加解密。第二步,在服务器启动及运行的过程中,需要对处理的所有数据页通过指定的加密算法和DM 自动生成的密钥进行加解密处理,即如果数据页读入缓存,需要进行解密后才能使用,在缓存中的数据页进行刷盘时,需要对数据页进行加密后存储到数据文件中。ENCRYPT_NAME:全库加密使用的算法名。算法可以是DM 内部支持的加密算法,或者是第三方的加密算法,其中DM 支持的加密算法可通过查询动态视图V$CIPHERS 得到,相关介绍可参见《DM8 安全管理》7.1.1 节。算法名为字符串,不能超过128 个字节。可选参数。
4.25 blank_pad_mode
设置字符串比较时,结尾空格填充模式是否兼容oracle,取值:1 兼容,0,不兼容,默认为0 ,可选参数。
4.26 system_mirror_path
指定system.dbf 文件的镜像绝对路径。默认为空。可选参数。
当PAGE_CHECK 为1 或2 时,才需要指定。
4.27 main_mirror_path
指定main.dbf 文件的镜像绝对路径。默认为空。可选参数。
当PAGE_CHECK 为1 或2 时,才需要指定。
4.28 roll_mirror_path
指定roll.dbf 文件的镜像绝对路径。默认为空。可选参数。
当PAGE_CHECK 为1 或2 时,才需要指定。
4.29 mal_flag
初始化时设置dm.ini 中的mal_ini值,取值0或者1,默认值为0,可选参数
1 表示MAL_INI=1,启动MAL 系统。同时,需要配置dmmal.ini 文件。 0 表示MAL_INI=0,不启用MAL 系统。
4.30 arch_flag
初始化时设置dm.ini 中的ARCH_INI 值。取值0 或1。默认值为0。可选参数。
1 表示ARCH_INI=1,启用归档。同时,需要配置dmarch.ini 文件。
0 表示ARCH_INI=0,不启用归档。
4.31 mpp_flag
MPP 系统内的库初始化时设置dm.ini 中的MPP_INI。取值0 或1。默认值为0。可选参数。
1 表示MPP_INI=1,启用MPP 系统。
0 表示MPP_INI=0,不启用MPP 系统。
4.32 control
指定初始化配置文件路径。可选参数。
CONTROL 参数只能单独使用,和其他参数一起使用会报错。
CONTROL 参数主要用于将数据文件创建在ASM 上、DDFS 上或者DSC 环境中。CONTROL
参数和初始化配置文件,详细信息见下一章节。
4.33 auto_overwrite
是否覆盖建库目录下所有同名文件。取值:0 不覆盖,表示建库目录下如果没有同名文件,直接创建。如果遇到同名文件时,屏幕提示是否需要覆盖,由用户手动输入是与否(y/n,1/0);1 部分覆盖,表示覆盖建库目录下所有同名文件;2 完全覆盖,表示先清理掉建库目录下所有文件再重新创建。默认值为0。可选参数。
4.34 use_new_hash
是否使用改进的字符类型HASH 算法。字符类型在计算HASH 值时所采用的HASH 算法类别。取值:0:原始HASH 算法;1:改进的HASH 算法。默认值为1。可选参数。如果备份文件和数据库文件中该参数值不一致,则还原时会报错.
4.35 elog_path
指定初始化过程中生成的日志文件所在路径。可选参数。
4.36 ap_port_num
分布式环境下协同工作的监听端口。有效值范围(1024~65534),缺省为6000。可选参数
4.37 dfs_flag
DMTDD 专用参数。指定该库是否使用DFS 存储,1 是,0 否。缺省值为0。可选参数。
4.38 dfs_path
DMTDD专用参数。指定数据文件在DFS中的默认路径,要在路径最前加上$。缺省为$/db_name,db_name是初始化库指定的。可选参数
4.39 dfs_host
DMTDD 专用参数。指定连接分布式系统DFS 的服务器地址。缺省为localhost。可选参数。
4.40 dfs_port
DMTDD 专用参数。指定连接分布式系统DFS 的服务端口号,有效值1024~65534。缺省值为3332.
4.41 dfs_copy_num
DMTDD 专用参数。指定分布式系统的副本数。缺省为3
4.42 dfs_db_name
DMTDD 专用参数。指定该库在DMTDD 中的名字,默认是与DB_NAME 一致。不同库不允许重名。可选参数。文件名不能包含字符‘/’‘\’‘<’‘>’‘:’‘*’‘
?’‘|’‘'’‘"’。
4.43 share_flag
DMTDD 专用参数。指定分布式系统中该数据库的共享属性,该库是否可用于配置多个DS。取值为0 或1,0 表示该库只能配置到一个DS 上;1 表示可以配置到多个DS 上,且只能由DSC 环境启动,默认为0。可选参数
4.44 region_mode
DMTDD 专用参数。指定分布式系统中该数据库的系统表空间数据文件的区块策略。0:微区策略,1:宏区策略。缺省为0。
4.45 huge_with_delta
是否仅允许创建事务型HUGE 表。取值:1 是,0 否。默认值为1。可选参数。设置为1 时,仅允许创建事务型HUGE 表,不允许创建非事务型HUGE 表。
4.46 rlog_gen_for_huge
是否生成HUGE 表REDO 日志。取值:1 是,0 否。默认值为0。可选参数。
此参数仅在HUGE_WITH_DELTA 为1 时才允许设置,也就是仅限于对事务型HUGE 表设置是否生成REDO 日志。
4.47 pseg_mgr_glag
是否仅使用管理段记录事务信息。取值:1 是,0 否。默认值为0。可选参数。
配置为1 时,仅在管理段中记录事务信息;
配置为0 时,除了在管理段中记录事务信息外,还会在事务分配的首个回滚页中记录事务信息。 这种方式支持将带有管理段的数据库降级到支持管理段之前的版本。
配置为0 和配置为1 的降级策略有所不同,具体请咨询达梦技术服务人员。
4.48 char_fix_storage
定长字符(CHAR)是否按定长存储,可选值:Y/N,1/0。缺省为N,可选参数。
Y/1:表示定长字符(CHAR)按定长存储,即不允许CHAR 变化为VARCHAR2 进行存储;
N/0:表示定长字符(CHAR)按变长存储,即允许CHAR 变化为VARCHAR2 进行存储
4.49 sql_log_forbid
是否禁止打开SQL 日志,可选值:Y/N,1/0。Y/1 是;N/0 否。缺省为N,可选参数。此功能禁用之后,无法再通过任何方式打开SOL 日志。
例如,当SQL_LOG_FORBID=1 后,即使开启DM_INI 的SVR_LOG 也不会打印SQL 日志
4.50 dpc_mode
DMDPC 专用参数。指定DMDPC 集群中的实例角色。0:无;1/MP:MP;2/BP:BP;3/SP:SP。缺省为N,可选参数。
DPC_MODE 参数值既可以使用数字0/1/2/3,也可以使用MP/BP/SP 字符串代替,二者作用等价
4.51 SYSDBO_PWD
初始化时设置数据库操作员SYSDBO 的密码,默认为SYSDBO。密码为字符串,长度在6 到48 个字符之间。可选参数。仅在安全版本且PRIV_FLAG=1 时可见和可设置。
4.52 SYSSSO_PWD
初始化时设置数据库安全员SYSSSO 的密码,默认为SYSSSO。密码为字符串,长度在6 到48 个字符之间。可选参数。仅在安全版本下可见和可设置。
4.53 PRIV_FLAG
是否是四权分立。取值:1 是,0 否。默认值为0。可选参数。
为了保证数据库系统的安全性,DM 数据库采用“三权分立”或“四权分立”的安全机制,“三权分立”时系统内置三种系统管理员,包括数据库管理员、数据库安全员和数据库审计员,“四权分立”时新增了一类用户,称为数据库对象操作员。它们各司其职,互相制约,有效地避免了将所有权限集中于一人的风险,保证了系统的安全性。默认情况下为“三权分立”。仅在安全版本下可见和可设置。
4.54 help
显示帮助信息,可选参数。
5.dminit高级用法
5.1.control 参数的使用
control参数是dminit工具高级功能,用户初始化数据库时指定初始化配置文件。
初始化配置文件是一个保存了各数据文件路径和大小设置、所有dminit 工具的命令行参数设置等信息的文本,名称由用户自己选取,例如:dminit.ini、abc.txt、dminit.ctl等。各数据文件路径和大小设置相关参数详见表5.1 和表5.2;dminit 工具的命令行参数详见第4 章。
dminit 工具使用CONTROL 参数,就不能再指定其他参数,CONTROL 参数只能单独使用。
DM 既支持初始化单机数据库,又支持初始化DSC 集群的数据库。操作非常简单,只要DM8_dminit在使用dminit 工具创建数据库的时候,使用CONTROL 参数指定初始化配置文件即可。
例如:初始化配置文件为dminit.ini。
./dminit CONTROL=/home/data/dminit.ini
初始化配置文件(本章统一命名为dminit.ini)内容如何书写,单机和DSC 环境下略有不同,下面分别详细介绍。
5.1.1 初始化一个单机数据库
DM 支持初始化数据库到一个普通机器上或是一个共享存储上。本节以DMASM 文件系统为例,初始化单机数据库。
涉及路径和文件大小的参数配置,详细请参考下表。
例如,在ASM 文件系统上创建数据库。参数system_path、main、system、roll、ctl_path、log01、log02 都指定了ASM 文件系统。以+开头的就是ASM 文件系统的路径,例如+DMDATA/data。单机配置文件(命名dminit.ini)书写如下:
[DAMENG]
system_path = +DMDATA/data
main = +DMDATA/data/dsc/main.dbf
main_size = 2509
system = +DMDATA/data/dsc/system.dbf
system_size = 2509
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 2509
ctl_path = +DMDATA/data/dsc/dm.ctl
log_size = 1024
log_path = +DMLOG/log/log01.log
log_path = +DMLOG/log/log02.log
auto_overwrite =2
5.1.2 初始化DSC集群的数据库
DM DSC 是一个单数据库、多实例的集群系统,数据库部署在共享存储上,供所有节点访问,具有高可用性、高性能、低成本等特性。DM 支持在DSC 环境下创建数据库。
DSC 的初始化库配置文件dminit.ini 中涉及到的参数,是在单机dminit.ini 基础上,增加了DSC 节点信息。同时,把单机dminit.ini 中node_instance 参数去掉,log_path 参数下放到每个DSC 节点里。详细的节点信息请参考下表:
例如,初始化DSC 集群的数据库。两节点的DSC 集群是搭建在ASM 文件系统上。DSC环境初始化配置文件(命名dminit.ini)书写如下:
db_name = dsc
system_path= +DMDATA/data
system= +DMDATA/data/dsc/system.dbf
system_size= 128
roll= +DMDATA/data/dsc/roll.dbf
roll_size= 128
main= +DMDATA/data/dsc/main.dbf
main_size= 128
ctl_path= +DMDATA/data/dsc/dm.ctl
ctl_size= 8
log_size= 256
dcr_path= /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno= 0
auto_overwrite= 1
[DSC0] # dsc_instance 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path= /home/data/dsc0_config
port_num= 5236
mal_host= 10.0.2.101
mal_port= 9340
log_path= +DMLOG/log/dsc0_log01.log
log_path= +DMLOG/log/dsc0_log02.log
[DSC1] # dsc_instance 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path= /home/data/dsc1_config
port_num= 5237
mal_host= 10.0.2.102
mal_port= 9341
log_path= +DMLOG/log/dsc1_log01.log
log_path= +DMLOG/log/dsc1_log02.log