配置说明

与DMDSC相关的配置文件包括:

  • DMDCR_CFG.INI
  • DMDCR.INI
  • DMINIT.INI
  • MAL系统配置文件(DMMAL.INI、DMASVRMAL.INI)
  • DM.INI

下面分别介绍配置文件中各配置项的含义。

10.1 DMDCR_CFG.INI

dmdcr_cfg.ini是格式化DCR和Voting Disk的配置文件。配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。

使用dmasmcmd工具,可以根据dmdcr_cfg.ini配置文件,格式化DCR和Voting Disk。

表10.1 dmdcr_cfg.ini配置项
集群环境全局信息
DCR_VTD_PATH Voting Disk路径
DCR_N_GRP 集群环境包括多少个group,取值范围1~16
DCR_OGUID 消息标识,dmcssm登录dmcss消息校验用
集群组信息
DCR_GRP_TYPE 组类型(CSS\ASM\DB)
DCR_GRP_NAME 组名,16字节,配置文件内不可重复
DCR_GRP_N_EP 组内节点个数N,最大16
DCR_GRP_EP_ARR 组内包含的节点序列号,{0,1,2,...N-1}
用户不能指定,仅用于从DCR磁盘export出来可见
DCR_GRP_N_ERR_EP 组内故障节点个数
用户不能指定,仅用于从DCR磁盘export出来可见
DCR_GRP_ERR_EP_ARR 组内故障节点序列号
用户不能指定,仅用于从DCR磁盘export出来可见
DCR_GRP_DSKCHK_CNT 磁盘心跳机制,容错时间,单位秒,缺省60S,取值范围5~600
节点信息,某些属性可能只针对某一类型节点,比如SHM_KEY只针对ASM节点有效
DCR_EP_NAME 节点名,16字节,配置文件内不可重复,
DB的节点名必须和dm.ini里的INSTANCE_NAME保持一致
ASM的节点名必须和dmasvrmal.ini里的MAL_INST_NAME一致
同一类型节点的EP_NAME不能重复
DCR_EP_SEQNO 组内序号,CSS/ASM不能配置,自动分配
DB可以配置,0 ~ n_ep -1,组内不能重复,如不配置则自动分配
DCR_EP_HOST 节点IP(实例所在机器的IP地址)
对DB来说,是绑定VIP的网卡对应的物理IP地址,若配置DCR_VIP才需要配置,否则不需要配置。
CSS中设置表示DMCSSM可以通过该IP连接CSS,可以不配置
DCR_EP_PORT 节点TCP监听端口(CSS/ASM/DB有效,对应登录CSS/ASM/DB的端口号),节点实例配置此参数,取值范围1024~65534;发起连接端的端口在1024~65535之间随机分配
特别对DB来说,DB的DCR_EP_PORT与dm.ini中的PORT_NUM不一致时,DB端口以DCR_EP_PORT为准
DCR_EP_SHM_KEY 共享内存标识,数值类型(ASM有效,初始化共享内存的标识符),应为大于0的4字节整数
DCR_VIP 节点VIP(DB有效,表示配置的虚拟IP),需要和DCR_EP_HOST在同一网段。若需要取消VIP配置,仅需要将DB组的DCR_VIP和DCR_EP_HOST删除即可
DCR_CHECK_PORT DCR检查端口号。检查实例是否活动的时候用,各实例不能冲突。实例配置此参数,取值范围1024~65535;DCR发起连接的端口在1024~65534之间随机分配
DCR_EP_SHM_SIZE 共享内存大小,单位M,(ASM有效,初始化共享内存大小),取值范围10~1024。共享内存大小与其能管理的磁盘大小的关系详见6.4节
DCR_EP_ASM_LOAD_PATH ASM磁盘扫描路径,Linux下一般为/dev/raw,文件模拟情况,必须是全路径,不能是相对路径

