外观
DM 核心配置文件
主要配置文件
| 配置文件 | 用途 | 位置 |
|---|---|---|
| dm.ini | 核心配置文件,包含数据库实例的主要参数设置 | $DM_HOME/data/实例名/dm.ini |
| dmarch.ini | 归档配置文件,定义归档模式和路径 | $DM_HOME/data/实例名/dmarch.ini |
| dmmal.ini | MAL 系统配置文件,用于分布式环境 | $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_NUM | 5236 | 数据库服务监听端口 |
| DB_NAME | DAMENG | 数据库名 |
| INSTANCE_NAME | DMSERVER | 实例名 |
| MAL_INI | 0 | 是否启用 MAL 系统(0: 禁用,1: 启用) |
| ARCH_INI | 0 | 是否启用归档(0: 禁用,1: 启用) |
内存配置
| 参数名 | 默认值 | 说明 |
|---|---|---|
| MEMORY_POOL | 200 | 内存池大小(MB) |
| BUFFER | 100 | 数据缓冲区大小(MB) |
| BUFFER_POOLS | 8 | 数据缓冲区个数 |
| RECYCLE | 50 | 回收缓冲区大小(MB) |
| HUGE_BUFFER | 0 | 大字段缓冲区大小(MB) |
存储配置
| 参数名 | 默认值 | 说明 |
|---|---|---|
| SYSTEM_PATH | SYSTEM.DBF | 系统表空间文件路径 |
| ROLL_PATH | ROLL.DBF | 回滚表空间文件路径 |
| TEMP_PATH | TEMP.DBF | 临时表空间文件路径 |
| MAIN_PATH | MAIN.DBF | 主表空间文件路径 |
| DBFILE_PATH | 数据文件存放路径 | |
| LOG_PATH | 日志文件存放路径 |
性能配置
| 参数名 | 默认值 | 说明 |
|---|---|---|
| MAX_SESSIONS | 100 | 最大会话数 |
| MAX_SESSION_STACK_SIZE | 1024 | 会话栈大小(KB) |
| WORKER_THREADS | 8 | 工作线程数 |
| TASK_THREADS | 4 | 任务线程数 |
| IO_THR_GROUPS | 1 | IO 线程组数 |
配置文件修改方法
- 直接编辑文件:使用文本编辑器直接修改
dm.ini文件,修改后需要重启数据库实例才能生效 - 使用 SQL 命令:通过
ALTER SYSTEM命令修改配置参数,部分参数可以在线生效 - 使用管理工具:通过 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 = 0dm_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_NUM、DB_NAME 等。
2. 动态参数
动态参数可以在线修改并生效,如 MEMORY_POOL、BUFFER 等。
3. 会话级参数
会话级参数只对当前会话生效,如 LANGUAGE、TIME_ZONE 等。
4. 系统级参数
系统级参数对所有会话生效,如 MAX_SESSIONS、WORKER_THREADS 等。
常见配置问题与解决方案
1. 数据库无法启动
问题:修改配置文件后,数据库无法启动。
解决方案:
- 检查配置文件语法是否正确
- 检查配置参数值是否合法
- 恢复备份的配置文件
- 查看日志文件
dm_实例名_日期.log获取详细错误信息
2. 性能下降
问题:修改配置参数后,数据库性能下降。
解决方案:
- 恢复之前的配置参数
- 分析 AWR 报告,找出性能瓶颈
- 逐步调整配置参数,观察性能变化
3. 配置参数不生效
问题:修改了配置参数,但没有生效。
解决方案:
- 检查参数是否需要重启数据库实例
- 检查修改的配置文件是否正确
- 确认修改的参数名是否正确
配置文件版本差异
不同版本的 DM 数据库可能会有不同的配置参数和默认值。以下是主要版本间的配置文件差异:
DM 7 vs DM 8
| 差异点 | DM 7 | DM 8 |
|---|---|---|
| 配置文件结构 | 相对简单 | 更复杂,支持更多参数 |
| 默认参数值 | 保守,适合小内存环境 | 更适合现代硬件,默认值更大 |
| 新参数 | 较少 | 新增了大量性能优化和安全相关参数 |
| 配置文件格式 | 基本相同 | 基本相同,但增加了更多注释和说明 |
DM 8.1 新特性
- 新增了更多细粒度的性能调优参数
- 增强了安全相关配置参数
- 优化了默认参数值,提高了开箱即用性能
- 增加了对容器化环境的支持参数
常见问题(FAQ)
Q1: dm.ini 配置文件中的参数可以在线修改吗?
A1: 部分参数可以在线修改,部分参数需要重启数据库实例才能生效。可以通过 V$DM_INI 视图查看参数的生效方式,其中 ISSYS 字段表示是否为系统级参数,ISSES 字段表示是否为会话级参数,INST_FLAG 字段表示是否需要重启实例。
Q2: 如何查看当前数据库实例的配置参数值?
A2: 可以通过以下方式查看:
- 直接查看配置文件
- 查询
V$DM_INI视图 - 使用
SP_GET_PARA_VALUE存储过程 - 使用 DM 管理工具查看
Q3: 配置文件中的参数大小写敏感吗?
A3: DM 数据库配置文件中的参数名不区分大小写,但建议使用大写字母以保持一致性。
Q4: 如何备份和恢复配置文件?
A4: 备份配置文件可以直接复制文件到安全位置。恢复配置文件时,需要先停止数据库实例,然后将备份的配置文件复制回原位置,最后启动数据库实例。
Q5: 配置文件中的注释如何添加?
A5: 可以使用 # 或 ; 符号添加注释,注释内容会被忽略。
Q6: 如何优化 dm.ini 配置以提高数据库性能?
A6: 优化 dm.ini 配置需要根据实际业务场景和硬件环境进行调整,主要关注以下几个方面:
- 内存相关参数(如 BUFFER、MEMORY_POOL 等)
- 并发相关参数(如 MAX_SESSIONS、WORKER_THREADS 等)
- IO 相关参数(如 IO_THR_GROUPS 等)
- 存储相关参数(如 DBFILE_PATH、LOG_PATH 等)
Q7: dm_svc.conf 配置文件的作用是什么?
A7: dm_svc.conf 是 DM 数据库客户端的配置文件,用于配置客户端连接数据库的参数,如服务器地址、端口号、字符集、时区等。
Q8: 如何配置 DM 数据库的归档模式?
A8: 配置 DM 数据库的归档模式需要修改 dm.ini 和 dmarch.ini 两个配置文件:
- 在 dm.ini 中设置
ARCH_INI = 1 - 创建或修改 dmarch.ini 文件,配置归档模式和路径
- 重启数据库实例
- 使用
ALTER DATABASE ARCHIVELOG命令启用归档
Q9: 配置文件丢失怎么办?
A9: 如果配置文件丢失,可以通过以下方式恢复:
- 使用备份的配置文件
- 重新初始化数据库实例,生成新的配置文件
- 从其他相同版本的数据库实例复制配置文件,然后修改相关参数
Q10: 如何查看配置文件的修改历史?
A10: DM 数据库本身不记录配置文件的修改历史,建议使用版本控制系统(如 Git)来管理配置文件,以便跟踪修改历史。
