新聞中心
隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)同步也變得越來越重要。在眾多的數(shù)據(jù)庫中,Oracle數(shù)據(jù)庫憑借其高可靠性、高可用性、高靈活性和高安全性等優(yōu)點成為了企業(yè)級數(shù)據(jù)庫的首選。在實際應(yīng)用中,我們經(jīng)常需要將多個Oracle數(shù)據(jù)庫之間的數(shù)據(jù)進行同步,而Oracle數(shù)據(jù)庫增量同步則是其中的一種比較常見的同步方式。本文將詳細介紹。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司十多年經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文平臺,1元廣告等。十多年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!
一、Oracle數(shù)據(jù)庫增量同步的概念
所謂增量同步,就是只同步增量部分,避免重復(fù)同步已經(jīng)同步過的部分。相對于全量同步,增量同步更加快捷,減少了對網(wǎng)絡(luò)和計算資源的占用,也降低了同步失敗的風(fēng)險。
二、Oracle數(shù)據(jù)庫增量同步的實現(xiàn)方法
1.使用Oracle內(nèi)置工具——LogMiner
LogMiner是Oracle數(shù)據(jù)庫內(nèi)置的一種工具,可以解析Oracle數(shù)據(jù)庫的Redo日志,獲取數(shù)據(jù)庫中的增量數(shù)據(jù)。通過配置LogMiner參數(shù),可以對Oracle數(shù)據(jù)庫進行增量數(shù)據(jù)的捕捉、分析和提取。
首先需要確定需要同步的數(shù)據(jù)庫中,Redo日志的大小,日志的生成周期,分析數(shù)據(jù)庫中的Redo日志。找到數(shù)據(jù)庫中特定的數(shù)據(jù),可以使用LogMiner的命令行接口或Oracle提供的GUI工具,如SQL*Loader、Oracle Data Integrator和GoldenGate等工具。在使用LogMiner時,需要注意的是,它會占用數(shù)據(jù)庫的系統(tǒng)資源,因此在使用時需進行合理的規(guī)劃和優(yōu)化。
2.使用Oracle內(nèi)置工具——Streams
Streams是Oracle自帶的一種數(shù)據(jù)復(fù)制和同步技術(shù),可以捕獲某個數(shù)據(jù)庫的更改,并將其轉(zhuǎn)換為可以在另一個數(shù)據(jù)庫上執(zhí)行的SQL語句。Streams通過一個消息訂閱模型來定位和傳遞數(shù)據(jù)庫更改,它可以在不同的Oracle數(shù)據(jù)庫之間進行實時復(fù)制和數(shù)據(jù)同步。
Streams機制中主要包括Capture、Apply和Propagation三個組件。Capture用來捕獲源數(shù)據(jù)庫中的更改,Apply用來將更改應(yīng)用于目標(biāo)數(shù)據(jù)庫,Propagation用來傳播流式數(shù)據(jù)。
3.使用第三方工具——GoldenGate
除了LogMiner和Streams外,還有一些第三方工具可以實現(xiàn)Oracle數(shù)據(jù)庫的增量同步。其中,GoldenGate是比較流行和常用的一種工具。GoldenGate可以實現(xiàn)不同數(shù)據(jù)庫之間的數(shù)據(jù)復(fù)制,提供了高可靠性和卓越的性能,可以將數(shù)據(jù)從Oracle數(shù)據(jù)庫遷移到其他數(shù)據(jù)庫,例如MySQL、SQL Server等。GoldenGate可以實現(xiàn)全量同步和增量同步,支持對數(shù)據(jù)進行過濾、轉(zhuǎn)換、掩碼、重映射和增強等操作。
GoldenGate可以實現(xiàn)多種不同的Oracle數(shù)據(jù)庫復(fù)制戰(zhàn)略,包括單向復(fù)制、雙向復(fù)制、多路復(fù)制等。通過GoldenGate,可以將數(shù)據(jù)在不同的Oracle實例間復(fù)制,從而實現(xiàn)數(shù)據(jù)一致性。
三、Oracle數(shù)據(jù)庫增量同步的技巧
1.數(shù)據(jù)庫優(yōu)化
在實際應(yīng)用中,為了提高Oracle數(shù)據(jù)庫的性能,可以進行各種優(yōu)化。首先需要分析數(shù)據(jù)庫訪問的性能瓶頸,優(yōu)化數(shù)據(jù)庫的并發(fā)訪問能力和數(shù)據(jù)存儲方式,以便提高Oracle數(shù)據(jù)庫的性能和穩(wěn)定性。
2.增量數(shù)據(jù)處理
增量數(shù)據(jù)處理是Oracle數(shù)據(jù)庫增量同步的重要環(huán)節(jié)。在進行增量數(shù)據(jù)處理時,應(yīng)避免數(shù)據(jù)清洗、數(shù)據(jù)過濾等操作,以免對同步的性能和效率產(chǎn)生影響。應(yīng)對增量數(shù)據(jù)進行統(tǒng)一規(guī)格化處理,并設(shè)置好同步策略和同步模式。
3.日志處理
在Oracle數(shù)據(jù)庫增量同步的過程中,需要進行日志處理。需要對數(shù)據(jù)庫日志進行分析、歸檔和壓縮,同時合理地設(shè)置日志清理策略。此外,還要注意數(shù)據(jù)庫日志的保護和存儲,保證日志數(shù)據(jù)的完整性和安全性。
四、
本文介紹了Oracle數(shù)據(jù)庫增量同步的概念、實現(xiàn)方法和技巧。通過使用Oracle內(nèi)置工具、第三方工具和相關(guān)技巧,可以實現(xiàn)Oracle數(shù)據(jù)庫的增量同步,并提高數(shù)據(jù)庫的性能和穩(wěn)定性,進而實現(xiàn)業(yè)務(wù)的高效運轉(zhuǎn)。在日常開發(fā)和實踐中,我們應(yīng)結(jié)合實際情況,靈活選擇不同的Oracle數(shù)據(jù)庫增量同步工具和方案,以更優(yōu)化的方式實現(xiàn)數(shù)據(jù)同步。
相關(guān)問題拓展閱讀:
- 如何跨Oracle數(shù)據(jù)庫實現(xiàn)表級別的實時同步
- 我有兩個oracle數(shù)據(jù)庫需要雙向同步
- 數(shù)據(jù)庫,增量同步和全量同步是什么?
如何跨Oracle數(shù)據(jù)庫實現(xiàn)表級別的實時同步
oracle的standby數(shù)據(jù)庫,利用聯(lián)機重做日志猛氏將主數(shù)據(jù)庫與standby數(shù)據(jù)庫之間保持同步,一般用于災(zāi)難恢復(fù)枝塌散,可以試著搭建一下 常衫春見 goldengate active dataguard stream replication
一. 前言
這個問題是上一篇文章《Oracle跨數(shù)據(jù)庫實現(xiàn)定時同步指定表中的數(shù)據(jù)》中所提問題的進一步延伸。考慮到對數(shù)據(jù)的實時性要求比較高,設(shè)置成定時同步,有點不妥,需要改善升級更改為實時同步。
下面介紹到的方式,嚴(yán)格意義上說,并沒有實現(xiàn)實時同步。是通過Oracle數(shù)據(jù)庫創(chuàng)建同義詞+DBlink的方式,來建立遠程映射。在查看數(shù)據(jù)時,直接去遠程查詢源庫中的表。
而我一直關(guān)注的是如何進行同步數(shù)據(jù),卻悉侍瞎沒有考慮到可以建立映射。另外,還有一點就是需要交代,就是同步到目標(biāo)數(shù)據(jù)庫中的表,不進行增刪改操作,只進行查詢的操作談鉛,這也是可以使用同義詞方式解決問題的關(guān)鍵。
這種解決思路的出現(xiàn),多虧了在CSDN問答時,熱心網(wǎng)友的回答,下面就是問題詳情描述。
二. 問題描述
有兩個Oracle數(shù)據(jù)庫,分別布置在不同的服務(wù)器上,系統(tǒng)均為windows2023;
這里暫且說成是一個主數(shù)據(jù)庫和從數(shù)據(jù)庫:
(1) 主數(shù)據(jù)庫:oracle_A;
(2) 從數(shù)據(jù)庫:oracle_B;
在oracle_A中有一個表table_A與oracle_B中的表table_B結(jié)構(gòu)相同;
我是處在oracle_B,oracle_A數(shù)據(jù)庫分配給我有一個訪問oracle_A表table_A的用戶,該用戶只擁有查詢的權(quán)限;
另外,需要說明的一點,就是在oracle_B處,只需對table_B表進行查詢的操作,不進行其他增刪改的操作。
場景介紹完了,我的問題的是,如何在oracle_A中表table_A發(fā)生變化時,實時更新同步到oracle_B的table_B中?
我原來的處理方式:
通過建立遠程連接DBLink+JOB定時任務(wù)+存儲過程的方式,實現(xiàn)了定時同步更新,但不能做到實時同步。
三. 采用同義詞+DB_Link的方式結(jié)果步驟
之所以能夠選擇采用同義詞的方式,處理這個問題。主要還是源于在問題描述中提到一個點,那就是我們只需要對同步后的表進行查詢操作。這點是使用同義詞方式的重要要素。
下面詳細模擬一下整個實驗測試的過程:
(1)首先在Oracle_A端創(chuàng)建一個對table_A只有查詢功能的用睜空戶
創(chuàng)建用戶
sqlplus /nolog
conn /as sysdba;
create user username identified by password;
查看所有的用戶列表
用戶創(chuàng)建完成后,查看用戶是否創(chuàng)建成功
select * from all_users;
授予權(quán)限
為了能夠保證能夠登陸,必須賦予如下權(quán)限
–授予username用戶創(chuàng)建session的權(quán)限,即登陸權(quán)限
grant create session to username;
–授予username用戶使用表空間的權(quán)限
grant unlimited tablespace to username;
–oracle對權(quán)限管理比較嚴(yán)謹(jǐn),普通用戶之間也是默認(rèn)不能互相訪問的,需要互相授權(quán).
–如果scott用戶要授權(quán)給username用戶查看自己的test表的權(quán)限;
sqlplus scott/tiget@localhost:1521/orcl
–授予username用戶查看指定的權(quán)限
grant select on test to username;
–撤銷權(quán)限
基本語法同grant,關(guān)鍵字為revoke;
(2)驗證用戶是否可以成功登錄,并進行訪問授權(quán)的表
–使用sqlplus登錄,并進行查詢
sqlplus username/password@localhost:1521/orcl;
select * from scott.test;
注意:查詢表時,務(wù)必帶上用戶名,說明是哪個用戶下的表。
(3)創(chuàng)建遠程連接DB_Link
創(chuàng)建遠程連接 db_link
create public database link db32 connect to tianzhi_test identified by “tianzhi_test” using ‘192.168.56.6:1521/ORCL’
測試遠程連接是否成功
select * from tianzhi_art.zh_item_news@db32;
(4)在Oracle_B端創(chuàng)建同義詞
使用sqlplus登錄自己的用戶
sqlplus tianzhi_art/tianzhi_art@localhost:1521/orcl
創(chuàng)建同義詞
create or replace public synonym TEST1130 for scott.TEST@db32;
查詢測試
select * from TEST1130;
可以看到這與在Oracle_A源數(shù)據(jù)庫中查到的table_A表中的數(shù)據(jù)一樣.
注意事項:
當(dāng)遠程查詢的數(shù)據(jù)庫中包含BLOB字段時,會報出如下錯誤.
ORA-22992: 無法使用從遠程表選擇的 LOB 定位器
當(dāng)出現(xiàn)這個錯誤的時候,那是因為跨庫連接查詢中的表中存在BLOB類型的字段,所以一定要注意,所有表中存在blob類型字段,
不能用 select * from 連接的表
不能將blob類型的字段出現(xiàn)在腳本中。
如果這些blob類型的字段一定要導(dǎo)過來,可以先建立臨時表再插入本地表,方法如下.在pl/sql中執(zhí)行
之一步 建臨時表
create global temporary table foo ( X BLOB )
on commit delete rows;
第二步 插入本地表
insert into foo select blobcolumn from remoteTable@dl_remote ;
我有兩個oracle數(shù)據(jù)庫需要雙向同步
高級復(fù)制……
試試物化視圖。
這個可以用DB_LINK
數(shù)據(jù)庫,增量同步和全量同步是什么?
全量備份是指對某一時間點上的所有數(shù)據(jù)進行全量備份,包括系統(tǒng)和所有數(shù)據(jù)。這種備份方式每次都需要對系統(tǒng)和所有數(shù)據(jù)進行一次全量備份。如上,如果兩次備份之間數(shù)據(jù)沒有任何變化,那么兩次備份的數(shù)據(jù)是一樣的。也就消舉是說100GB的數(shù)據(jù)即使沒有發(fā)生任何數(shù)據(jù)變化,也會多耗費100GB的存儲空間去做備份。但這種備份方式更大的好處就是在恢復(fù)丟失數(shù)據(jù)時,只需要對一個完整的備份進行操作就能夠恢復(fù)丟失數(shù)據(jù),大大加快了系統(tǒng)或數(shù)據(jù)恢復(fù)世弊的時間。
增量備份即在之一次全量備份的基礎(chǔ)上,分別記錄每次的變化。由于增量備份在備份前會判斷數(shù)據(jù)是否發(fā)生變化,并僅記錄每次變化情況,所以相較于其他兩種備份方式它更大的好處在于其所需存儲空間最少的(相同的變化情況下),備份速度最快的。當(dāng)然在數(shù)據(jù)還原拿返碧上來說,它的恢復(fù)時間是最長的,效率較低?;謴?fù)數(shù)據(jù)時,需要在之一次完備的基礎(chǔ)上,整合每次的一個變化情況。
增量同步和全量同步是數(shù)據(jù)庫同步攜兆的兩種方式。全量同步是一次性同步全部數(shù)據(jù),增量同步則只同步兩個數(shù)據(jù)庫不同的部分。
數(shù)據(jù)庫簡介:
數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫,它產(chǎn)生于距今六十多年前,隨著信息技術(shù)和市場的發(fā)展,特別是二十世紀(jì)九十年代以后,數(shù)據(jù)管理不再僅僅是存儲和管理數(shù)據(jù),而轉(zhuǎn)變成用戶所需要的各種數(shù)據(jù)管理的方式。數(shù)據(jù)庫有很嫌隱橡多種類型,從最簡單的存儲有各種數(shù)據(jù)的表格到能夠進行海量數(shù)據(jù)存儲的大型數(shù)據(jù)庫系統(tǒng)都在各個方面得芹旁到了廣泛的應(yīng)用。
數(shù)據(jù)如果保留多份,就會存在一致性問題,就需要同步,同步分為兩大類:全量和增量
2. 概述
數(shù)據(jù)如果要保留副本,要么同時森陵頃寫(就是多寫),或者進行復(fù)制:異步寫(即從主數(shù)據(jù)拷貝到副本);
同時寫(多寫),引出一個問題,寫多少節(jié)點算成功(場景:分布式系統(tǒng))?全部寫成功才算成功,還是寫大多數(shù)成功算成功,還是寫指定幾個節(jié)點算成功?
異步寫的話,此陸如果采用異步復(fù)制,那么實時性需要考量的話,就需要采用性能優(yōu)先的架構(gòu)。
3.同步方式
數(shù)據(jù)同步一般分為兩種方式:全量和增量。
3.1 全量
全量,這個很好理解。就是每天定時或者周期性全量把數(shù)據(jù)從一個地方拷貝到另外一個地方;
全量的話,可以采用直接全部覆蓋(使用“新”數(shù)據(jù)覆蓋“舊”數(shù)據(jù));或者走更新邏輯(覆蓋前判斷下,如果新舊不一致,就更新);
這里面有一個隱藏的問題:如果采用異步寫,主數(shù)據(jù)物理刪除了,怎么直接通過全量數(shù)據(jù)同步?這就需要借助一些中間操作日志文件,或者其他手段,把這些“看不到”的數(shù)據(jù)記錄起來。
3.2 增量(類如有;堅果云網(wǎng)盤增量同步功能)
增量的基礎(chǔ)是全量,就是你要使用某種方式先把全量數(shù)據(jù)拷貝過來,汪段然后再采用增量方式同步更新。
增量的話,就是指抓取某個時刻(更新時間)或者檢查點(checkpoint)以后的數(shù)據(jù)來同步,不是無規(guī)律的全量同步。這里引入一個關(guān)鍵性的前提:副本一端要記錄或者知道(通過查詢更新日志或者訂閱更新)哪些更新了。
oracle兩個數(shù)據(jù)庫之間增量同步的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于oracle兩個數(shù)據(jù)庫之間增量同步,實現(xiàn)Oracle數(shù)據(jù)庫增量同步的方法與技巧,如何跨Oracle數(shù)據(jù)庫實現(xiàn)表級別的實時同步,我有兩個oracle數(shù)據(jù)庫需要雙向同步,數(shù)據(jù)庫,增量同步和全量同步是什么?的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)頁標(biāo)題:實現(xiàn)Oracle數(shù)據(jù)庫增量同步的方法與技巧(oracle兩個數(shù)據(jù)庫之間增量同步)
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/djicidc.html


咨詢
建站咨詢