使用说明

  1. 在用dmasmcmd工具执行init votedisk disk_path from dcr_cfg_path时,指定的disk_path必须和dcr_cfg_path里面配置的DCR_VTD_PATH相同。
  2. 如果配置dmcssm,dmcssm的OGUID必须和DCR_OGUID保持一致。
  3. DCR_N_GRP必须和实际配置的组数目保持一致。
  4. CSS和ASM组的DCR_GRP_N_EP要相等,DB的DCR_GRP_N_EP要小于等于CSS/ASM的DCR_GRP_N_EP。
  5. ASM节点的DCR_EP_NAME必须和DMASM系统使用的dmasvrmal.ini配置文件里的MAL_INST_NAME保持一致。
  6. DB节点的DCR_EP_NAME必须和数据库实例使用dmmal.ini配置文件里的MAL_INST_NAME、以及dm.ini配置文件里的INSTANCE_NAME保持一致。
  7. 所有DB节点的DCR_EP_NAME都不能重复,DB组内的DCR_EP_SEQNO不能重复。
  8. dmdcr_cfg.ini配置文件中的所有路径均不支持中文路径。

举例说明

DCR_N_GRP           = 3
DCR_VTD_PATH        = /dev/raw/raw2
DCR_OGUID       = 63635

[GRP]                ##[GRP]表示新建一个Group
DCR_GRP_TYPE        = CSS
DCR_GRP_NAME        = CSS
DCR_GRP_N_EP        = 2
DCR_GRP_DSKCHK_CNT  = 60
[CSS]                 ##[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME         = CSS0
DCR_EP_HOST         = 10.0.2.101
DCR_EP_PORT         = 9341
[CSS]                 ##[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME         = CSS1
DCR_EP_HOST         = 10.0.2.102
DCR_EP_PORT         = 9343
[GRP]                ##[GRP]表示新建一个Group
DCR_GRP_TYPE        = ASM
DCR_GRP_NAME        = ASM
DCR_GRP_N_EP        = 2
DCR_GRP_DSKCHK_CNT  = 60
[ASM]                 ##[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME         = ASM0
DCR_EP_SHM_KEY      = 93360
DCR_EP_SHM_SIZE     = 20
DCR_EP_HOST         = 10.0.2.101
DCR_EP_PORT         = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[ASM]                 ##[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME         = ASM1
DCR_EP_SHM_KEY      = 93361
DCR_EP_SHM_SIZE     = 20
DCR_EP_HOST         = 10.0.2.201
DCR_EP_PORT         = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]                ##[GRP]表示新建一个Group
DCR_GRP_TYPE        = DB
DCR_GRP_NAME        = DSC
DCR_GRP_N_EP        = 2
DCR_GRP_DSKCHK_CNT  = 60
[DSC]                 ##[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME        = DSC01
DCR_EP_SEQNO	  = 0
DCR_EP_PORT		  = 5236
DCR_CHECK_PORT	  = 9741
[DSC]                 ##[]里的是组名,与DCR_GRP_NAME对应
DCR_EP_NAME     = DSC02
DCR_EP_SEQNO	  = 1
DCR_EP_PORT		  = 5237
DCR_CHECK_PORT	  = 9742

10.2 DMDCR.INI

dmdcr.ini是dmcss、dmasmsvr、dmasmtool等工具的输入参数。记录了当前节点序列号以及DCR磁盘路径。

