DM 数据库的配置文件为dm.ini,它控制着数据库的各种功能和性能选项。该文件包含了多个模块,例如控制文件、实例名、内存和线程等。参数属性分为手动、静态和动态三种,分别对应不同的修改方式和生效时机。
参数类型和修改方式:
·手动参数: 不能动态修改,必须手动修改 `dm.ini` 文件并重启数据库才能生效。
·静态参数: 可以动态修改,但需要重启数据库才能生效。
·动态参数: 可以动态修改,修改后立即生效。
·会话级: 修改后仅影响当前会话和新创建的会话。
·系统级: 修改后影响所有会话。
参数修改方法:
·手动修改: 直接编辑 `dm.ini` 文件。
·动态修改: 使用系统过程SP_SET_PARA_VALUE()、SP_SET_PARA_DOUBLE_VALUE()和 SP_SET_PARA_STRING_VALUE()。
参数值非法处理:
·手动修改:
· 与类型不兼容:使用默认值。
·小于最小值:使用最小值。
·大于最大值:使用最大值。
·动态修改:
·与类型不兼容、小于最小值、大于最大值:均报错。
注意事项:
·动态修改参数时,若发生系统崩溃,需要使用 `dm.ini.dmbak` 文件恢复 `dm.ini` 并重启数据库。
·建议谨慎修改参数,避免设置非法值导致数据库运行异常。
- dm.ini常用参数
参数名 | 缺省值 | 属性 | 说明 |
INSTANCE_NAME | DMSERVER | 静态 | 实例名。只能由_、$、大写字母 A 至 Z、小写字母 A 至 Z、数字 0 至 9 组成,且第一个字符不能是数字。长度不超过 16 个字节 |
BUFFER | 1000 | 静态 | 系统缓冲区大小,单位 MB。推荐值:系统缓冲区大小为可用物理内存的 60%~80%。取值范围 8~1048576 |
SVR_LOG | 0 | 动态,系统级 | 是否打开 SQL 日志功能,0:关闭;1:打开,并按照 SQLLOG.INI 中的配置来记录 SQL 日志;2:打开,按文件中记录数量切换日志文件,日志记录为详细模式;3:打开,不切换日志文件,日志记录为简单模式,只记录时间和原始语句 |
SYSTEM_PATH | 安装时指定 | 手动 | 系统库目录 |
ARCH_INI | 0 | 动态,系统级 | 是否启用归档,0:不启用;1:启用 |
MAL_INI | 0 | 静态 | 是否启用 MAL 系统,0:不启用;1:启用 |
ALTER_MODE_STATUS | 1 | 动态,系统级 | 是否允许手工修改服务器的模式、状态和 OGUID。2 表示允许,1 表示在本地守护进程故障时允许,0 表示不允许。注:数据守护环境下建议配置为 0,实例处于主机或备机模式后,不允许用户直接通过 SQL 语句修改服务器的模式、状态和OGUID |
ENABLE_OFFLINE_TS | 1 | 动态,系统级 | 是否允许 OFFLINE 表空间,0:不允许;1:允许;2:备库不允许。 |
EXCLUDE_RESERVED_WORDS | 空串 | 静态 | 语法解析时,需要去除保留字身份的保留字列表,保留字之间用逗号分隔。去除身份的保留字将变成普通字符串 |
MAX_SESSIONS | 10000 | 静态 | 系统允许同时连接的最大数。同时,安全版环境下该参数还受到 LICENSE 的限制,取二者中较小的值,取值范围 1~150000 |
CTL_BAK_PATH | 安装时指定 | 手动 | 控制文件备份路径,缺省路径为“SYSTEM_PATH/CTL_BAK”,在初始化库或没有配置该项时均指定为缺省路径。备份文件命名格式:“DM_年月日时分秒_毫秒.CTL”备份文件在初始化库和每次修改 DM.CTL 控制文件后生成 |
CTL_BAK_NUM | 10 | 手动 | 控制文件备份个数限制,取值范围 1~100,在此限制之外,会再多保留一个备份文件,在生成新的备份文件时,如果当前已存在的备份文件个数大于指定值,则自动删除创建时间最早的备份文件,小于或等于指定值的情况下,不会有删除操作,缺省值为 10 |
CONFIG_PATH | 安装时指定 | 手动 | 指定 DMSERVER 所读取的配置文件(DMMAL.INI, DMARCH.INI, DMTIMER.INI 等)的路径。缺省使用 SYSTEM_PATH 路径。不允许指定ASM 目录 |
TEMP_PATH | 安装时指定 | 手动 | 临时库文件路径 |
BAK_PATH | 安装时指定 | 手动 | 备份路径 |
AUD_PATH | 安装时指定 | 手动 | 审计文件的存放路径,缺省使用 SYSTEM_PATH 路径 |
SYSTEM_PATH | 安装时指定 | 手动 | 系统库目录 |
CKPT_RLOG_SIZE | 128 | 动态,系统级 | 产生多大日志文件后做检查点,单位 MB。取值范围 0~4294967294 |
CKPT_DIRTY_PAGES | 0 | 动态,系统级 | 产生多少脏页后产生检查点,单位为页。取值范围 0~4294967294 |
CKPT_INTERVAL | 180 | 动态,系统级 | 指定检查点的时间间隔。单位秒,为 0 时表示不自动定时做检查点。取值范围 0~2147483647 |
CKPT_FLUSH_RATE | 5 | 动态,系统级 | 检查点刷盘比例。取值范围 0~100.00 |
CKPT_FLUSH_PAGES | 1000 | 动态,系统级 | 检查点刷盘的最小页数。取值范围 1000~100000 |
CKPT_WAIT_PAGES | 1024 | 动态,系统级 | 检查点一次发起的最大写入页数,等待这些页写入磁盘完成、调整检查点信息后,再发起新的刷盘请求,避免过于集中发起写磁盘请求,操作系统 IO 压力过大,导致 IO 性能下降。取值范围 1~65534 |
FORCE_FLUSH_PAGES | 8 | 动态,系统级 | 调度线程启动刷脏页流程时,每个 BUFFER POOL 写入磁盘的脏页数。取值范围 0~1000 |
ENABLE_CKPT_EVENT_TRIG | 0 | 动态,系统级 | 是否启用检查点事件触发器。0 否,1 是 |
ENABLE_HASH_JOIN | 1 | 动态,会话级 | 是否允许使用哈希连接,0:不允许;1:允许。 |
ENABLE_INDEX_JOIN | 1 | 动态,会话级 | 是否允许使用索引连接,0:不允许;1:允许。 |
ENABLE_MERGE_JOIN | 1 | 动态,会话级 | 是否允许使用归并连接,0:不允许;1:允许 |
MS_PARSE_PERMIT | 0 | 静态 | 是否支持 MS SQLSERVER 的语法。 |
COMPATIBLE_MODE | 0 | 静态 | 是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准,2:部分兼容 ORACLE,3:部分兼容 MS SQL SERVER,4:部分兼容 MYSQL,5:兼容 DM6,6:部分兼容 TERADATA,7:部分兼容 POSTGRES |
JSON_MODE | 0 | 静态 | JSON 语法解析兼容模式。0:兼容 ORACLE;1:兼容 PostgreSQL;2:兼容 MYSQL |
DATETIME_FMT_MODE | 0 | 动态,系统级 | 是否兼容 ORACLE 的五种日期时间类型的默认日期时间格式。0:不兼容;1:兼容 |
DOUBLE_MODE | 0 | 静态 | 计算 DOUBLE 类型的散列值时,是否只使用 6 个字节。0:否;1:是 |
CASE_COMPATIBLE_MODE | 1 | 动态,系统级 | 涉及不同数据类型的 CASE 运算,是否需要兼容 ORACLE 的处理策略。 |
DOUBLE_MODE | 0 | 静态 | 计算 DOUBLE 类型的散列值时,是否只使用 6 个字节。0:否;1:是 |
CASE_COMPATIBLE_MODE | 1 | 动态,系统级 | 涉及不同数据类型的 CASE 运算,是否需要兼容 ORACLE 的处理策略。 |
- dmarch.ini常用参数
项目 | 项目意义 | 字段 | 字段意义 |
[ARCHIVE_LOCAL1] | 本地归档配置 | ARCH_TYPE | 归档类型 |
ARCH_DEST | 归档路径。需要配置在 ARCH_TYPE 之后 | ||
ARCH_FILE_SIZE | 单个归档文件大小,单位 MB,取值范围 64~2048,缺省为 1024MB,即 1G | ||
ARCH_SPACE_LIMIT | 本地归档文件空间限制。当同一节点号的本地归档文件达到限制值时,系统自动删除最早生成的本地归档日志文件。0 表示无空间限制,取值范围 1024~2147483647,缺省为 0,单位 MB | ||
ARCH_FLUSH_BUF_SIZE | 归档合并刷盘缓存大小,单位 MB,取值范围 0~128,缺省为 0,表示不使用归档合并刷盘 | ||
ARCH_HANG_FLAG | 本地归档写入失败时系统是否挂起。取值 0 或 1。0 不挂起;1 挂起。缺省为 1。第一路本地归档系统内固定设为 1,设 0 实际也不起作用 | ||
ARCHIVE_REALTIME | 实时归档配置 | ARCH_TYPE | 归档类型 |
ARCH_DEST | 归档目标实例名。需要配置在 ARCH_TYPE 之后 | ||
WAIT_APPLY | 若归档目标未配置 WAIT_APPLY,则以全局 ARCH_WAIT_APPLY 为准;若某一个归档目标配置了WAIT_APPLY,则对应归档目标是否是事务一致由配置的 WAIT_APPLY 为准。取值:0:表示高性能模式;1: 表示事务一致模式 | ||
ARCH_STANDBY_APPLY | 是否根据归档目标重演情况确定自身本地归档可删除。取值 0:否;1:是。默认值为 0 | ||
ARCHIVE_ASYNC | 异步归档 | ARCH_TYPE | 归档类型 |
ARCH_DEST | 归档目标实例名。需要配置在 ARCH_TYPE 之后 | ||
ARCH_TIMER_NAME | 定时器名称。需要配置在 ARCH_TYPE 之后 | ||
ARCH_SEND_DELAY | 指定源库到异步备库的归档延时发送时间,单位分钟,取值范围 0~1440,缺省为 0,表示不启用归档延时发送功能。 | ||
ARCH_STANDBY_APPLY | 是否根据归档目标重演情况确定自身本地归档可删除。取值:0:否;1:是。默认值为 0 | ||
ARCHIVE_SYNC | 同步归档 | ARCH_TYPE | 归档类型 |
ARCH_DEST | 归档目标实例名。需要配置在 ARCH_TYPE 之后 | ||
ARCH_RECOVER_TIME | 主库向同步备库发起异步恢复的时间间隔,单位秒,取值范围 1~86400,缺省为 1,表示主库每隔 1 秒检查一次同步备库的归档状态,若为 INVALID 且和同步备库通信正常,则发起异步恢复。 | ||
ARCH_STANDBY_APPLY | 是否根据归档目标重演情况确定自身本地归档可删除。取值:0:否;1:是。默认值为 0 | ||
ARCHIVE_TIMELY | 即时归档 | ARCH_TYPE | 归档类型 |
ARCH_DEST | 归档目标实例名。需要配置在 ARCH_TYPE 之后 | ||
WAIT_APPLY | 若归档目标未配置 WAIT_APPLY,则以全局 ARCH_WAIT_APPLY 为准;若某一个归档目标配置了WAIT_APPLY,则对应归档目标是否是事务一致由配置的 WAIT_APPLY 为准。取值:0:表示高性能模式;1: 表示事务一致模式 | ||
ARCH_STANDBY_APPLY | 是否根据归档目标重演情况确定自身本地归档可删除。取值:0:否;1:是。默认值为 0 | ||
[ARCHIVE_RAFT1] | RAFT归档 | ARCH_TYPE | 归档类型。ARCH_TYPE 支持配置为 RAFT 和 LEARNER。其中 LEARNER 归档仅在动态增删节点时使用 |
ARCH_DEST | 归档目标实例名。需要配置在 ARCH_TYPE 之后 | ||
ARCH_DEST_ID | 归档目标多副本节点编号,用于标识多副本 RAFT 组中不同的节点。取值范围 0~31 | ||
ARCH_STANDBY_APPLY | 是否根据归档目标重演情况确定自身本地归档可删除。取值:0:否;1:是。默认值为 0 | ||
REMOTE | 远程归档配置 | ARCH_TYPE | 归档类型 |
ARCH_DEST | 归档目标实例名。需要配置在 ARCH_TYPE 之后 | ||
ARCH_INCOMING_PATH | 指定远程归档目标 ARCH_DEST 的本地归档日志文件存放路径。需要配置在 ARCH_TYPE 之后 |
相关说明
1. 归档类型:
支持多种归档类型,包括本地、远程、实时、异步、同步、即时、RAFT 等,每种类型都有数量限制。
·本地归档 LOCAL(一台主库最多配 8 个)
·远程实时归档 REALTIME(一台主库最多配 8 个)
·远程异步归档 ASYNC(一台主库最多配 8 个)
·同步归档 SYNC(一台主库最多配 8 个)
·即时归档 TIMELY(一个主库最多配 8 个)
·远程归档 REMOTE(一个主库最多配 8 个)
·RAFT 归档 RAFT/LEARNER (一个主库最多配 8 个)
2. 配置规则:
·归档名在配置文件中必须唯一。
·不能存在相同实例名的不同归档。
·不能存在相同目标路径的不同归档。
·归档类型需要配置在目标路径、定时器名称、输入路径之前。
3. 归档清理规则:
·支持 `ARCH_STANDBY_APPLY` 参数,用于根据备库重演信息判断是否可以删除本地归档。
·DSC 环境下,本地归档和远程归档的空间上限分开计算,并根据 DSC 控制节点的重演情况清理本地归档。
·DSC 环境下,主库是 DSC 集群时,备库会根据收到日志包的节点号分开保存归档,并分别计算空间上限。
4. 其他说明:
·`ARCH_TIMER_NAME` 为定制的定时器名称,定时器配置见 dmtimer.ini。
·对于异步备库的级联配置情况,异步备库会根据级联的备库重演情况决定自身的本地归档是否可删除。
以上介绍了归档配置的规则和清理规则,对于理解和使用归档功能非常重要。在实际应用中,需要根据具体情况选择合适的归档类型和配置参数,以确保数据的完整性和安全性。
- dm_svc.conf
dm_svc.conf 是一个客户端配置文件,它包含了 DM 各接口和客户端工具所需要配置的一些参数。它必须和接口/客户端工具位于同一台机器上才能 生效。
初始 dm_svc.conf 文件在 DM 安装时自动生成。不同平台的生成目录有所不同。
1. 32 位的 DM 安装在 Win32 操作平台下,此文件位于%SystemRoot%\system32 目录;
2. 64 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\system32 目录;
3. 32 位的 DM 安装在 Win64 操作平台下,此文件位于%SystemRoot%\SysWOW64 目录;
4. 在 Linux 平台下,此文件位于/etc 目录。
可以通过设置操作系统环境变量 DM_SVC_PATH 来修改 dm_svc.conf 文件路径