logminer java_使用OracleLogminer同步Demo1Demo介绍-博客园.PDF
使用OracleLogminer同步Demo1Demo介紹-博客園
使用Oracle Logminer 同步Demo
1 Demo 介紹
1.1 Demo 設(shè)想
前面介紹了Oracle LogMiner 配置使用以及使用LogMiner 進(jìn)行解析日志文件性能,在這
篇文章中將利用 LogMiner 進(jìn)行數(shù)據(jù)同步,實(shí)現(xiàn)從源目標(biāo)數(shù)據(jù)庫到目標(biāo)數(shù)據(jù)庫之間的數(shù)據(jù)同步。
由于LogMiner 支持的版本是8.1 及以上,所以進(jìn)行數(shù)據(jù)同步的Oracle 數(shù)據(jù)庫版本也必須是8.1
及以上。
當(dāng)然在本文中介紹的是LogMiner進(jìn)行數(shù)據(jù)同步例子,也可以利用LogMiner進(jìn)行數(shù)據(jù)審計(jì)、
數(shù)據(jù)操作追蹤等功能,由于這些從操作原理來說是一致,在本文不做討論。
1.2 框架圖
第 1 頁 共 9 頁 出自石山園主,博客地址:/shishanyuan
1.3 流程圖
? 配置階段
1、控制端:指定源端、目標(biāo)端數(shù)據(jù)庫信息、LOGMINER 同步時(shí)間等配置信息;
? 獲取源端同步數(shù)據(jù)
2、控制臺(tái):通過定時(shí)輪詢的方式檢測是否到達(dá)數(shù)據(jù)同步時(shí)間,如果是則進(jìn)行數(shù)據(jù)同步,否
則繼續(xù)進(jìn)行輪詢;
3、源數(shù)據(jù)庫 :定時(shí)加載數(shù)據(jù)庫歸檔日志文件到動(dòng)態(tài)表v$logmnr_contents 中;
4、源數(shù)據(jù)庫:根據(jù)條件讀取指定sql 語句;
? 目標(biāo)端數(shù)據(jù)入庫
5、源數(shù)據(jù)庫:執(zhí)行sql 語句。
2 代碼分析
2.1 目錄及環(huán)境配置
在該 Demo 項(xiàng)目中需要引入Oracle JDBC 驅(qū)動(dòng)包,具體項(xiàng)目分為四個(gè)類 :
第 2 頁 共 9 頁 出自石山園主,博客地址:/shishanyuan
1. Start.java :程序入口方法;
2. SyncTask.java :數(shù)據(jù)同步Demo 核心,生成字典文件和讀取日志文件、目標(biāo)數(shù)據(jù)庫執(zhí)
行SQL 語句等;
3. DataBase.java :數(shù)據(jù)庫操作基礎(chǔ)類;
4. Constants.java :源數(shù)據(jù)庫、目標(biāo)數(shù)據(jù)庫配置、字典文件和歸檔文件路徑。
2.2 代碼分析
2.2.1 Constants.java
在該類中設(shè)置了數(shù)據(jù)同步開始SCN 號(hào)、源數(shù)據(jù)庫配置、目標(biāo)數(shù)據(jù)庫配置以及字典文件/ 日志
文件路徑。需要注意的是在源數(shù)據(jù)庫配置中有兩個(gè)用戶:一個(gè)是調(diào)用 LogMiner 用戶,該用戶
需要擁有dbms_logmnr、dbms_logmnr_d 兩個(gè)過程權(quán)限,在該Demo 中該用為為sync ;另
外一個(gè)為 LogMiner 讀取該用戶操作SQL 語句,在該Demo 中該用為為LOGMINER。
package com.constants;
/**
* [Constants]|描述:Logminer配置參數(shù)
* @作者: ***
* @日期: 2013-1-15 下午01:53:57
* @修改歷史:
*/
public class Constants {
/** 上次數(shù)據(jù)同步最后SCN號(hào) */
public static String LAST_SCN = "0";
第 3 頁 共 9 頁 出自石山園主,博客地址:/shishanyuan
/** 源數(shù)據(jù)庫配置 */
public static String DATABASE_DRIVER="oracle.jdbc.driver.OracleDriver";
public static String
SOURCE_DATABASE_URL="jdbc:oracle:thin:@:1521:practice";
public static String SOURCE_DATABASE_USERNAME="sync";
public static String SOURCE_DATABASE_PASSWORD="sync";
public static String SOURCE_CLIENT_USERNAME = "LOGMINER";
/** 目標(biāo)數(shù)據(jù)庫配置 */
public static String SOURCE_TARGET_URL="jdbc:oracle:thin:@:1521:target";
public static String SOURCE_TARGET_USERNAME="target";
public
總結(jié)
以上是生活随笔為你收集整理的logminer java_使用OracleLogminer同步Demo1Demo介绍-博客园.PDF的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LeetCode笔记】剑指 Offer
- 下一篇: 用稳压管保护单片机引脚_一步一步,全程揭