表10.2 dmdcr.ini配置项
DMDCR_PATH 记录DCR磁盘路径
DMDCR_SEQNO 记录当前节点序号(用来获取ASM登录信息)
DMDCR_MAL_PATH 保存dmmal.ini配置文件的路径,仅对dmasmsvr有效
DMDCR_ASM_RESTART_INTERVAL DMCSS认定DMASM节点故障重启的时间间隔(取值0~ 86400s),DMCSS只负责和DMDCR_SEQNO节点号相等的DMASM节点的故障重启,超过设置的时间后,如果DMASM节点的active标记仍然为FALSE,则DMCSS会执行自动拉起。 如果配置为0,则不会执行自动拉起操作,默认为60s
DMDCR_ASM_STARTUP_CMD DMCSS认定DMASM节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动,具体可参考说明部分
DMDCR_DB_RESTART_INTERVAL DMCSS认定DMDSC节点故障重启的时间间隔(取值0~ 86400s),DMCSS只负责和DMDCR_SEQNO节点号相等的DMDSC节点的故障重启,超过设置的时间后,如果DMDSC节点的active标记仍然为FALSE,则DMCSS会执行自动拉起。 如果配置为0,则不会执行自动拉起操作,默认为60s
DMDCR_DB_STARTUP_CMD DMCSS认定DMDSC节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动,具体可参考说明部分
DMDCR_AUTO_OPEN_CHECK 指定时间内如果节点实例未启动,DMCSS会自动将节点踢出集群环境,单位为秒,取值范围应大于等于30s。不配置此参数时表示不启用此功能
DMDCR_MESSAGE_CHECK 是否对CSS通信消息启用通信体校验(只有当消息的发送端和接收端都配置为1才启用通信体校验)。0:不启用;1:启用。默认为1

使用说明

  1. dmasmsvr和dmserver使用不同的MAL系统,需要配置两套MAL系统,配置文件dmmal.ini需要分别生成,保存到不同的目录下,并且dmmal.ini中的配置项不能重复、冲突。
  2. DMDSC集群环境下,只有当所有OK节点实例都启动的时,整个集群环境才能启动。可能存在某些场景,部分OK节点无法正常启动,导致整个集群环境无法正常启动。指定参数DMDCR_AUTO_OPEN_CHECK后,如果超过指定时间节点实例还未启动,DMCSS自动将未启动节点踢出集群环境,变为ERROR节点,之后其他活动OK节点可以正常启动。

DMDSC中至少一个OK节点启动后DMCSS才开始检查,所有OK节点都未启动情况下,DMCSS不会主动踢出节点。

  1. DMCSS自动拉起故障DMASMSVR或dmserver实例。

故障认定间隔和启动命令串是配合使用的,DMASMSVR和dmserver实例需要各自配置,如果没有配置启动命令串,故障间隔即使配置为大于0的值DMCSS也不会执行自动拉起操作,DMDCR_ASM_RESTART_INTERVAL和DMDCR_DB_RESTART_INTERVAL默认的60s只有在配置有启动命令串时才会起作用。

DMDCR_ASM_STARTUP_CMD和DMDCR_DB_STARTUP_CMD的配置方法相同,只是执行码名称和ini配置文件路径有区别,可以配置为服务名或命令行启动方式。

DMASMSVR实例启动命令举例如下:

  1. linux命令行方式启动(不能出现带有空格的路径):
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
  1. linux服务方式启动:
DMDCR_ASM_STARTUP_CMD = service dmasmserverd restart
  1. Windows命令行启动:
DMDCR_ASM_STARTUP_CMD = c:\dm\bin\dmasmsvr.exe dcr_ini=d:\asmtest\dmdcr.ini
  1. Windows服务方式启动:
DMDCR_ASM_STARTUP_CMD = net start 注册服务名

dmserver实例启动命令如下:

  1. linux命令行方式启动(不能出现带有空格的路径):
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini
  1. linux服务方式启动:
DMDCR_DB_STARTUP_CMD = service DmServiceDSC01 restart
  1. Windows命令行启动:
DMDCR_DB_STARTUP_CMD = c:\dm\bin\dmserver.exe path=d:\asmtest\dsc0_config\dm.ini dcr_ini=d:\asmtest\dmdcr.ini
  1. Windows服务方式启动:
DMDCR_DB_STARTUP_CMD = net start 注册服务名

举例说明

