

本章内容已在如下环境上测试:
①数据库版本:达梦DM8、dbms_logminer
一、配置源数据库
查看是否开启归档
select para_name, para_value from v$dm_ini where para_name in ('ARCH_INI','RLOG_APPEND_LOGIC');

修改dm.ini参数
设置RLOG_APPEND_LOGIC=1
alter system set 'RLOG_APPEND_LOGIC'=1 both;

配置归档
alter database mount;alter database add archivelog 'dest=/dmarch,type=local,file_size=500,space_limit=10240';alter database archivelog;alter database open;

验证结果

创建表
在HR用户下创建T_LOG_TEST表,并插入表数据,使用一条UPDATE语句更新数据。SQL语句参考如下:
create user HR identified by "HR1234567";grant dba to HR;
CREATE TABLE HR.T_LOG_TEST (ID INT,NAME VARCHAR(50)) ;INSERT INTO HR.T_LOG_TEST VALUES(1,'LIMING');INSERT INTO HR.T_LOG_TEST VALUES(2,'DAMENG');INSERT INTO HR.T_LOG_TEST VALUES(3,'TEST');INSERT INTO HR.T_LOG_TEST VALUES(4,'HANMEIMEI');INSERT INTO HR.T_LOG_TEST VALUES(5,'DAIWEI');INSERT INTO HR.T_LOG_TEST VALUES(6,'JACK');UPDATE HR.T_LOG_TEST SET ID = ID + 10 WHERE ID <10;COMMIT;

归档
alter system archive log current;


创建表空间及用户

alter system archive log current;
归档

查看归档
select sequence# seq, name , to_char(first_time,'yyyy-mm-dd hh24:mi:ss') first_time, to_char(next_time,'yyyy-mm-dd hh24:mi:ss') next_time, first_change# , next_change# from v$archived_log;


修改dm.ini参数并配置归档

查询魔数
SELECT DB_MAGIC FROM V$RLOG;

下载源端归档日志到本地(不要使用xftp下载,会损坏日志)

dmmdf.exe TYPE=2 FILE="D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_20-53-16.log"dmmdf.exe TYPE=2 FILE="D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_21-00-45.log"dmmdf.exe TYPE=2 FILE="D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_21-02-56.log"
修改归档日志魔数(依次修改三个归档日志魔数)
PS D:\dmdbms\bin> dmmdf.exe TYPE=2 FILE="D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_20-53-16.log"dmmdf V8**********************************************************1 sig = DMALOG2 ver = 70063 chksum = 14485881214 sta = 15 n_magic = 06 db_magic = 21029623657 len = 2739208 free = 2739209 clsn = 4048310 clsn_fil = 011 clsn_off = 409612 pemnt_magic = 2228609213 fil_id = 015 next_seq = 398516 g_next_seq = 398517 arch_lsn = 3793118 arch_seq = 397119 dbversion = 0x7000b20 min_exec_version = V8.1.1.121 min_dct_version = 422 p_db_magic = 023 n_apply_ep = 024 apply_info_lsn = 0pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)25 recv_p_db_magic = 026 recv_n_apply_ep = 0recv_pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)recv_apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)**********************************************************You can only reset sta(4) or db_magic (6) or clsn (9) or clsn_fil(10) or clsn_off(11) or pemnt_magic(12) or fil_id(13) or next_seq(15) or g_next_seq(16) or p_db_magic(20) or n_apply_ep(21).Please input the num which one you want to change, q to quit: 6+++++++++++++++--db_magic值编号为6因此这里输入6++++++++++++++++Input the new value: 1021174950+++++++++++++++填写本地库的db_magic值+++++++++++++++++++++++++**********************************************************1 sig = DMALOG2 ver = 70063 chksum = 3997038744 sta = 15 n_magic = 06 db_magic = 10211749507 len = 2739208 free = 2739209 clsn = 4048310 clsn_fil = 011 clsn_off = 409612 pemnt_magic = 2228609213 fil_id = 015 next_seq = 398516 g_next_seq = 398517 arch_lsn = 3793118 arch_seq = 397119 dbversion = 0x7000b20 min_exec_version = V8.1.1.121 min_dct_version = 422 p_db_magic = 023 n_apply_ep = 024 apply_info_lsn = 0pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)25 recv_p_db_magic = 026 recv_n_apply_ep = 0recv_pkg_seq_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)recv_apply_lsn_arr: (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)**********************************************************Do you want to quit and save the change to file (y/n): y -------保存Save to file success!
添加归档日志文件到本地库
DBMS_LOGMNR.ADD_LOGFILE('D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_20-53-16.log');DBMS_LOGMNR.ADD_LOGFILE('D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_21-00-45.log');DBMS_LOGMNR.ADD_LOGFILE('D:\dmdbms\arch\ARCHIVE_LOCAL1_0x7D58A8BD[0]_2020-11-27_21-02-56.log');

查询归档信息
select low_scn, next_scn, low_time, high_time, log_id, filename from v$logmnr_logs;

启动归档日志文件分析
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2066);

查看日志分析过程
select * from V$LOGMNR_PARAMETERS;

查看分析结果
SELECT OPERATION_CODE , OPERATION, SCN, SQL_REDO, TIMESTAMP ,SEG_OWNER, TABLE_NAME FROM V$LOGMNR_CONTENTS WHERE TABLE_NAME is not null;
查询结果如下图,从SQL_REDO字段中可以看出包含了我们步骤2中执行的所有操作。

DBMS_LOGMNR.END_LOGMNR();


往期回顾

最后修改时间:2021-01-29 16:36:47
文章转载自达梦大学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




