外观
DM 日志配置
重做日志(Redo Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
RLOG_BUFFER_SIZE | 重做日志缓冲区大小 | 16M | 32M-128M,根据业务量调整 |
RLOG_FILE_SIZE | 单个重做日志文件大小 | 256M | 512M-2G,建议设置较大值减少切换频率 |
RLOG_FILE_NUM | 重做日志文件个数 | 4 | 4-10,确保至少有2个可用日志文件 |
RLOG_SEND_APPLY_MON | 日志发送和应用监控开关 | 0 | 1,开启监控便于观察日志同步状态 |
配置方法
- 通过dm.ini文件配置:
ini
# 修改dm.ini文件中的参数
RLOG_BUFFER_SIZE = 64M
RLOG_FILE_SIZE = 1024M
RLOG_FILE_NUM = 6
RLOG_SEND_APPLY_MON = 1- 通过SQL命令在线修改:
sql
-- 在线修改重做日志缓冲区大小
ALTER SYSTEM SET RLOG_BUFFER_SIZE = 64M SPFILE;
-- 在线修改日志发送和应用监控开关
ALTER SYSTEM SET RLOG_SEND_APPLY_MON = 1 SPFILE;- 调整重做日志文件大小和数量:
sql
-- 添加重做日志文件
ALTER DATABASE ADD LOGFILE '/dm/data/DAMENG/DAMENG03.log' SIZE 1024;
ALTER DATABASE ADD LOGFILE '/dm/data/DAMENG/DAMENG04.log' SIZE 1024;
-- 删除重做日志文件(需要确保该日志文件未被使用)
ALTER DATABASE DELETE LOGFILE '/dm/data/DAMENG/DAMENG01.log';归档日志(Archive Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
ARCH_INI | 是否启用归档配置文件 | 0 | 1,启用独立的归档配置文件 |
ARCH_SEND_DELAY | 主库归档发送延迟时间 | 0 | 0,实时发送 |
配置方法
- 修改dm.ini启用归档:
ini
ARCH_INI = 1- 创建归档配置文件dmarch.ini:
ini
# 本地归档配置
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
# 远程归档配置(适用于DataWatch等场景)
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = GRP1_RT_02
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0- 通过SQL命令配置归档:
sql
-- 启用归档模式
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- 设置归档参数
ALTER SYSTEM SET ARCH_INI = 1 SPFILE;错误日志(Error Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
SVR_LOG | 是否启用服务器日志 | 1 | 1,建议开启 |
SVR_LOG_FILE_SIZE | 单个日志文件大小 | 64M | 128M-512M |
SVR_LOG_FILE_NUM | 日志文件个数 | 10 | 20-50,保留更多历史日志 |
SVR_LOG_LEVEL | 日志级别 | 1 | 1,记录所有错误信息 |
配置方法
ini
# 修改dm.ini文件中的参数
SVR_LOG = 1
SVR_LOG_FILE_SIZE = 256
SVR_LOG_FILE_NUM = 30
SVR_LOG_LEVEL = 1事件日志(Event Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
ENABLE_EVENT_LOG | 是否启用事件日志 | 0 | 1,建议开启便于监控数据库事件 |
EVENT_LOG_SIZE | 事件日志文件大小 | 100M | 200M-500M |
EVENT_LOG_PATH | 事件日志存储路径 | 与数据库实例同目录 | 建议单独指定路径 |
配置方法
ini
# 修改dm.ini文件中的参数
ENABLE_EVENT_LOG = 1
EVENT_LOG_SIZE = 300
EVENT_LOG_PATH = /dm/log/event审计日志(Audit Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
ENABLE_AUDIT | 是否启用审计 | 0 | 1,建议开启以满足安全合规要求 |
AUDIT_FILE_SIZE | 单个审计文件大小 | 100M | 200M-500M |
AUDIT_FILE_NUM | 审计文件个数 | 10 | 20-50 |
AUDIT_SPACE_LIMIT | 审计空间限制 | 0 | 0,无限制 |
AUDIT_DSC_TBL_SPACE | DSC环境审计表空间 | MAIN | 建议使用独立表空间 |
配置方法
- 修改dm.ini启用审计:
ini
ENABLE_AUDIT = 1
AUDIT_FILE_SIZE = 256
AUDIT_FILE_NUM = 30- 创建审计表空间(可选):
sql
-- 创建审计表空间
CREATE TABLESPACE AUDIT_TBS DATAFILE '/dm/data/DAMENG/audit_tbs01.dbf' SIZE 1024 AUTOEXTEND ON NEXT 256;
-- 设置审计表空间
ALTER SYSTEM SET AUDIT_DSC_TBL_SPACE = 'AUDIT_TBS' SPFILE;- 配置审计规则:
sql
-- 启用登录审计
SP_SET_PARA_VALUE(2, 'ENABLE_AUDIT', 1);
-- 添加审计规则
AUDIT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES BY ALL;
AUDIT CREATE, DROP ON ALL TABLES BY ALL;SQL日志(SQL Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
SQL_TRACE | 是否启用SQL跟踪 | 0 | 0,生产环境建议关闭,调试时开启 |
SQL_TRACE_MASK | SQL跟踪掩码 | 3 | 根据需要调整,建议只跟踪慢SQL |
SLOW_SQL_TIME | 慢SQL阈值(毫秒) | 1000 | 500-2000,根据业务要求调整 |
SLOW_SQL_TRACE_LEVEL | 慢SQL跟踪级别 | 0 | 1,记录完整的慢SQL信息 |
配置方法
ini
# 修改dm.ini文件中的参数
SQL_TRACE = 0
SLOW_SQL_TIME = 1000
SLOW_SQL_TRACE_LEVEL = 1- 通过SQL命令临时开启SQL跟踪:
sql
-- 临时开启SQL跟踪
ALTER SYSTEM SET SQL_TRACE = 1;
-- 查看慢SQL
SELECT * FROM V$SLOW_SQL WHERE EXECUTE_TIME > 1000;性能日志(Performance Log)配置
配置参数
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
ENABLE_TIMER_LOG | 是否启用定时器日志 | 0 | 1,建议开启便于性能分析 |
TIMER_LOG_INTERVAL | 定时器日志记录间隔(秒) | 60 | 60-300,根据监控粒度调整 |
配置方法
ini
# 修改dm.ini文件中的参数
ENABLE_TIMER_LOG = 1
TIMER_LOG_INTERVAL = 60日志配置最佳实践
- 根据业务需求调整日志级别:生产环境建议只记录必要的日志信息,避免过多日志影响性能
- 合理设置日志文件大小和数量:平衡日志完整性和管理便利性
- 分离日志存储位置:将日志与数据文件存储在不同的磁盘上,提高性能和可靠性
- 定期清理过期日志:避免日志占用过多磁盘空间
- 备份重要日志:定期备份审计日志、错误日志等重要日志文件
- 监控日志增长情况:设置告警机制,当日志空间使用率超过阈值时及时通知
- 加密敏感日志:对包含敏感信息的日志进行加密存储
版本差异说明
| 版本 | 主要变化 |
|---|---|
| DM 7 | 基础日志功能完善,支持多种日志类型 |
| DM 8 | 增强了审计日志功能,支持更细粒度的审计规则;优化了日志性能 |
| DM 8.1 | 新增了更多性能日志指标,优化了日志配置界面 |
常见问题(FAQ)
Q1: 如何查看当前日志配置?
A1: 可以通过查询V$DM_INI视图或使用DM管理工具查看当前日志配置:
sql
-- 查询日志相关配置
SELECT * FROM V$DM_INI WHERE PARA_NAME LIKE '%LOG%' OR PARA_NAME LIKE '%ARCH%';Q2: 日志文件过大怎么办?
A2: 可以通过以下方法解决:
- 调整日志文件大小参数,减小单个日志文件大小
- 增加日志文件个数,分散日志存储
- 启用日志自动清理机制
- 定期手动清理过期日志
Q3: 如何监控日志空间使用情况?
A3: 可以通过以下方式监控:
- 查询V$ARCH_FILE视图查看归档日志使用情况
- 设置告警规则,当日志空间使用率超过阈值时通知
- 使用DM监控工具实时监控日志空间
Q4: 如何优化日志性能?
A4: 可以从以下方面优化:
- 合理设置日志缓冲区大小
- 使用高性能存储设备存储日志
- 减少不必要的日志记录
- 优化SQL语句,减少日志生成量
Q5: 归档日志无法写入怎么办?
A5: 可能的原因和解决方法:
- 磁盘空间不足:清理磁盘空间或扩展存储
- 权限问题:检查日志目录权限
- 归档进程异常:重启数据库实例
- 配置错误:检查dmarch.ini配置是否正确
Q6: 如何启用远程归档?
A6: 配置步骤:
- 在dmarch.ini中添加远程归档配置
- 确保主备库之间网络连通
- 配置正确的归档目标实例名
- 重启数据库实例使配置生效
Q7: 如何查看慢SQL日志?
A7: 可以通过以下方式查看:
- 查询V$SLOW_SQL视图
- 查看慢SQL日志文件(默认路径:/dm/data/DAMENG/slowlog)
- 使用DM性能监控工具查看
Q8: 审计日志如何管理?
A8: 审计日志管理建议:
- 使用独立表空间存储审计数据
- 定期备份审计日志
- 对审计日志进行加密保护
- 根据合规要求设置审计日志保留期限
- 定期清理过期审计日志
Q9: 如何关闭不必要的日志?
A9: 根据业务需求,在dm.ini中修改相应的日志开关参数:
- 关闭SQL跟踪:SQL_TRACE = 0
- 关闭事件日志:ENABLE_EVENT_LOG = 0
- 关闭定时器日志:ENABLE_TIMER_LOG = 0
Q10: 日志配置修改后是否需要重启数据库?
A10: 大部分日志配置参数修改后需要重启数据库才能生效,部分参数支持在线修改。建议在维护窗口进行日志配置修改,并重启数据库确保配置生效。
