Skip to content

Latest commit

 

History

History
434 lines (378 loc) · 15 KB

LogMiner配置.md

File metadata and controls

434 lines (378 loc) · 15 KB

Oracle配置LogMiner

目录:

注意:

1、某个Oracle数据源能同时运行的任务数量取决于该Oracle的内存大小

2、若数据量太大导致日志组频繁切换需要增加日志组数量,增大单个日志组存储大小

一、Oracle 10g(单机版)

1、查询Oracle版本信息,这里配置的是Oracle 10g

--查看oracle版本
select * from v$version;
本章Oracle的版本如上图所示。

2、通过命令行方式登录Oracle,查看是否开启日志归档

--查询数据库归档模式
archive log list;
图中显示`No Archive Mode`表示未开启日志归档。

3、开启日志归档,开启日志归档需要重启数据库,请注意

a、配置归档日志保存的路径

根据自身环境配置归档日志保存路径,需要提前创建相应目录及赋予相应访问权限

# 创建归档日志保存目录
mkdir -p /data/oracle/archivelog

# 进入Oracle目录
cd $ORACLE_HOME

# 查看Oracle权限组,本章权限组如下图所示
ls -l

# 对归档日志保存目录赋予相应权限
chown -R 下图中的用户名:下图中的组名 /data/oracle/
--配置归档日志保存的路径
alter system set log_archive_dest_1='location=/data/oracle/archivelog' scope=spfile;

b、关闭数据库

shutdown immediate;
startup mount;

c、开启日志归档

--开启日志归档
alter database archivelog;

d、开启扩充日志

--开启扩充日志
alter database add supplemental log data (all) columns; 

e、开启数据库

alter database open;

再次查询数据库归档模式,Archive Mode表示已开启归档模式,Archive destination表示归档日志储存路径。

4、配置日志组

a、查询默认日志组信息

SELECT * FROM v$log;

如上图所示,日志组的默认数量为2组,大小为4194304/1024/1024 = 4MB,这意味着日志大小每达到4MB就会进行日志组的切换,切换太过频繁会导致查询出错,因此需要增加日志组数量及大小。

b、查询日志组储存路径

SELECT * FROM v$logfile;

如上图所示,默认路径为/usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/

c、新增日志组与删除原有日志组

请与DBA联系,决定是否可以删除原有日志组。

--增加两组日志组
alter database add logfile group 3 ('/usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/redo3.log') size 200m;
alter database add logfile group 4 ('/usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/redo4.log') size 200m;
--删除原有两组日志组,并继续新增两组日志组
alter system checkpoint;
alter system switch logfile;
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database add logfile group 1 ('/usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/redo1.log') size 200m;
alter database add logfile group 2 ('/usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/redo2.log') size 200m;

d、查询创建的日志组

SELECT * FROM v$log;
SELECT * FROM v$logfile;

5、检查是否安装LogMiner工具

Oracle10g默认已安装LogMiner工具包,通过以下命令查询:

desc DBMS_LOGMNR;
desc DBMS_LOGMNR_D;

若无信息打印,则执行下列SQL初始化LogMiner工具包:

@$ORACLE_HOME/rdbms/admin/dbmslm.sql;
@$ORACLE_HOME/rdbms/admin/dbmslmd.sql;

6、创建LogMiner角色并赋权

其中roma_logminer_privs为角色名称,可根据自身需求修改。

create role roma_logminer_privs;
grant create session,execute_catalog_role,select any transaction,flashback any table,select any table,lock any table,select any dictionary to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_COL$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_OBJ$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_USER$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_UID$ to roma_logminer_privs;
grant select_catalog_role to roma_logminer_privs;

7、创建LogMiner用户并赋权

其中roma_logminer为用户名,password为密码,请根据自身需求修改。

create user roma_logminer identified by password default tablespace users;
grant roma_logminer_privs to roma_logminer;
grant execute_catalog_role to roma_logminer;
alter user roma_logminer quota unlimited on users;

8、验证用户权限

以创建的LogMiner用户登录Oracle数据库,执行以下SQL查询权限,结果如图所示:

 SELECT * FROM USER_ROLE_PRIVS;
SELECT * FROM SESSION_PRIVS;

至此,Oracle 10g数据库LogMiner实时采集配置完毕。

二、Oracle 11g(单机版)

1、查询Oracle版本信息,这里配置的是Oracle 11g

--查看oracle版本
select * from v$version;
本章Oracle的版本如上图所示。

