在数据库中挖掘归档很重要,对于分析锁等待、误操作、找回数据非常有用。
下面是关于DM日志挖掘的一个测试实验。
1 创建系统包
SQL> sp_create_system_packages(1,‘DBMS_LOGMNR’);
2 检查是否开启了归档和附加日志
SQL> select para_name, para_value from v$dm_ini where para_name in (‘RLOG_APPEND_LOGIC’,‘ARCH_INI’);
PARA_NAME PARA_VALUE
----------------- ----------
RLOG_APPEND_LOGIC 0
ARCH_INI 0
数据库未开启归档。
3 手动开启归档的办法:
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ADD ARCHIVELOG ‘DEST = /data/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048’;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
SQL> alter system set ‘RLOG_APPEND_LOGIC’=1 both;
SQL> exit
4 创建测试表空间,生成新的日志。
SQL> create tablespace testtbs datafile ‘/data/DAMENG/testtbs.dbf’ size 128 autoextend on;
SQL> create user testuser identified by dameng123 default tablespace testtbs;
5 进行日志切换
SQL> alter system archive log current;
6 查看归档日志
SQL> 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;
行号 seq name first_time next_time first_change#
---------- ----------- --------------------------------------------------------------- ------------------- ------------------- --------------------
next_change#
--------------------
---------- ----------- --------------------------------------------------------------- ------------------- ------------------- --------------------
1 1 /data/arch/ARCHIVE_LOCAL1_0x18061C30[0]_2021-12-18_15-49-20.log 2021-12-18 15:43:11 2021-12-18 15:49:36 52034
52093
7 添加一个或多个需要分析的归档日志文件。
SQL> DBMS_LOGMNR.ADD_LOGFILE(’/data/arch/ARCHIVE_LOCAL1_0x18061C30[0]_2021-12-18_15-49-20.log’)
8 可以通过动态视图V
L
O
G
M
N
R
L
O
G
S
查
询
A
D
D
L
O
G
F
I
L
E
添
加
的
归
档
日
志
文
件
信
息
S
Q
L
>
s
e
l
e
c
t
l
o
w
s
c
n
,
n
e
x
t
s
c
n
,
l
o
w
t
i
m
e
,
h
i
g
h
t
i
m
e
,
l
o
g
i
d
,
f
i
l
e
n
a
m
e
f
r
o
m
v
LOGMNR_LOGS查询 ADD_LOGFILE 添加的归档日志文件信息 SQL> select low_scn, next_scn, low_time, high_time, log_id, filename from v
LOGMNRLOGS查询ADDLOGFILE添加的归档日志文件信息SQL>selectlowscn,nextscn,lowtime,hightime,logid,filenamefromvlogmnr_logs;
行号 low_scn next_scn low_time high_time log_id
---------- -------------------- -------------------- -------------------------- -------------------------- -----------
filename
---------------------------------------------------------------
1 52034 52093 2021-12-18 15:43:11.153000 2021-12-18 15:49:36.121000 0
/data/arch/ARCHIVE_LOCAL1_0x18061C30[0]_2021-12-18_15-49-20.log
9 启动归档日志文件分析
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2066);
10 查看归档日志文件分析结果
SQL> SELECT OPERATION_CODE , OPERATION, SCN, SQL_REDO, TIMESTAMP ,SEG_OWNER, TABLE_NAME FROM V$LOGMNR_CONTENTS WHERE TABLE_NAME is not null;
行号 OPERATION_CODE OPERATION SCN SQL_REDO
---------- -------------- --------- -------------------- -------------------------------------------------------------------------------------
TIMESTAMP SEG_OWNER TABLE_NAME
-------------------------- --------- ----------
1 5 DDL 52037 create tablespace testtbs datafile '/data/DAMENG/testtbs.dbf' size 128 autoextend on;
2021-12-18 15:49:20.667000 NULL
2 5 DDL 52061 create user testuser identified by dameng123 default tablespace testtbs;
2021-12-18 15:49:36.097000 NULL
更多资讯请上达梦技术社区了解:https://eco.dameng.com