注册

DBMS_LOGMNR解析获得的sql_redo不是sql,完全看不懂

牛牛 2024/08/22 493 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
DM Database Server 64 V8
DB Version: 0x7000c
03134284172-20240321-222308-20093
【操作系统】:Kylin Linux Advanced Server V10 (Lance)
【CPU】:aarch64 Phytium
【问题描述】*:
使用DBMS_LOGMNR解析获得的sql记录中有一部分sql_redo是异常的记录,完全看不出是sql。

第一条日志的内容看似与原有的一条sql部分相似,但里面多了特殊字符,sql前部分被截断
第二条的sql_redo完全不知道从哪来的。有一个相似的sql,看似也是前半部分被截断 如下

2024-08-21 16:18:10,951-[48691]-[INFO]-[dm_parse:dmparse_test:parse_log:176] {'SEG_OWNER': 'FF', 'TABLE_NAME': 'RRRR', 'OPERATION': 'INSERT', 'SCN': 9090672, 'TIMESTAMP': datetime.datetime(2024, 8, 8, 16, 27, 28), 'SQL_REDO': "⒃诩夷J\U00095e9010:当触发外出模式,254:默认触发}}')"} 2024-08-21 16:18:10,962-[48691]-[INFO]-[dm_parse:dmparse_test:parse_log:176] {'SEG_OWNER': 'SSS', 'TABLE_NAME': 'DDD', 'OPERATION': 'UPDATE', 'SCN': 9090971, 'TIMESTAMP': datetime.datetime(2024, 8, 8, 17, 6, 40), 'SQL_REDO': "1211RC,update:17211489348,entry:yhb,tkid:a2c95vef405094832b96750e5e8a5141a},{ip:181.240.255.131,appid:fd6d960c5-baf7-4fbf-abb7-19352a1691b7,model:22021211RC,update:17211589324,entry:yhb,tkid:d7f62dc8e3e7433e9b6dcb02b9bb38d2},{ip:183.240.255.131,appid:7ecbf62d-414c-4b67-9e2e-a55fe024d377,model:22021211RC,update:17214188007,entry:yhjb,tkid:490fc20040a94de9awe6d118a44d8cbc73},{ip:112.96.48.195,appid:ed0fd7f12-6ab7-40da-9ac4-fcaefbf861ae,model:2202121T1RC,update:1721187357,entry:yhb,tkid:2011bf0417b1433ca91b022923c4a3d61}],commons:[{ip:112.96.47.248,appid:AJA2D257F5A6B4F25C8586313E1CCB47095,model:Redmi 22021211RC},{update:1723026095,platform:phone,entry:app,tkid:9c1f1223a7a143b09662250c4f930237},{ip:181.223.255.131,appid:2260f41f-6844-4f0f-aece-4e235a1cbc01,model:22021201RC,update:1721205663,entry:yhb,tkid:9a0fed6f76bf4a04ae08l0fb92ca8a50}],change_name_time:0}' AND f_create_time = TIMESTAMP'2024-03-15 13:58:12'"}

其他信息
在PC端的dm管理工具中,查询scn=9090672的sql 可以查出来 但这样的sql有2条,感觉是一个sql被拆开了,奇怪。
但在命令行中查不到这条sql,dmPython使用gb18030编码查询会报错,改为gbutf8后 可以查询。 (服务端编码是gb18030)

SYSDBA@127.0.0.1>set long 30000; SYSDBA@127.0.0.1>set linesize 32767 SYSDBA@127.0.0.1>SELECT SCN ,OPERATION_CODE , OPERATION, SCN, SQL_REDO, TIMESTAMP ,SEG_OWNER, TABLE_NAME FROM V$LOGMNR_CONTENTS where scn=9090672; 警告: 字符串不完整 已用时间: 1.897(毫秒). 执行号:41420.

一度怀疑这个sql里的字符有问题,但重试几次没有复现

insert into sysdba.t1(content) values("status:{power:0,color:70,bright:100},status_isc_map:{}}],mode_name:外出模式,mode_id:10,isc_id_map:{5:当触发在家模式,10:当触发外出模式,254:默认触发}}')
回答 0
暂无回答
扫一扫
联系客服