2、通过命令行方式登录Oracle,查看是否开启日志归档

--查询数据库归档模式
archive log list;
图中显示`No Archive Mode`表示未开启日志归档。

3、开启日志归档,开启日志归档需要重启数据库,请注意

a、配置归档日志保存的路径

根据自身环境配置归档日志保存路径,需要提前创建相应目录及赋予相应访问权限

 alter system set log_archive_dest_1='location=/data/oracle/archivelog' scope=spfile;

b、关闭数据库

shutdown immediate;
startup mount;

c、开启日志归档

--开启日志归档
alter database archivelog;

d、开启扩充日志

--开启扩充日志
alter database add supplemental log data (all) columns; 

e、开启数据库

alter database open;

再次查询数据库归档模式,Archive Mode表示已开启归档模式,Archive destination表示归档日志储存路径。

4、检查是否安装LogMiner工具

Oracle11g默认已安装LogMiner工具包,通过以下命令查询:

desc DBMS_LOGMNR;
desc DBMS_LOGMNR_D;

若无信息打印,则执行下列SQL初始化LogMiner工具包:

@$ORACLE_HOME/rdbms/admin/dbmslm.sql;
@$ORACLE_HOME/rdbms/admin/dbmslmd.sql;

5、创建LogMiner角色并赋权

其中roma_logminer_privs为角色名称,可根据自身需求修改。

create role roma_logminer_privs;
grant create session,execute_catalog_role,select any transaction,flashback any table,select any table,lock any table,select any dictionary to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_COL$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_OBJ$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_USER$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_UID$ to roma_logminer_privs;
grant select_catalog_role to roma_logminer_privs;

6、创建LogMiner用户并赋权

其中roma_logminer为用户名,password为密码,请根据自身需求修改。

create user roma_logminer identified by password default tablespace users;
grant roma_logminer_privs to roma_logminer;
grant execute_catalog_role to roma_logminer;
alter user roma_logminer quota unlimited on users;

7、验证用户权限

以创建的LogMiner用户登录Oracle数据库,执行以下SQL查询权限,结果如图所示:

 SELECT * FROM USER_ROLE_PRIVS;
SELECT * FROM SESSION_PRIVS;

至此,Oracle 11g数据库LogMiner实时采集配置完毕。

三、Oracle 12c(单机版非CBD)

1、查询Oracle版本信息,这里配置的是Oracle 12c

--查看oracle版本
select BANNER from v$version;
本章Oracle的版本如上图所示。

2、通过命令行方式登录Oracle,查看是否开启日志归档

--查询数据库归档模式
archive log list;
图中显示`No Archive Mode`表示未开启日志归档。

3、开启日志归档,开启日志归档需要重启数据库,请注意

a、配置归档日志保存的路径

根据自身环境配置归档日志保存路径,需要提前创建相应目录及赋予相应访问权限

 alter system set log_archive_dest_1='location=/data/oracle/archivelog' scope=spfile;

b、关闭数据库

shutdown immediate;
startup mount;

c、开启日志归档

--开启日志归档
alter database archivelog;

d、开启扩充日志

--开启扩充日志
alter database add supplemental log data (all) columns; 

e、开启数据库

alter database open;

再次查询数据库归档模式,Archive Mode表示已开启归档模式,Archive destination表示归档日志储存路径。

4、创建LogMiner角色并赋权

其中roma_logminer_privs为角色名称,可根据自身需求修改。

create role roma_logminer_privs;
grant create session,execute_catalog_role,select any transaction,flashback any table,select any table,lock any table,logmining,select any dictionary to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_COL$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_OBJ$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_USER$ to roma_logminer_privs;
grant select on SYSTEM.LOGMNR_UID$ to roma_logminer_privs;
grant select_catalog_role to roma_logminer_privs;
grant LOGMINING to roma_logminer_privs;

5、创建LogMiner用户并赋权

其中roma_logminer为用户名,password为密码,请根据自身需求修改。

create user roma_logminer identified by password default tablespace users;
grant roma_logminer_privs to roma_logminer;
grant execute_catalog_role to roma_logminer;
alter user roma_logminer quota unlimited on users;

6、验证用户权限

以创建的LogMiner用户登录Oracle数据库,执行以下SQL查询权限,结果如图所示:

 SELECT * FROM USER_ROLE_PRIVS;
SELECT * FROM SESSION_PRIVS;

至此,Oracle 12c数据库LogMiner实时采集配置完毕。