DMDCR_PATH=/dev/raw/raw1
DMDCR_SEQNO=0
DMDCR_MAL_PATH=/home/data/dmasvrmal.ini

##故障认定间隔,以及启动命令中的执行码路径和ini路径需要根据实际情况调整
DMDCR_ASM_RESTART_INTERVAL = 60
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

10.3 DMINIT.INI

dminit.ini是dminit工具初始化数据库环境的配置文件。与初始化库使用普通文件系统不同,如果使用裸设备或者ASM文件系统,必须使用dminit工具的control参数指定dminit.ini文件。dminit工具的命令行参数都可以放在dminit.ini中,比如db_name,auto_overwrite等,dminit.ini格式分为全局参数和节点参数。dminit工具具体用法可以参考《DM8_dminit使用手册》,下面列出常用的一些参数。

表10.3 dminit.ini配置项
全局参数,对所有节点有效
SYSTEM_PATH 初始化数据库存放的路径
DB_NAME 初始化数据库名称
MAIN MAIN表空间路径
MAIN_SIZE MAIN表空间大小
SYSTEM SYSTEM表空间路径
SYSTEM_SIZE SYSTEM表空间大小
ROLL ROLL表空间路径
ROLL_SIZE ROLL表空间大小
CTL_PATH DM.CTL控制文件路径
CTL_SIZE DM.CTL控制文件大小
LOG_SIZE 日志文件大小
HUGE_PATH huge表空间路径
AUTO_OVERWRITE 文件存在时的处理方式
DCR_PATH DCR磁盘路径
DCR_SEQNO 连接DMASM节点节点号
节点参数,对具体节点有效
[XXX] 具体节点都是以[XXX]开始,节点实例名就是XXX
CONFIG_PATH 配置文件存放路径
PORT_NUM 节点服务器监听通讯端口号,服务器配置此参数,有效值范围(1024~65534),发起连接端的端口在1024~65535之间随机分配
MAL_HOST 节点MAL系统使用IP
MAL_PORT MAL监听端口,用于数据守护、DSC、MPP等环境中各节点实例之间MAL链路配置,监听端端口配置此参数,范围1024~65534,发起连接端的端口在1024~65535之间随机分配
LOG_PATH 日志文件路径

使用说明

  1. SYSTEM_PATH目前可以支持ASM文件系统,如果不指定MAIN/SYSTEM/ROLL/CTL_PATH/HUGE_PATH,数据文件、控制文件和huge表空间路径都会默认生成在SYSTEM_PATH/db_name下面。
  2. 表空间路径和DM.CTL路径支持普通操作系统路径、裸设备、ASM文件路径,如果指定必须指定SIZE。
  3. 只有dminit工具使用ASM文件系统,才会用到DCR_PATH和DCR_SEQNO,并且不会写入其他配置文件。
  4. CONFIG_PATH暂时只支持裸设备,不支持ASM文件系统。DSC环境配置,各节点的config_path要指定不同路径。
  5. MAL_HOST和MAL_PORT是为了自动创建dmmal.ini文件使用,只有在初始化DSC环境时需要指定。
  6. LOG_PATH可以不指定,默认会在SYSTEM_PATH生成。如果指定,必须指定两个以上。
  7. 必须指定实例名,也就是必须配置[XXX]。
  8. dminit工具的control参数只能独立使用,不能和其他任何参数一起使用。

举例说明

system_path= +DMDATA/data
db_name= dsc
main= +DMDATA/data/dsc/main.dbf
main_size= 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size= 128
system = +DMDATA/data/dsc/system.dbf
system_size= 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite=1

[dsc01]
config_path = /home/data/config1
port_num = 5236
mal_host = 10.0.2.101
mal_port = 9340
log_path = +DMDATA/log/log101.log
log_path = +DMDATA/log/log102.log
[dsc02]
config_path = /home/data/config2
port_num = 5237
mal_host = 10.0.2.102
mal_port = 9341
log_path = +DMDATA/log/log201.log
log_path = +DMDATA/log/log202.log

