Skip to content

DM 核心配置文件

主要配置文件

配置文件用途位置
dm.ini核心配置文件,包含数据库实例的主要参数设置$DM_HOME/data/实例名/dm.ini
dmarch.ini归档配置文件,定义归档模式和路径$DM_HOME/data/实例名/dmarch.ini
dmmal.iniMAL 系统配置文件,用于分布式环境$DM_HOME/data/实例名/dmmal.ini
dmwatch.ini数据守护配置文件$DM_HOME/data/实例名/dmwatch.ini
dmcluster.ini集群配置文件$DM_HOME/data/实例名/dmcluster.ini
dm_svc.conf客户端配置文件$DM_HOME/bin/dm_svc.conf
sql.ini客户端连接配置文件$DM_HOME/bin/sql.ini

dm.ini 配置文件

dm.ini 是 DM 数据库最核心的配置文件,包含了控制数据库实例行为的大部分参数。该文件在数据库初始化时生成,后续可以根据需要进行修改。

配置文件结构

dm.ini 文件采用键值对格式,每行定义一个配置参数:

ini
# 参数名 = 参数值
PORT_NUM = 5236
DB_NAME = DAMENG
INSTANCE_NAME = DMSERVER

参数可以分为以下几类:

  • 基本配置:数据库实例的基本信息,如端口号、数据库名、实例名等
  • 内存配置:内存分配相关参数,如共享内存大小、缓冲区大小等
  • 存储配置:数据文件、日志文件等存储相关参数
  • 性能配置:影响数据库性能的参数,如并发连接数、查询优化参数等
  • 安全配置:与安全相关的参数,如密码策略、审计配置等
  • 日志配置:日志相关参数,如日志文件大小、日志级别等

常用配置参数

基本配置

参数名默认值说明
PORT_NUM5236数据库服务监听端口
DB_NAMEDAMENG数据库名
INSTANCE_NAMEDMSERVER实例名
MAL_INI0是否启用 MAL 系统(0: 禁用,1: 启用)
ARCH_INI0是否启用归档(0: 禁用,1: 启用)

内存配置

参数名默认值说明
MEMORY_POOL200内存池大小(MB)
BUFFER100数据缓冲区大小(MB)
BUFFER_POOLS8数据缓冲区个数
RECYCLE50回收缓冲区大小(MB)
HUGE_BUFFER0大字段缓冲区大小(MB)

存储配置

参数名默认值说明
SYSTEM_PATHSYSTEM.DBF系统表空间文件路径
ROLL_PATHROLL.DBF回滚表空间文件路径
TEMP_PATHTEMP.DBF临时表空间文件路径
MAIN_PATHMAIN.DBF主表空间文件路径
DBFILE_PATH数据文件存放路径
LOG_PATH日志文件存放路径

性能配置

参数名默认值说明
MAX_SESSIONS100最大会话数
MAX_SESSION_STACK_SIZE1024会话栈大小(KB)
WORKER_THREADS8工作线程数
TASK_THREADS4任务线程数
IO_THR_GROUPS1IO 线程组数

配置文件修改方法

  1. 直接编辑文件:使用文本编辑器直接修改 dm.ini 文件,修改后需要重启数据库实例才能生效
  2. 使用 SQL 命令:通过 ALTER SYSTEM 命令修改配置参数,部分参数可以在线生效
  3. 使用管理工具:通过 DM 管理工具(如 DMSQL)或 Web 管理界面修改配置参数

示例:使用 ALTER SYSTEM 命令修改参数

sql
-- 修改最大会话数为 200
ALTER SYSTEM SET "MAX_SESSIONS" = 200 SPFILE;

-- 在线修改内存池大小为 300MB
ALTER SYSTEM SET "MEMORY_POOL" = 300 MEMORY;

dmarch.ini 归档配置文件

dmarch.ini 用于配置 DM 数据库的归档模式和归档路径。归档是数据库高可用性和数据安全的重要保障。

归档模式

DM 数据库支持以下几种归档模式:

  • 本地归档:将日志归档到本地磁盘
  • 远程归档:将日志归档到远程服务器
  • 实时归档:实时将日志发送到备库
  • 异步归档:异步将日志发送到备库

配置示例

ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = REMOTE_DATABASE
ARCH_INCOMING_PATH = /dmarch/remote
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

dm_svc.conf 客户端配置文件

dm_svc.conf 是 DM 数据库客户端的配置文件,用于配置客户端连接数据库的参数。

主要配置项

配置项说明
TIME_ZONE时区设置
LANGUAGE语言设置
CHAR_CODE字符集设置
LOGIN_ENCRYPT登录加密设置
DIRECT是否使用直连方式

配置示例

ini
TIME_ZONE=(480)
LANGUAGE=(cn)
CHAR_CODE=(PG_UTF8)
LOGIN_ENCRYPT=(0)
DIRECT=(Y)

[DAMENG]
HOST=192.168.1.100
PORT=5236

配置文件管理最佳实践

1. 备份配置文件

在修改配置文件之前,务必备份原始配置文件,以便在出现问题时可以恢复。

2. 遵循参数修改原则

  • 了解参数的含义和影响范围
  • 从小值开始调整,逐步优化
  • 记录每次修改的内容和时间
  • 观察修改后的性能变化

