濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Oracle通過(guò)LogMiner實(shí)現(xiàn)數(shù)據(jù)同步遷移

Oracle通過(guò)LogMiner實(shí)現(xiàn)數(shù)據(jù)同步遷移

熱門(mén)標(biāo)簽:汽車(chē)4s店百度地圖標(biāo)注店 安陽(yáng)企業(yè)電銷(xiāo)機(jī)器人供應(yīng)商 電銷(xiāo)套路機(jī)器人 網(wǎng)貸外呼系統(tǒng)合法嗎 杭州網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商 地圖標(biāo)注效果的制作 手機(jī)地圖標(biāo)注門(mén)店 鶴壁電話(huà)機(jī)器人價(jià)格 地圖標(biāo)注坐標(biāo)圖標(biāo)

寫(xiě)在前面

最近在研究如何實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步,網(wǎng)上的資料確實(shí)比較少。最好用的Oracle數(shù)據(jù)庫(kù)同步工具是:GoldenGate ,而GoldenGate是要收費(fèi)的。那么還有什么好的辦法來(lái)同步Oracle的數(shù)據(jù)嗎?沒(méi)錯(cuò),就是使用LogMiner來(lái)實(shí)現(xiàn)Oracle數(shù)據(jù)同步遷移。

實(shí)現(xiàn)過(guò)程

1.創(chuàng)建目錄

在服務(wù)器上創(chuàng)建/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR目錄來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)的字典信息,如下所示。

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

2.配置LogMiner

以oracle用戶(hù)身份登錄服務(wù)器,并以DBA身份登錄Oracle數(shù)據(jù)庫(kù),如下所示。

sqlplus /nolog
conn / as sysdba

接下來(lái),創(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只存在于文件當(dāng)中,所以scope是以文件方式"spfile"寫(xiě)入,而不是both。

3.開(kāi)啟日志追加模式

alter database add supplemental log data; 

4.重啟數(shù)據(jù)庫(kù)

SHUTDOWN IMMEDIATE; 
STARTUP; 

5.創(chuàng)建數(shù)據(jù)同步用戶(hù)

創(chuàng)建數(shù)據(jù)同步用戶(hù),如果已經(jīng)有可以跳過(guò),直接賦予權(quán)限。

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

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

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

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)建數(shù)據(jù)字典的命令也可以通過(guò)Java代碼來(lái)實(shí)現(xiàn),如果使用Java代碼實(shí)現(xiàn)的話(huà),首先可以通過(guò)JDBC連接到Oracle數(shù)據(jù)庫(kù),然后執(zhí)行如下命令。

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

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

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

使用SQL語(yǔ)句實(shí)現(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代碼分析時(shí),使用的SQL語(yǔ)句如下所示。

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的為當(dāng)前正在使用的日志文件

9.使用Lominer分析日志

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

使用Java代碼分析時(shí),使用的SQL語(yǔ)句如下所示。

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

10.查看分析結(jié)果

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

注意:視圖v$logmnr_contents中的分析結(jié)果僅在我們運(yùn)行過(guò)程'dbms_logmrn.start_logmnr'這個(gè)會(huì)話(huà)的生命期中存在,如果要查看新的日志,需要再重新加入分析日志文件、使用LogMiner分析。

11.常見(jiàn)問(wèn)題

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

GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC; 

(2)當(dāng)在查詢(xún)v$logmnr_logs時(shí)提示“表或視圖不存在”,是因?yàn)闆](méi)有查詢(xún)v$logmnr_logs的權(quán)限。此時(shí)在查詢(xún)語(yǔ)句中需要為seg_owner指定相應(yīng)的用戶(hù),例如,我這里使用SYNC用戶(hù)通過(guò)LogMiner進(jìn)行分析,則需要將seg_owner指定為SYNC用戶(hù),如下所示。

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

以上就是Oracle通過(guò)LogMiner實(shí)現(xiàn)數(shù)據(jù)同步遷移的詳細(xì)內(nèi)容,更多關(guān)于Oracle數(shù)據(jù)同步遷移的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Oracle 日志挖掘(LogMiner)使用詳解
  • Oracle LogMiner的使用實(shí)例代碼
  • 理解和使用Oracle 8i分析工具LogMiner
  • 通過(guò)LogMiner實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)同步遷移

標(biāo)簽:南陽(yáng) 柳州 河源 泰安 酒泉 銀川 焦作 梧州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle通過(guò)LogMiner實(shí)現(xiàn)數(shù)據(jù)同步遷移》,本文關(guān)鍵詞  Oracle,通過(guò),LogMiner,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle通過(guò)LogMiner實(shí)現(xiàn)數(shù)據(jù)同步遷移》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Oracle通過(guò)LogMiner實(shí)現(xiàn)數(shù)據(jù)同步遷移的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    思茅市| 比如县| 平昌县| 巴中市| 易门县| 军事| 呈贡县| 荔波县| 儋州市| 太湖县| 邮箱| 凤翔县| 安康市| 福州市| 甘谷县| 贡嘎县| 繁峙县| 凤翔县| 涿鹿县| 清丰县| 日土县| 教育| 广德县| 江油市| 华池县| 肥东县| 甘南县| 烟台市| 石首市| 阜康市| 永昌县| 扎囊县| 平果县| 宝丰县| 锡林郭勒盟| 天等县| 宜黄县| 广宁县| 密云县| 嘉兴市| 兴仁县|