10.4 MAL系统配置文件(DMMAL.INI、DMASVRMAL.INI)

dmmal.ini和dmasvrmal.ini都是MAL配置文件。使用同一套MAL系统的所有实例,MAL系统配置文件要严格保持一致。

表10.4 MAL系统配置文件-配置项
配置项 配置含义
MAL_CHECK_INTERVAL MAL链路检测时间间隔,取值范围(0s-1800s),默认30s,配置为0表示不进行MAL链路检测
MAL_CONN_FAIL_INTERVAL 判定MAL链路断开的时间,取值范围(2s-1800s),默认10s
MAL_LOGIN_TIMEOUT MPP/DBLINK等实例间登录时的超时检测间隔(3-1800),以秒为单位,默认15s
MAL_BUF_SIZE 单个MAL缓存大小限制,以兆为单位。当此MAL的缓存邮件超过此大小,则会将邮件存储到文件中。有效值范围(0~500000),默认为100
MAL_SYS_BUF_SIZE MAL系统总内存大小限制,单位:M。有效值范围(0~500000),默认为0,表示MAL系统无总内存限制
MAL_VPOOL_SIZE MAL 系统使用的内存初始化大小,以兆为单位。有效值范围(1~500000),默认为128,此值一般要设置的比MAL_BUF_SIZE大一些
MAL_COMPRESS_LEVEL MAL消息压缩等级,取值范围(0-10)。默认为0,不进行压缩;1–9表示采用zip算法,从1到9表示压缩速度依次递减,压缩率依次递增;10表示采用snappy算法,压缩速度高于zip算法,压缩率相对低
[MAL_NAME] MAL名称,同一个配置文件中MAL名称需保持唯一性
MAL_INST_NAME 数据库实例名,与dm.ini的INSTANCE_NAME配置项保持一致,MAL系统中数据库实例名要保持唯一
MAL_HOST MAL IP地址,使用MAL_HOST + MAL_PORT创建MAL链路
MAL_PORT MAL监听端口,用于数据守护、DSC、MPP等环境中各节点实例之间MAL链路配置,监听端端口配置此参数,范围1024~65534,发起连接端的端口在1024~65535之间随机分配
MAL_INST_HOST MAL_INST_NAME实例对外服务IP地址
MAL_INST_PORT MAL_INST_NAME实例服务器监听通讯端口号,服务器配置此参数,有效值范围(1024~65534),发起连接端的端口在1024-65535之间随机分配 此参数的配置应与dm.ini中的PORT_NUM保持一致
MAL_DW_PORT MAL_INST_NAME实例守护进程的监听端口,其他守护进程或监视器使用MAL_HOST + MAL_DW_PORT创建与该实例守护进程的TCP连接,监听端配置此参数,有效值范围(1024~65534),发起连接端的端口在1024-65535之间随机分配
MAL_MESSAGE_CHECK 是否对MAL通信消息启用消息体校验(只有当消息的发送端和接收端都配置为1才启用通信体校验)。0:不启用;1:启用。默认为1
MAL_USE_RDMA MAL是否使用RDMA通讯方式。0否;1是。设置为1时,MAL_HOST必须是RDMA网卡所绑定的IP,否则仍使用TCP方式通讯

使用说明

1.DMASMSVR组成的集群环境使用MAL系统进行通讯,需要在dmdcr.ini配置文件中配置DMDCR_MAL_PATH参数,指定MAL配置文件路径。例如:DMDCR_MAL_PATH =/home/data/dmasvrmal.ini。

2.使用MAL系统的dmserver实例,需要将dm.ini配置项MAL_INI设置为1。同时MAL系统配置文件名称必须为dmmal.ini。

3.DMASMSVR和DMDSC集群中的dmserver实例需要分别配置一套独立的MAL系统,两者配置的MAL环境不能冲突。

