最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle通過LogMiner實現(xiàn)數據同步遷移

 更新時間:2020年07月22日 11:12:26   作者:冰河團隊  
這篇文章主要介紹了Oracle通過LogMiner實現(xiàn)數據同步遷移的方法,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下

寫在前面

最近在研究如何實現(xiàn)Oracle數據庫之間的數據同步,網上的資料確實比較少。最好用的Oracle數據庫同步工具是:GoldenGate ,而GoldenGate是要收費的。那么還有什么好的辦法來同步Oracle的數據嗎?沒錯,就是使用LogMiner來實現(xiàn)Oracle數據同步遷移。

實現(xiàn)過程

1.創(chuàng)建目錄

在服務器上創(chuàng)建/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR目錄來存儲數據庫的字典信息,如下所示。

mkdir -p /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR

2.配置LogMiner

以oracle用戶身份登錄服務器,并以DBA身份登錄Oracle數據庫,如下所示。

sqlplus /nolog
conn / as sysdba

接下來,創(chuàng)建字典文件夾配置,如下所示。

CREATE DIRECTORY utlfile AS '/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR';
alter system set utl_file_dir='/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR' scope=spfile; 

注意:由于utl_file_dir只存在于文件當中,所以scope是以文件方式"spfile"寫入,而不是both。

3.開啟日志追加模式

alter database add supplemental log data; 

4.重啟數據庫

SHUTDOWN IMMEDIATE; 
STARTUP; 

5.創(chuàng)建數據同步用戶

創(chuàng)建數據同步用戶,如果已經有可以跳過,直接賦予權限。

create user SYNC identified by SYNC; #如果存在用戶,則不需要再次創(chuàng)建,直接授權即可
GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC; 

6.創(chuàng)建數據字典

切換到要同步數據的用戶,以DBA身份登錄,創(chuàng)建數據字典文件,如下所示。

conn SYNC/SYNC@orcl as sysdba; 
EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR'); 

創(chuàng)建數據字典的命令也可以通過Java代碼來實現(xiàn),如果使用Java代碼實現(xiàn)的話,首先可以通過JDBC連接到Oracle數據庫,然后執(zhí)行如下命令。

BEGIN
dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR'); 
END;

7.加入需要分析的日志文件

此步驟可以在Oracle命令行執(zhí)行,也可以使用Java代碼實現(xiàn)。

使用SQL語句實現(xiàn)如下所示。

EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW); 
EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE); 
EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE); 

使用Java代碼分析時,使用的SQL語句如下所示。

BEGIN 
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW); 
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE); 
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE); 
END; 

8.查看正在使用的日志文件

SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORDER BY first_change#;

status為CURRENT的為當前正在使用的日志文件

9.使用Lominer分析日志

EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora'); 

使用Java代碼分析時,使用的SQL語句如下所示。

BEGIN
dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora'); 
END;

10.查看分析結果

SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC'; 

注意:視圖v$logmnr_contents中的分析結果僅在我們運行過程'dbms_logmrn.start_logmnr'這個會話的生命期中存在,如果要查看新的日志,需要再重新加入分析日志文件、使用LogMiner分析。

11.常見問題

(1)如果出現(xiàn)“必須聲明標識符 'SYS.DBMS_LOGMNR'”異常,則需要在創(chuàng)建用戶后,為用戶賦予EXECUTE_CATALOG_ROLE權限,如下所示。

GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC; 

(2)當在查詢v$logmnr_logs時提示“表或視圖不存在”,是因為沒有查詢v$logmnr_logs的權限。此時在查詢語句中需要為seg_owner指定相應的用戶,例如,我這里使用SYNC用戶通過LogMiner進行分析,則需要將seg_owner指定為SYNC用戶,如下所示。

SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC'; 

以上就是Oracle通過LogMiner實現(xiàn)數據同步遷移的詳細內容,更多關于Oracle數據同步遷移的資料請關注腳本之家其它相關文章!

相關文章

  • Oracle跨庫訪問DBLINK使用以及實際應用

    Oracle跨庫訪問DBLINK使用以及實際應用

    這篇文章主要給大家介紹了關于Oracle跨庫訪問DBLINK使用以及實際應用的相關資料,DBLink的作用是在局域網內,通過一臺服務器上面的數據庫訪問另外一臺服務器上面數據庫的功能,需要的朋友可以參考下
    2024-01-01
  • oracle wm_concat 列轉行 逗號分隔

    oracle wm_concat 列轉行 逗號分隔

    oracle wm_concat函數,用于列轉行,逗號分隔本文將詳細介紹此功能的應用
    2012-11-11
  • 一文詳解Oracle中RAC的用法

    一文詳解Oracle中RAC的用法

    Oracle RAC(Oracle Real Application Server, Cluster)是一種分布式數據庫解決方案,本文就將詳細給大家介紹一下Oracle RAC的知識點及用法,感興趣的同學可以參考閱讀
    2023-06-06
  • Oracle查看正在執(zhí)行的sql語句的方法大全

    Oracle查看正在執(zhí)行的sql語句的方法大全

    這篇文章主要介紹了Oracle查看正在執(zhí)行的sql語句的方法大全,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起來學習吧
    2024-04-04
  • Oracle SQL語句實現(xiàn)數字四舍五入取整

    Oracle SQL語句實現(xiàn)數字四舍五入取整

    本文介紹Oracle中一些對數字的常用操作,包括向上向下去整、四舍五入、保留N位小數等操作,希望對大家有所幫助。
    2016-05-05
  • Oracle?ORA-00904:標識符無效解決方法(太坑了!!)

    Oracle?ORA-00904:標識符無效解決方法(太坑了!!)

    最近執(zhí)行sql時oracle報錯ORA-00904:標識符無效,所以這篇文章主要給大家介紹了關于Oracle?ORA-00904:標識符無效解決方法的相關資料,需要的朋友可以參考下
    2022-10-10
  • oracle數據匹配merge into的實例詳解

    oracle數據匹配merge into的實例詳解

    這篇文章主要介紹了oracle數據匹配merge into的實例詳解的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Oracle數據庫時間格式轉換的常見示例

    Oracle數據庫時間格式轉換的常見示例

    這篇文章主要給大家介紹了關于Oracle數據庫時間格式轉換的常見示例,在實際的工作中會經常會用到to_char()、to_date()函數來對時間、日期進行處理,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2024-02-02
  • Oracle查詢優(yōu)化日期運算實例詳解

    Oracle查詢優(yōu)化日期運算實例詳解

    這篇文章主要介紹了Oracle查詢優(yōu)化日期運算實例詳解的相關資料,需要的朋友可以參考下
    2017-05-05
  • Linux中Oracle啟動偵聽報錯TNS:permission denied的解決方法

    Linux中Oracle啟動偵聽報錯TNS:permission denied的解決方法

    這篇文章主要介紹了Linux中Oracle啟動偵聽時報錯TNS:permission denied的解決方法,文中給出了詳細的解決方法,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-02-02

最新評論

湘阴县| 长丰县| 天柱县| 遵义县| 托克托县| 大新县| 湘阴县| 阜阳市| 白河县| 赣榆县| 黑龙江省| 澄江县| 石屏县| 兰坪| 盖州市| 泰兴市| 玉屏| 南投县| 哈巴河县| 阿拉尔市| 孝义市| 和林格尔县| 杭锦后旗| 宁海县| 合川市| 北海市| 齐河县| 兰溪市| 柳江县| 分宜县| 梨树县| 巍山| 崇仁县| 海兴县| 缙云县| 芦山县| 宣武区| 桐梓县| 澳门| 皮山县| 隆回县|