注册
达梦数据库 Redo 日志与归档日志的深度对比与实操管理
技术分享/ 文章详情 /

达梦数据库 Redo 日志与归档日志的深度对比与实操管理

何处惹尘埃 2026/07/31 213 1 0

问题二:达梦数据库 Redo 日志与归档日志的深度对比与实操管理

一、环境信息

  • 实例:TESTDB(端口 5239)
  • 数据目录:/home/dmdba/dmdata/test/TESTDB
  • 归档目录:/home/dmdba/dmdata/test/arch/home/dmdba/dmdata/test/arch2
  • 测试表:TEST.EMPLOYEE(含 100003 条记录)
  • 达梦版本:V8

二、Redo 日志与归档日志的区别

对比项 Redo 日志(联机日志) 归档日志(归档日志)
定义 数据库运行时记录所有数据变更的日志文件,用于崩溃恢复 Redo 日志的历史备份,将写满的 Redo 日志复制到归档目录保存
存储位置 数据目录下(与数据文件同目录) 独立归档目录(可配置多个)
文件命名 TESTDB01.log、TESTDB02.log ARCHIVE_LOCAL1_0x27F1AC6_EP0_2026-07-28_14-51-13.log
生命周期 循环使用,写满后自动覆盖 永久保存(除非手动清理或达到空间限制)
用途 实例恢复(崩溃恢复,数据库重启时自动应用) 介质恢复(时间点恢复、增量备份、灾难恢复)
是否必须 必须(数据库运行的基础) 可选(但强烈建议开启)

三、实操准备:登录数据库

# 以 dmdba 用户登录 su - dmdba /home/dmdba/dmdbms/bin/disql SYSDBA/Dameng123@localhost:5239

参数说明:

  • SYSDBA:数据库用户名(管理员账户)
  • Dameng123:密码
  • localhost:数据库主机地址
  • 5239:数据库端口号(测试实例)

四、Redo 日志管理

4.1 查看 Redo 日志配置

执行命令:

-- 先查看视图结构,确认列名 DESC V$RLOGFILE;

输出:

行号  NAME          TYPE$        NULLABLE
----- ------------- ------------ --------
1     GROUP_ID      INT          Y
2     FILE_ID       INT          Y
3     PATH          VARCHAR(256) Y
4     CLIENT_PATH   VARCHAR(256) Y
5     CREATE_TIME   TIMESTAMP(6) Y
6     RLOG_SIZE     BIGINT       Y
7     MIN_EXEC_VER  VARCHAR(64)  Y
8     MIN_DCT_VER   INT          Y

列含义:

  • GROUP_ID:Redo 日志组编号(同一组内文件互为镜像)
  • FILE_ID:文件编号(从 0 开始)
  • PATH:文件物理路径
  • RLOG_SIZE:单个文件大小(字节)
  • CREATE_TIME:文件创建时间

查看实际配置:

SELECT GROUP_ID, FILE_ID, PATH, RLOG_SIZE/1024/1024 AS SIZE_MB FROM V$RLOGFILE;

输出:

行号  GROUP_ID  FILE_ID  PATH                                                      SIZE_MB
----- --------- -------- ---------------------------------------------------------- --------
1     2         0        /home/dmdba/dmdata/test/TESTDB/TESTDB01.log               4096
2     2         1        /home/dmdba/dmdata/test/TESTDB/TESTDB02.log               4096

结论:当前 Redo 日志为 2 个文件,每个 4GB,共 8GB 循环空间。

4.1.1 查询 dm.ini 中的 RLOG_SIZE 参数

在尝试修改 Redo 日志大小之前,执行了以下命令在 dm.ini 文件中查找 RLOG_SIZE 参数:

grep -i "rlog" /home/dmdba/dmdata/test/TESTDB/dm.ini

输出:

CKPT_RLOG_SIZE = 1024                  #Checkpoint rlog size. 0: Ignore; else: generate with redo log size

查询结果分析:

  • 只找到 CKPT_RLOG_SIZE = 1024,没有找到 RLOG_SIZE
  • CKPT_RLOG_SIZE 是检查点触发生成的 Redo 日志大小阈值,与 Redo 日志文件大小(RLOG_SIZE)是不同的参数
  • 实际 Redo 日志文件大小由 RLOG_SIZE 控制,但该参数在 dm.ini 中未显式设置,采用默认值(4096MB,即 4GB)
  • 这也解释了为什么无法通过修改 dm.ini 来调整 Redo 日志文件大小