10.5 DM.INI

dm.ini是dmserver使用的配置文件,详细介绍可以参考《DM8系统管理员手册》相关章节。

各DSC节点之间的部分INI参数必须保持一致,如果不一致,会导致后启动的节点启动失败,日志会记录失败原因。每个节点用系统函数修改本节点的INI时,DSC会将新修改值同步到其它节点,始终保持INI参数值的一致性。

须保持一致的INI参数如下所示:

TS_RESERVED_EXTENTS
TS_SAFE_FREE_EXTENTS
TS_MAX_ID
TS_FIL_MAX_ID
BUFFER
BUFFER_POOLS
DIRECT_IO
PWD_POLICY
ENABLE_OFFLINE_TS
ORDER_BY_NULLS_FLAG
OPTIMIZER_MODE
CHECK_SVR_VERSION
RLOG_APPEND_SYSTAB_LOGIC
ISOLATION_LEVEL
DSC_N_CTLS
DSC_TRX_VIEW_SYNC
DSC_REMOTE_READ_MODE
MAX_SESSIONS
LOCK_DICT_OPT
ENABLE_INJECT_HINT
BACKSLASH_ESCAPE
STR_LIKE_IGNORE_MATCH_END_SPACE
CLOB_LIKE_MAX_LEN
MS_PARSE_PERMIT
COMPATIBLE_MODE
CASE_COMPATIBLE_MODE
COUNT_64BIT
CALC_AS_DECIMAL
CMP_AS_DICIMAL
CAST_VARCHAR_MODE
PL_SQLCODE_COMPATIBLE
LEGACY_SEQUENCE
DM6_TODATE_FMT
DROP_CASCADE_VIEW
FAST_COMMIT
JSON_MODE

另外,下面几个参数需要按要求进行配置:

  • INSTANCE_NAME:dmserver如果需要使用DMASM文件系统,INSTANCE_NAME必须和DMDCR_CFG.INI里面配置的DCR_EP_NAME相同;
  • MAL_INI:必须设置为1;
  • DSC_USE_SBT: 是否使用辅助的平衡二叉树。取值0或1。1是,0否。默认0。DM的检查点机制要求BUFFER更新链表保持有序性,所有被修改过的数据页,要根据其第一次修改的LSN值(FIRST_MODIFIED_LSN)从小到大有序排列。而DMDSC的缓存交换机制要求数据页在节点间传递,当一个更新页P1普通节点EP0传递到节点EP1时,为了不破坏节点EP1更新链表FIRST_MODIFIED_LSN的有序性,需要扫描更新链,将P1加入到更新链中的合适位置。极端情况下,可能需要扫描整个更新链,才能找到P1的插入位置,在BUFFER比较大,更新链表比较长的情况下,这种扫描、定位代价十分昂贵,特别是在高并发情况下,会引发严重的并发冲突,影响并发性能。开启DSC_USE_SBT参数后,系统内部维护一个平衡二叉树,在将数据页加入更新链表时,根据这个平衡二叉树进行log2N次比较,就可以找到插入位置;
  • DSC_N_POOLS:LBS/GBS池数目。有效值范围(2~1024),默认值2。与BUFFER_POOLS类似,DSC_N_POOLS将系统中的LBS/GBS根据页号进行分组,以降低LBS/GBS处理的并发冲突;
  • CONFIG_PATH:指定dmserver所读取的配置文件(dmmal.ini, dmarch.ini, dmtimer.ini等)的路径。不允许指定ASM目录。缺省使用SYSTEM_PATH路径。如果SYSTEM_PATH保存在ASM上,则直接报错;
  • TRACE_PATH:存放系统trace文件的路径。不允许指定ASM目录。默认的TRACE_PATH是SYSTEM_PATH;如果SYSTEM_PATH保存在ASM上,则../config_path/trace作为TRACE_PATH。
微信扫码
分享文档
扫一扫
联系客服