3. 配置文件权限管理

  • 确保配置文件的权限设置正确,只有数据库管理员才能修改
  • 定期检查配置文件的完整性和一致性

4. 版本控制

对于重要的配置文件,可以考虑使用版本控制系统进行管理,以便跟踪配置变更历史。

5. 不同环境使用不同配置

开发、测试和生产环境应使用不同的配置文件,避免配置错误导致的问题。

配置参数的生效方式

DM 数据库的配置参数根据其生效方式可以分为以下几类:

1. 静态参数

静态参数需要重启数据库实例才能生效,如 PORT_NUMDB_NAME 等。

2. 动态参数

动态参数可以在线修改并生效,如 MEMORY_POOLBUFFER 等。

3. 会话级参数

会话级参数只对当前会话生效,如 LANGUAGETIME_ZONE 等。

4. 系统级参数

系统级参数对所有会话生效,如 MAX_SESSIONSWORKER_THREADS 等。

常见配置问题与解决方案

1. 数据库无法启动

问题:修改配置文件后,数据库无法启动。

解决方案

  • 检查配置文件语法是否正确
  • 检查配置参数值是否合法
  • 恢复备份的配置文件
  • 查看日志文件 dm_实例名_日期.log 获取详细错误信息

2. 性能下降

问题:修改配置参数后,数据库性能下降。

解决方案

  • 恢复之前的配置参数
  • 分析 AWR 报告,找出性能瓶颈
  • 逐步调整配置参数,观察性能变化

3. 配置参数不生效

问题:修改了配置参数,但没有生效。

解决方案

  • 检查参数是否需要重启数据库实例
  • 检查修改的配置文件是否正确
  • 确认修改的参数名是否正确

配置文件版本差异

不同版本的 DM 数据库可能会有不同的配置参数和默认值。以下是主要版本间的配置文件差异:

DM 7 vs DM 8

差异点DM 7DM 8
配置文件结构相对简单更复杂,支持更多参数
默认参数值保守,适合小内存环境更适合现代硬件,默认值更大
新参数较少新增了大量性能优化和安全相关参数
配置文件格式基本相同基本相同,但增加了更多注释和说明

DM 8.1 新特性

  • 新增了更多细粒度的性能调优参数
  • 增强了安全相关配置参数
  • 优化了默认参数值,提高了开箱即用性能
  • 增加了对容器化环境的支持参数

常见问题(FAQ)

Q1: dm.ini 配置文件中的参数可以在线修改吗?

A1: 部分参数可以在线修改,部分参数需要重启数据库实例才能生效。可以通过 V$DM_INI 视图查看参数的生效方式,其中 ISSYS 字段表示是否为系统级参数,ISSES 字段表示是否为会话级参数,INST_FLAG 字段表示是否需要重启实例。

Q2: 如何查看当前数据库实例的配置参数值?

A2: 可以通过以下方式查看:

  1. 直接查看配置文件
  2. 查询 V$DM_INI 视图
  3. 使用 SP_GET_PARA_VALUE 存储过程
  4. 使用 DM 管理工具查看

Q3: 配置文件中的参数大小写敏感吗?

A3: DM 数据库配置文件中的参数名不区分大小写,但建议使用大写字母以保持一致性。

Q4: 如何备份和恢复配置文件?

A4: 备份配置文件可以直接复制文件到安全位置。恢复配置文件时,需要先停止数据库实例,然后将备份的配置文件复制回原位置,最后启动数据库实例。

Q5: 配置文件中的注释如何添加?

A5: 可以使用 #; 符号添加注释,注释内容会被忽略。

Q6: 如何优化 dm.ini 配置以提高数据库性能?

A6: 优化 dm.ini 配置需要根据实际业务场景和硬件环境进行调整,主要关注以下几个方面:

  1. 内存相关参数(如 BUFFER、MEMORY_POOL 等)
  2. 并发相关参数(如 MAX_SESSIONS、WORKER_THREADS 等)
  3. IO 相关参数(如 IO_THR_GROUPS 等)
  4. 存储相关参数(如 DBFILE_PATH、LOG_PATH 等)

Q7: dm_svc.conf 配置文件的作用是什么?

A7: dm_svc.conf 是 DM 数据库客户端的配置文件,用于配置客户端连接数据库的参数,如服务器地址、端口号、字符集、时区等。

Q8: 如何配置 DM 数据库的归档模式?

A8: 配置 DM 数据库的归档模式需要修改 dm.ini 和 dmarch.ini 两个配置文件:

  1. 在 dm.ini 中设置 ARCH_INI = 1
  2. 创建或修改 dmarch.ini 文件,配置归档模式和路径
  3. 重启数据库实例
  4. 使用 ALTER DATABASE ARCHIVELOG 命令启用归档

Q9: 配置文件丢失怎么办?

A9: 如果配置文件丢失,可以通过以下方式恢复:

  1. 使用备份的配置文件
  2. 重新初始化数据库实例,生成新的配置文件
  3. 从其他相同版本的数据库实例复制配置文件,然后修改相关参数

Q10: 如何查看配置文件的修改历史?

A10: DM 数据库本身不记录配置文件的修改历史,建议使用版本控制系统(如 Git)来管理配置文件,以便跟踪修改历史。