4.2 查看 Redo 日志使用情况

执行命令:

-- 先查看视图结构 DESC V$RLOG;

输出(节选):

行号  NAME           TYPE$  NULLABLE  含义
----- -------------- ------ --------- ------------------------
1     CKPT_LSN       BIGINT Y          检查点 LSN
2     FILE_LSN       BIGINT Y          文件 LSN
3     FLUSH_LSN      BIGINT Y          已刷盘 LSN
4     CUR_LSN        BIGINT Y          当前写入 LSN
14    FREE_SPACE     BIGINT Y          空闲空间(字节)
15    TOTAL_SPACE    BIGINT Y          总空间(字节)

查看使用情况:

SELECT TOTAL_SPACE/1024/1024 AS TOTAL_MB, (TOTAL_SPACE - FREE_SPACE)/1024/1024 AS USED_MB, FREE_SPACE/1024/1024 AS FREE_MB FROM V$RLOG;

输出:

行号  TOTAL_MB  USED_MB  FREE_MB
----- --------- -------- --------
1     8191      10       8181

参数含义:

  • TOTAL_MB:Redo 日志总空间,当前 8191 MB(约 8GB)
  • USED_MB:已使用空间,当前 10 MB(少量使用)
  • FREE_MB:空闲空间,当前 8181 MB(大部分空闲)

4.3 查看 LSN 推进情况

执行命令:

SELECT CUR_LSN, FLUSH_LSN, CKPT_LSN, FREE_SPACE/1024/1024 AS FREE_MB FROM V$RLOG;

输出:

行号  CUR_LSN  FLUSH_LSN  CKPT_LSN  FREE_MB
----- -------- ---------- --------- --------
1     159941   159941     56778     8181

LSN 相关概念:

  • CUR_LSN:当前正在写入的 LSN,即最新生成的日志序列号
  • FLUSH_LSN:已刷盘的 LSN,已写入磁盘的日志(小于等于 CUR_LSN)
  • CKPT_LSN:检查点 LSN,已写入数据文件的日志(小于等于 FLUSH_LSN)

解读:

  • CUR_LSN = FLUSH_LSN:所有日志已写入磁盘,无积压
  • CKPT_LSN 落后于 CUR_LSN:检查点定期将数据写入数据文件,日志持续增长,这是正常现象

4.4 增加 Redo 日志文件

操作前确认:当前有 2 个 Redo 日志文件,增加到 3 个。

步骤 1:切换 MOUNT 状态

ALTER DATABASE MOUNT;

步骤 2:添加日志文件

ALTER DATABASE ADD LOGFILE 'TESTDB03.log' SIZE 4096;

遇到错误:

[-510]:系统处于MOUNT状态.

原因:在 MOUNT 状态下执行此命令报错,需要先切换到 OPEN 状态。

解决方法:

ALTER DATABASE OPEN; ALTER DATABASE ADD LOGFILE 'TESTDB03.log' SIZE 4096;

步骤 3:验证

SELECT GROUP_ID, FILE_ID, PATH, RLOG_SIZE/1024/1024 AS SIZE_MB FROM V$RLOGFILE;

输出:

行号  GROUP_ID  FILE_ID  PATH                                                      SIZE_MB
----- --------- -------- ---------------------------------------------------------- --------
1     2         0        /home/dmdba/dmdata/test/TESTDB/TESTDB01.log               4096
2     2         1        /home/dmdba/dmdata/test/TESTDB/TESTDB02.log               4096
3     2         2        /home/dmdba/dmdata/test/TESTDB/TESTDB03.log               4096

结论:成功添加第 3 个 Redo 日志文件。

4.5 Redo 日志管理总结

操作 是否可行 方法 注意事项
扩大小 部分可行 修改 dm.ini 中 RLOG_SIZE 参数(需重建控制文件),生产环境不推荐 该参数在 dm.ini 中通常未显式设置,采用默认值 4096MB
增加文件 可行 ALTER DATABASE ADD LOGFILE '文件名.log' SIZE xxx 在 OPEN 状态下执行
上限 受文件系统限制 建议单文件 256MB~2GB 总量不宜过大
一般建议 2~4 个文件 每个 256MB~1GB 根据事务量调整,减少切换频率

五、归档日志管理

5.1 开启归档模式

第一步:检查当前归档状态

SELECT NAME, ARCH_MODE, STATUS$ FROM V$DATABASE;

输出:

行号  NAME   ARCH_MODE  STATUS$
----- ------ ---------- --------
1     TESTDB N          4

列含义:

  • NAME:数据库名称,当前为 TESTDB
  • ARCH_MODE:归档模式,N 表示未开启,Y 表示已开启
  • STATUS$:数据库状态,4 表示 OPEN,1 表示 MOUNT,2 表示 SUSPEND

第二步:修改 dm.ini 开启归档配置

# 备份配置文件 cp /home/dmdba/dmdata/test/TESTDB/dm.ini /home/dmdba/dmdata/test/TESTDB/dm.ini.bak # 修改 ARCH_INI 参数(vi 或 nano 编辑) vi /home/dmdba/dmdata/test/TESTDB/dm.ini

找到 ARCH_INI = 0,改为:

ARCH_INI = 1

第三步:重启实例使配置生效

# 停止实例 ps -ef | grep dmserver | grep 5239 kill -9 <PID> # 重新启动 nohup /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdata/test/TESTDB/dm.ini > /home/dmdba/dmdata/test/dm.log 2>&1 &

第四步:创建归档目录

mkdir -p /home/dmdba/dmdata/test/arch chown dmdba:dinstall /home/dmdba/dmdata/test/arch

第五步:添加归档配置

ALTER DATABASE MOUNT; ALTER DATABASE ADD ARCHIVELOG 'DEST=/home/dmdba/dmdata/test/arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=1024'; ALTER DATABASE OPEN;

遇到错误:

[-810]:系统未配置归档

原因:dm.iniARCH_INI 未正确设置为 1,或修改后未重启实例。
解决方法:确认 ARCH_INI=1 后重启实例,再执行上述命令。

第六步:验证归档状态

SELECT NAME, ARCH_MODE, STATUS$ FROM V$DATABASE;

输出:

行号  NAME   ARCH_MODE  STATUS$
----- ------ ---------- --------
1     TESTDB Y          4

ARCH_MODE 变为 Y,归档模式已开启。

5.2 查看归档配置

执行命令:

-- 先查看视图结构 DESC V$DM_ARCH_INI;

输出(节选):

行号  NAME               TYPE$        NULLABLE  含义
----- ------------------ ------------ --------- ------------------------
1     ARCH_NAME          VARCHAR(128) Y          归档配置名称
2     ARCH_TYPE          VARCHAR(128) Y          归档类型(LOCAL/REMOTE)
3     ARCH_DEST          VARCHAR(512) Y          归档目标目录
4     ARCH_FILE_SIZE     INT          Y          单个归档文件大小(MB)
5     ARCH_SPACE_LIMIT   INT          Y          归档总空间限制(MB)
6     ARCH_IS_VALID      CHAR(1)      Y          是否有效(Y/N)

查看当前配置:

SELECT ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_IS_VALID FROM V$DM_ARCH_INI;

输出:

行号  ARCH_DEST                    ARCH_FILE_SIZE  ARCH_SPACE_LIMIT  ARCH_IS_VALID
----- ---------------------------- --------------- ----------------- -------------
1     /home/dmdba/dmdata/test/arch 128             1024              Y

参数含义:

  • ARCH_DEST:归档日志存放目录
  • ARCH_FILE_SIZE:单个归档文件大小(MB)
  • ARCH_SPACE_LIMIT:归档总空间限制(MB),超过后自动清理
  • ARCH_IS_VALID:配置是否有效

5.3 修改归档文件大小

场景:将归档文件大小从 128MB 改为 256MB。

正确语法(关键:不需要 SET 关键字):

ALTER DATABASE MOUNT; ALTER DATABASE MODIFY ARCHIVELOG 'DEST=/home/dmdba/dmdata/test/arch, TYPE=LOCAL, FILE_SIZE=256, SPACE_LIMIT=1024'; ALTER DATABASE OPEN;

遇到错误(一):

第 1 行, 第 101 列[SET]附近出现错误[-2007]:语法分析出错.

原因:误用了 SET 关键字,正确语法为直接指定 FILE_SIZE=256

遇到错误(二):

[-2004]:不支持的语句类型.

原因:DELETE ARCHIVELOG 语法在当前版本不支持。

解决方法:使用正确的 MODIFY 语法,直接指定 FILE_SIZE 值。

验证:

SELECT ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_IS_VALID FROM V$DM_ARCH_INI;

输出:

行号  ARCH_DEST                    ARCH_FILE_SIZE  ARCH_SPACE_LIMIT  ARCH_IS_VALID
----- ---------------------------- --------------- ----------------- -------------
1     /home/dmdba/dmdata/test/arch 256             1024              Y

ARCH_FILE_SIZE 从 128 变为 256,修改成功。

5.4 增加归档目标(备选归档目录)

场景:增加第二个归档目标 /home/dmdba/dmdata/test/arch2,实现归档双写或负载分担。

步骤 1:创建目录

mkdir -p /home/dmdba/dmdata/test/arch2 chown dmdba:dinstall /home/dmdba/dmdata/test/arch2

步骤 2:添加归档目标

ALTER DATABASE MOUNT; ALTER DATABASE ADD ARCHIVELOG 'DEST=/home/dmdba/dmdata/test/arch2, TYPE=LOCAL, FILE_SIZE=256, SPACE_LIMIT=2048'; ALTER DATABASE OPEN;

步骤 3:验证

SELECT ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_IS_VALID FROM V$DM_ARCH_INI;

输出:

行号  ARCH_DEST                     ARCH_FILE_SIZE  ARCH_SPACE_LIMIT  ARCH_IS_VALID
----- ----------------------------- --------------- ----------------- -------------
1     /home/dmdba/dmdata/test/arch  256             1024              Y
2     /home/dmdba/dmdata/test/arch2 256             2048              Y

两个归档目标同时生效,归档日志会分别写入两个目录。

5.5 查看归档日志列表及 LSN 区间

执行命令:

-- 先查看视图结构 DESC V$ARCHIVED_LOG;

输出(节选):

行号  NAME               TYPE$        NULLABLE  含义
----- ------------------ ------------ --------- ----------------------------
1     RECID              INT          Y          归档日志记录 ID
3     NAME               VARCHAR(513) Y          归档日志文件名(含路径)
10    FIRST_CHANGE#      BIGINT       Y          起始 LSN
11    FIRST_TIME         DATETIME(6)  Y          归档开始时间
12    NEXT_CHANGE#       BIGINT       Y          结束 LSN
13    NEXT_TIME          DATETIME(6)  Y          归档结束时间
23    COMPLETION_TIME    DATETIME(6)  Y          归档完成时间

查看归档日志列表:

SELECT NAME, FIRST_CHANGE# AS FIRST_LSN, NEXT_CHANGE# AS NEXT_LSN, FIRST_TIME, BLOCKS * BLOCK_SIZE / 1024 / 1024 AS SIZE_MB FROM V$ARCHIVED_LOG ORDER BY FIRST_CHANGE# DESC;

输出:

行号  NAME                                                                             FIRST_LSN  NEXT_LSN  FIRST_TIME                 SIZE_MB
----- -------------------------------------------------------------------------------- ---------- --------- -------------------------- --------
1     /home/dmdba/dmdata/test/arch/ARCHIVE_LOCAL1_0x27F1AC6_EP0_2026-07-28_14-51-13.log 56918      159941    2026-07-28 14:51:13.219952 NULL
2     /home/dmdba/dmdata/test/arch/ARCHIVE_LOCAL1_0x27F1AC6_EP0_2026-07-28_14-49-09.log 56876      56918     2026-07-28 14:49:09.863572 NULL

参数含义:

  • NAME:归档日志文件名,包含时间戳,按顺序生成
  • FIRST_LSN:该归档日志起始 LSN,即日志的起始序列号
  • NEXT_LSN:该归档日志结束 LSN,即日志的结束序列号(下一归档的起始 LSN)
  • FIRST_TIME:归档开始时间,即归档文件创建时间
  • SIZE_MB:文件大小,本次查询因 BLOCKS 为空显示 NULL

关键理解:

  • 两个归档日志的 LSN 区间连续:56876-5691856918-159941
  • 第二个归档日志(128MB)包含批量插入的 100000 条记录
  • 归档日志按 LSN 顺序连续,确保可恢复到任意时间点

5.6 如何根据归档的 LSN 号找到对应的归档时间

场景:已知 LSN = 57000,需要找到它落在哪个归档日志以及对应的归档时间。

方法一:查询包含该 LSN 的归档日志

SELECT NAME, FIRST_TIME, COMPLETION_TIME, FIRST_CHANGE#, NEXT_CHANGE# FROM V$ARCHIVED_LOG WHERE FIRST_CHANGE# <= 57000 AND NEXT_CHANGE# > 57000;

输出:

行号  NAME                                                                              FIRST_TIME                 COMPLETION_TIME  FIRST_CHANGE#  NEXT_CHANGE#
----- --------------------------------------------------------------------------------- -------------------------- --------------- -------------- ------------
1     /home/dmdba/dmdata/test/arch/ARCHIVE_LOCAL1_0x27F1AC6_EP0_2026-07-28_14-51-13.log 2026-07-28 14:51:13.219952 NULL             56918          159941

结果:LSN 57000 落在第二个归档日志中(56918 ≤ 57000 < 159941),对应时间为 2026-07-28 14:51:13

方法二:使用系统函数(如果支持)

SELECT SF_GET_LSN_TIME(57000);

原理说明:

  • 每个归档日志记录了一个 LSN 区间 [FIRST_CHANGE#, NEXT_CHANGE#)
  • 通过判断目标 LSN 是否落在某个区间,即可确定该 LSN 对应的归档时间和日志文件
  • 这是达梦实现时间点恢复的核心机制:通过 LSN 定位到归档日志,再通过归档日志恢复到指定时间点

5.7 产生归档日志(验证归档机制)

场景:通过批量插入数据产生 Redo 日志,触发归档切换。

步骤 1:批量插入数据

INSERT INTO TEST.EMPLOYEE (ID, NAME, AGE, DEPT) SELECT LEVEL + 10, '测试' || LEVEL, 20 + MOD(LEVEL, 30), '测试部' FROM DUAL CONNECT BY LEVEL <= 100000;

输出:

影响行数 100000

步骤 2:手动切换 Redo 日志(强制归档)

ALTER SYSTEM SWITCH LOGFILE;

说明:该命令会切换 Redo 日志文件,写满的 Redo 日志会被归档进程复制到归档目录。但只有写满的 Redo 日志才会触发归档,如果当前 Redo 日志未写满,切换不会产生新归档。

步骤 3:查看归档目录

ls -lh /home/dmdba/dmdata/test/arch/

输出:

total 129M
-rw-r--r-- 1 dmdba dinstall  16K Jul 28 14:49 ARCHIVE_LOCAL1_0x27F1AC6_EP0_2026-07-28_14-49-09.log
-rw-r--r-- 1 dmdba dinstall 128M Jul 28 14:51 ARCHIVE_LOCAL1_0x27F1AC6_EP0_2026-07-28_14-51-13.log

说明:

  • 第一个归档文件 16KB(初始切换)
  • 第二个归档文件 128MB(批量插入后触发归档,大小与 FILE_SIZE=128 一致)

5.8 归档日志管理总结

操作 是否可行 方法 注意事项
扩大小 可行 ALTER DATABASE MODIFY ARCHIVELOG 'DEST=...' FILE_SIZE=xxx 需在 MOUNT 状态,语法中不加 SET
增加文件/目标 可行 ALTER DATABASE ADD ARCHIVELOG 'DEST=...' 可配置多个归档目标
上限 受磁盘空间限制 通过 SPACE_LIMIT 控制 0 表示不限制
一般建议 设总上限,定期清理 SPACE_LIMIT=102400(100GB) 建议归档和 Redo 分开存储

六、错误记录与处理方法汇总

错误 原因 解决方法
[-810]:系统未配置归档 dm.iniARCH_INI=0 修改为 1 并重启实例
[-510]:系统处于MOUNT状态 在 MOUNT 状态执行不支持的操作 切换 OPEN 后重试,或确认是否需要在 MOUNT 状态
[-2007]:语法分析出错 SQL 语法错误,如误用 SET 检查语法,参考官方文档修正
[-2004]:不支持的语句类型 该语法在当前版本不支持 使用替代语法或升级版本
[-980]:OPEN状态下仅允许添加... 在 OPEN 状态添加 LOCAL 归档 ALTER DATABASE MOUNT
[-2111]:无效的列名 视图列名与预期不一致 DESC 查看实际列名
[-6128]:无效的数字 对非数字列进行数值比较 调整查询条件

七、重启持久化验证

验证目的:确认所有修改在实例重启后仍然保留。

步骤 1:重启实例

ps -ef | grep dmserver | grep 5239 kill -9 <PID> nohup /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdata/test/TESTDB/dm.ini > /home/dmdba/dmdata/test/dm.log 2>&1 &

步骤 2:验证 Redo 日志文件

SELECT GROUP_ID, FILE_ID, PATH, RLOG_SIZE/1024/1024 AS SIZE_MB FROM V$RLOGFILE;

预期输出:3 个 Redo 日志文件,TESTDB03.log 保留。

步骤 3:验证归档配置

SELECT ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_IS_VALID FROM V$DM_ARCH_INI;

预期输出:两条归档目标记录,FILE_SIZE=256arch2 保留。

验证结果:所有配置在重启后保持。

八、Redo 和归档的管理问题汇总

问题 Redo 日志 归档日志
能扩大小吗? 可修改 dm.iniRLOG_SIZE,需重建控制文件,生产环境不推荐 通过 MODIFY ARCHIVELOG 修改 FILE_SIZE,需 MOUNT 状态
能增加文件吗? ALTER DATABASE ADD LOGFILE 'filename.log' SIZE xxx ALTER DATABASE ADD ARCHIVELOG 'DEST=...'
上限是多少? 受文件系统限制 受磁盘空间限制,通过 SPACE_LIMIT 控制
一般建议多少? 2~4 个文件,每个 256MB~1GB 设总上限(如 100GB),定期转储清理
LSN 定位 不适用 V$ARCHIVED_LOGFIRST_CHANGE#/NEXT_CHANGE# 区间定位

九、完整操作命令清单

-- 1. 查看 Redo 日志配置 SELECT GROUP_ID, FILE_ID, PATH, RLOG_SIZE/1024/1024 AS SIZE_MB FROM V$RLOGFILE; -- 2. 查看 Redo 日志使用情况 SELECT TOTAL_SPACE/1024/1024 AS TOTAL_MB, (TOTAL_SPACE - FREE_SPACE)/1024/1024 AS USED_MB, FREE_SPACE/1024/1024 AS FREE_MB FROM V$RLOG; -- 3. 查看 LSN 推进情况 SELECT CUR_LSN, FLUSH_LSN, CKPT_LSN, FREE_SPACE/1024/1024 AS FREE_MB FROM V$RLOG; -- 4. 查看归档状态 SELECT NAME, ARCH_MODE, STATUS$ FROM V$DATABASE; -- 5. 查看归档配置 SELECT ARCH_DEST, ARCH_FILE_SIZE, ARCH_SPACE_LIMIT, ARCH_IS_VALID FROM V$DM_ARCH_INI; -- 6. 开启归档(需 MOUNT 状态) ALTER DATABASE MOUNT; ALTER DATABASE ADD ARCHIVELOG 'DEST=/path/to/arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=1024'; ALTER DATABASE OPEN; -- 7. 增加 Redo 日志文件(OPEN 状态) ALTER DATABASE ADD LOGFILE 'TESTDB03.log' SIZE 4096; -- 8. 修改归档文件大小(MOUNT 状态,不加 SET) ALTER DATABASE MODIFY ARCHIVELOG 'DEST=/path/to/arch, TYPE=LOCAL, FILE_SIZE=256, SPACE_LIMIT=1024'; -- 9. 增加归档目标 ALTER DATABASE ADD ARCHIVELOG 'DEST=/path/to/arch2, TYPE=LOCAL, FILE_SIZE=256, SPACE_LIMIT=2048'; -- 10. 查看归档日志列表及 LSN 区间 SELECT NAME, FIRST_CHANGE# AS FIRST_LSN, NEXT_CHANGE# AS NEXT_LSN, FIRST_TIME, BLOCKS * BLOCK_SIZE / 1024 / 1024 AS SIZE_MB FROM V$ARCHIVED_LOG ORDER BY FIRST_CHANGE# DESC; -- 11. 根据 LSN 定位归档时间 SELECT NAME, FIRST_TIME, COMPLETION_TIME, FIRST_CHANGE#, NEXT_CHANGE# FROM V$ARCHIVED_LOG WHERE FIRST_CHANGE# <= 目标LSN AND NEXT_CHANGE# > 目标LSN; -- 12. 手动切换 Redo 日志(触发归档) ALTER SYSTEM SWITCH LOGFILE; -- 13. 批量插入数据产生 Redo 日志 INSERT INTO TEST.EMPLOYEE (ID, NAME, AGE, DEPT) SELECT LEVEL + 10, '测试' || LEVEL, 20 + MOD(LEVEL, 30), '测试部' FROM DUAL CONNECT BY LEVEL <= 100000; -- 14. 查询 dm.ini 中的 RLOG_SIZE 参数(操作系统命令) grep -i "rlog" /home/dmdba/dmdata/test/TESTDB/dm.ini
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服