# **Oracle 配置 LOGMINER** #
## 一、通过logminer我们可以实现:
1、确定数据的逻辑损坏的时间;
2、跟踪用户执行的事务变化操作;
3、跟踪表的DML操作;
## 二、 Logminer 安装步骤:
**最好由DBA****工程师操作:**
#### **1.开启归档日志,以下操作风险较大,请联系****DBA****工程师依次操作下列语句,开启数据库归档。** ####
a. shutdown immediate;
b. startup mount;
c. alter database archivelog;
d. alter database open;
#### **2**.**依次执行以下脚本**:(**最好由****DBA****操作,需要权限**) ####
a. 输入 @$ORACLE\_HOME/rdbms/admin/dbmslm.sql
b. 输入 @$ORACLE\_HOME/rdbms/admin/dbmslmd.sql
c. 输入 @$ORACLE\_HOME/rdbms/admin/dbmslms.sql
(注意:Oracle12c经典安装中只有前两个,但并不影响使用)

#### **3. 打开终端,连接服务器** ####
a. 输入「ssh 用户名@域名 」

b. 根据提示验证身份信息登陆
c. 登陆成功即可看到用户名出现在命令行开头
d. 
#### **4.连接后 输入 「 su - oracle」切换oracle用户** ####

a. 当看到用户变为有 「oracle@」 开头时 即表示成功
#### **5.输入 「sqlplus dp\_test/oracle」 使用dp\_test用户进入数据库(使用LOGMNR推荐使用sys用户\[如需使用其他用户需要dba权限\])** ###


a. 当看到「Conneted to: Oracle Database...」时即表示已经登陆成功,此时终端开头会变为「SQL

b. 若使用sys以外的用户,进行后续操作前请联系DBA工程师赋予「grant EXECUTE\_CATALOG\_ROLE,DBA to user;」权限
#### **6.Logminer需要开启全字段日志补全功能(suppplemental logging,**表级****/****列级**),能够补全数据库日志信息,保证传递信息的全面性。(此操作会增加Oracle数据库的日志量)** ####
a.输入「**ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;**」
b.输入「**ALTER DATABASE ADD SUPPLEMENTAL LOG DATA(ALL,PRIMARY KEY,UNIQUE) COLUMNS;**」
c.输入「SELECT supplemental\_log\_data\_min min, supplemental\_log\_data\_pk pk, supplemental\_log\_data\_ui ui, supplemental\_log\_data\_fk fk, supplemental\_log\_data\_all allc FROM v$database;」
SQL> SELECT supplemental\_log\_data\_min min, supplemental\_log\_data\_pk pk, supplemental\_log\_data\_ui ui, supplemental\_log\_data\_fk fk, supplemental\_log\_data\_all allc FROM v$database;
MIN PK UI FK ALL
\-------- --- --- --- ---
YES YES YES NO YES
d.当看到如上图所示内容时,表示已经成功。
## 三. 存在的影响:
1、对Oracle执行用户的权限依赖较高,官方推荐使用sys用户;
2、较为依赖归档日志,启用归档日志和加强日志类型后,Oracle会产生大于非归档模式下数倍的日志量,对存储空间的使用较多。但如果不使用归档日志则只能使用联机日志文件,当联机日志文件轮询较快时容易发生数据覆盖,导致数据丢失,另外过于频繁的联机日志文件的轮询会产生Oracle数据库log file sync事件,从而影响数据库服务器的IO,当应用调用Logmnr工具使用联机日志文件时还易引发服务器网络性能下降;
3、较为依赖固定的数据字典信息,使用Logmnr适用于数据字典变化较少的情形下,当Oracle数据字典发生改变则需要重新执行Logmnr配置流程。
## 四、测试logmnr
1. 在登陆用户条件下输入「select name from V$ARCHIVED\_LOG;」
a. 

b. 找到archive log file
c. 上图中蓝框内容archive log file
2. 任意一个archive log file作为logmnr测试分析使用
a. 复制archive log file路径
b. 输入 「execute sys.dbms\_logmnr.add\_logfile(logfilename=>'此处输入路径',options=>dbms\_logmnr.new);」

c. 输入「execute sys.dbms\_logmnr.start\_logmnr(Options => DBMS\_LOGMNR.DICT\_FROM\_ONLINE\_CATALOG)」

d. 输入「select count(\*) from v$logmnr\_contents;」解析日志记录条数

e. 当看到数字时,即表示logmnr已经成功部署并且可以正常使用
## 五. 赋权语句
grant select any transaction to replicater;
grant execute on dbms\_logmnr\_d to replicater;
grant execute on dbms\_logmnr to replicater;
grant execute on dbms\_flashback to replicater;
grant create session to replicater;
grant resource to replicater;
grant select any dictionary to replicater;
grant flashback any table to replicater;
grant execute\_catalog\_role to replicater;
grant select any table to replicater;
grant LOGMINING to replicater;(12g 下执行)
## 六. 强制切换归档日志命令
alter system switch logfile;
## 七.(不用修改以下设置)
**设置****LogMiner****日志切换时间,默认****0s**
**alter system set archive\_lag\_target = 60 scope=spfile;****重启生效**!
**alter system set archive\_lag\_target = 60 scope=both;****临时生效**
- DataPipeline产品手册
- 产品主要界面介绍
- 创建-数据任务
- 数据源
- 配置MySQL数据源
- BINLOG配置手册
- 配置Oracle数据源
- LOGMINER配置手册
- 配置SQL Server数据源
- Change Tracking配置手册
- 配置FTP数据源
- 配置Couchbase数据源
- 配置PostgreSQL数据源
- 配置S3数据源
- 配置API数据源
- 配置Kafka数据源
- 数据目的地
- 配置Redshift数据目的地
- 配置Oracle数据目的地
- 配置MySQL数据目的地
- 配置Kafka数据目的地
- 配置SQL Server数据目的地
- 配置FTP数据目的地
- 配置TIDB数据目的地
- 配置Greenplum数据目的地
- 配置Hive数据目的地
- Hive技术实现
- Hive目前支持情况
- 配置HybridDB for PostgreSQL
- 任务设置
- 选择同步内容
- 数据清洗
- 激活数据任务
- 管理-数据任务
- 数据任务列表
- 数据任务详情页
- 基本信息
- 概览信息
- 任务设置
- 错误队列
- 配置规则
- 消息列表
- 文件同步
- 文件源
- 配置S3文件源
- 配置FTP文件源
- 文件目的地
- 配置hdfs文件目的地
- 任务设置
- 激活文件任务
- 管理-文件任务
- 文件任务详情页
- 基本信息
- 概览信息
- 任务设置
- 消息列表
- 元数据管理
- 用户权限管理
- 系统设置
- 产品更新日志
- 常见问题
