Oracle Database Change Data Capture feature
Oracle Database Change Data Capture feature
變化資料捕獲是一個通稱,是用來描述捕捉增量變化應用到資料儲存。隨著資料量的不斷增長和資料儲存日益變化,資料捕獲是資料倉儲一個重要功能,特別是要求實時或近實時的資料倉儲。
在Oracle資料庫概念中,資料採集的變化資料庫功能,能夠在Oracle資料庫上捕捉增量。傳統上你會必須修改原始碼的應用,以捕獲增量變化。
Oracle的變化資料捕獲使增量變化捕獲而不對源程式做任何更改。
Oracle資料庫10g第2版介紹非同步分散式CDC,比原有9i資料庫第2版有了更大的提高。這食譜介紹如何設定這樣一個非同步變化資料捕獲環境。
Publishers and subscribers (發行商和使用者)
publisher 就是釋出變化資料捕捉的資料庫使用者.所以在ODI需要先建立一個釋出者.
subscriber 就是通過所謂的訂購,利用這個捕捉的變化資料的資料庫使用者,也可以理解為訂閱者.
出於安全原因,出版商和使用者不應該是相同的資料庫使用者。一個 Publisher可以支援許多subscriber使用者。
CDC利用變化表和使用者檢視。資料變化寫入變化表為使用CDC提供了一個可擴充套件的基礎架構.使用者使用者針對變化表的資料可以獲得一致資料變化集的檢視。使用者可以擴充套件和清除訂閱窗戶,通過資料庫檢視,隱式地改變資料集。如果沒有任何使用者訂閱變化資料,變化表中的資料可以被清除。CDC 通過PL/SQL包進行呼叫.
CDC有兩種捕捉資料方式 同步CDC和非同步CDC.
非同步CDC又分3種模式: 非同步Hotlog模式,非同步分散式HotLog模式,非同步Autolog模式.
同步CDC模式建立方式:
1.建立Publisher使用者,在sys使用者中建立變化表集(change set),然後在變化集中建立相應的變化表
(change table),一個change set可以對應多個change table.
2.建立Subscriber使用者,publisher使用者把change table訪問許可權授予subscriber使用者.
3.Subscriber可以建立subscription(訂閱),通過建立subscribe可以訂閱change set中多個source table,
這個table是change table的源表.
4.啟用訂閱 activate subscription
5.擴充套件視窗 extend_windows,擴充套件視窗以後才能看到資料變化.如果想每次都看到資料的變化,必須每次擴充套件視窗.
非同步HotLog模式建立方式:
1.建立publisher使用者,授予相應許可權,設定資料庫引數.
2.修改資料庫force logging,add supplemental,archive log,同時把相應源表的列新增到supplemental 列.
3.在sys使用者下建立change set,change table,同時啟用change set以後,就可以通過change table看捕捉的資料
在alert_devdb.log看到下面:
LOGMINER: End mining logfiles during dictionary load for session 11
Thu Apr 09 05:49:15 2009
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 172, /u01/app/oracle/archive/devdb/1_172_679002284.dbf
LOGMINER: End mining logfile for session 11 thread 1 sequence 172, /u01/app/oracle/archive/devdb/1_172_679002284.dbf
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 173, +DATA/devdb/onlinelog/group_2.262.679002289
Thu Apr 09 05:49:32 2009
knllgobjinfo: MISSING Streams multi-version data dictionary!!!
knlldmm: gdbnm=DEVDB
knlldmm: bjn=74098
knlldmm: bjv=1
knlldmm: scn=1292448
knlldmm: pnum=1
Thu Apr 09 05:49:51 2009
LOGMINER: End mining logfile for session 11 thread 1 sequence 173, +DATA/devdb/onlinelog/group_2.262.679002289
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 174, +DATA/devdb/onlinelog/group_3.263.679002291
Thu Apr 09 05:50:01 2009
LOGMINER: End mining logfile for session 11 thread 1 sequence 174, +DATA/devdb/onlinelog/group_3.263.679002291
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 175, +DATA/devdb/onlinelog/group_1.261.679002285
注意:
As the errors are one-time only errors reported on table creation and they do not affect Streams replication they can be safely ignored.
In this case this message does not indicate incorrect operation of Streams.
非同步分佈Hotlog和Autolog模式:
因為涉及兩個資料庫,分別是source database和staging database
1.在source database建立一個publisher使用者.在staging database 建立一個publisher使用者.
2.配置staging database和source database的資料庫引數,同時設定global_names=true or false
3.在source database 修改資料庫force logging,add supplemental,同時加源表到supplemental 日誌組.
4.在source database建立到staging database的dblink.在staging database建立到source database的dblink,如果dblink名字和
service name不一致,會出現錯誤,solution如下:
Metalink:
Solution
-- To implement the solution, please execute the following steps::
Drop and recreate the dblinks at SOURCE and STAGING databases.
Make sure the database links are created with names that match exactly the GLOBAL_NAME of the
database they connect to.
5.在staging database建立分散式的change source(和之前模式相比,這裡change source是單獨建立,不像之前,直接在建立change set直接輸入HOTLOG_SOURCE),change set,change table.
注意在11g建立change table還會出錯,因為多了一個DDL相關引數,加入以後,選擇'Y'
6.在staging database中啟用 change source,change set
7.在staging database中將change table許可權授予使用者或者subscriber
變化資料捕獲是一個通稱,是用來描述捕捉增量變化應用到資料儲存。隨著資料量的不斷增長和資料儲存日益變化,資料捕獲是資料倉儲一個重要功能,特別是要求實時或近實時的資料倉儲。
在Oracle資料庫概念中,資料採集的變化資料庫功能,能夠在Oracle資料庫上捕捉增量。傳統上你會必須修改原始碼的應用,以捕獲增量變化。
Oracle的變化資料捕獲使增量變化捕獲而不對源程式做任何更改。
Oracle資料庫10g第2版介紹非同步分散式CDC,比原有9i資料庫第2版有了更大的提高。這食譜介紹如何設定這樣一個非同步變化資料捕獲環境。
Publishers and subscribers (發行商和使用者)
publisher 就是釋出變化資料捕捉的資料庫使用者.所以在ODI需要先建立一個釋出者.
subscriber 就是通過所謂的訂購,利用這個捕捉的變化資料的資料庫使用者,也可以理解為訂閱者.
出於安全原因,出版商和使用者不應該是相同的資料庫使用者。一個 Publisher可以支援許多subscriber使用者。
CDC利用變化表和使用者檢視。資料變化寫入變化表為使用CDC提供了一個可擴充套件的基礎架構.使用者使用者針對變化表的資料可以獲得一致資料變化集的檢視。使用者可以擴充套件和清除訂閱窗戶,通過資料庫檢視,隱式地改變資料集。如果沒有任何使用者訂閱變化資料,變化表中的資料可以被清除。CDC 通過PL/SQL包進行呼叫.
CDC有兩種捕捉資料方式 同步CDC和非同步CDC.
非同步CDC又分3種模式: 非同步Hotlog模式,非同步分散式HotLog模式,非同步Autolog模式.
同步CDC模式建立方式:
1.建立Publisher使用者,在sys使用者中建立變化表集(change set),然後在變化集中建立相應的變化表
(change table),一個change set可以對應多個change table.
2.建立Subscriber使用者,publisher使用者把change table訪問許可權授予subscriber使用者.
3.Subscriber可以建立subscription(訂閱),通過建立subscribe可以訂閱change set中多個source table,
這個table是change table的源表.
4.啟用訂閱 activate subscription
5.擴充套件視窗 extend_windows,擴充套件視窗以後才能看到資料變化.如果想每次都看到資料的變化,必須每次擴充套件視窗.
非同步HotLog模式建立方式:
1.建立publisher使用者,授予相應許可權,設定資料庫引數.
2.修改資料庫force logging,add supplemental,archive log,同時把相應源表的列新增到supplemental 列.
3.在sys使用者下建立change set,change table,同時啟用change set以後,就可以通過change table看捕捉的資料
在alert_devdb.log看到下面:
LOGMINER: End mining logfiles during dictionary load for session 11
Thu Apr 09 05:49:15 2009
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 172, /u01/app/oracle/archive/devdb/1_172_679002284.dbf
LOGMINER: End mining logfile for session 11 thread 1 sequence 172, /u01/app/oracle/archive/devdb/1_172_679002284.dbf
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 173, +DATA/devdb/onlinelog/group_2.262.679002289
Thu Apr 09 05:49:32 2009
knllgobjinfo: MISSING Streams multi-version data dictionary!!!
knlldmm: gdbnm=DEVDB
knlldmm: bjn=74098
knlldmm: bjv=1
knlldmm: scn=1292448
knlldmm: pnum=1
Thu Apr 09 05:49:51 2009
LOGMINER: End mining logfile for session 11 thread 1 sequence 173, +DATA/devdb/onlinelog/group_2.262.679002289
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 174, +DATA/devdb/onlinelog/group_3.263.679002291
Thu Apr 09 05:50:01 2009
LOGMINER: End mining logfile for session 11 thread 1 sequence 174, +DATA/devdb/onlinelog/group_3.263.679002291
LOGMINER: Begin mining logfile for session 11 thread 1 sequence 175, +DATA/devdb/onlinelog/group_1.261.679002285
注意:
As the errors are one-time only errors reported on table creation and they do not affect Streams replication they can be safely ignored.
In this case this message does not indicate incorrect operation of Streams.
非同步分佈Hotlog和Autolog模式:
因為涉及兩個資料庫,分別是source database和staging database
1.在source database建立一個publisher使用者.在staging database 建立一個publisher使用者.
2.配置staging database和source database的資料庫引數,同時設定global_names=true or false
3.在source database 修改資料庫force logging,add supplemental,同時加源表到supplemental 日誌組.
4.在source database建立到staging database的dblink.在staging database建立到source database的dblink,如果dblink名字和
service name不一致,會出現錯誤,solution如下:
Metalink:
Solution
-- To implement the solution, please execute the following steps::
Drop and recreate the dblinks at SOURCE and STAGING databases.
Make sure the database links are created with names that match exactly the GLOBAL_NAME of the
database they connect to.
5.在staging database建立分散式的change source(和之前模式相比,這裡change source是單獨建立,不像之前,直接在建立change set直接輸入HOTLOG_SOURCE),change set,change table.
注意在11g建立change table還會出錯,因為多了一個DDL相關引數,加入以後,選擇'Y'
6.在staging database中啟用 change source,change set
7.在staging database中將change table許可權授予使用者或者subscriber
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/175005/viewspace-618103/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sqlserver Change Data Capture&Change TrackingSQLServerAPT
- salesforce零基礎學習(一百零五)Change Data CaptureSalesforceAPT
- 淺析SQL Server 2008的Change Data Capture功能SQLServerAPT
- oracle 10g和11g下 CDC機制(change data capture) 變化資料捕捉Oracle 10gAPT
- Oracle Database 12C New FeatureOracleDatabase
- Oracle10g New Feature -- 6. Oracle Data PumpOracle
- Oracle10g New Feature -- 4. Flashback DatabaseOracleDatabase
- Oracle Data Guard Feature 12cR2系列(二)Oracle
- Oracle Data Guard Feature 12cR2系列(一)Oracle
- Unload data to a flat file from Oracle databaseOracleDatabase
- Oracle 11g Data Guard 使用 duplicate from active database 建立 standby databaseOracleDatabase
- Oracle 11g Data Guard 使用duplicate from active database 建立 standby databaseOracleDatabase
- Oracle 11g Data Guard 使用duplicate from active databaseOracleDatabase
- oracle10g data guard(dg)__flashback_physical databaseOracleDatabase
- Transparent Data Encryption (TDE) in Oracle 10g Database Release 2Oracle 10gDatabase
- RMAN 'Duplicate Database' Feature in 11G [ID 452868.1]Database
- oracle 12c 資料歸檔 即Using In-Database Archiving featureOracleDatabase
- flashback database 結合 data guardDatabase
- DATA GUARD 中alter database 命令Database
- Oracle 11gR2 Database和Active Data Guard遷移案例OracleDatabase
- Oracle設定日誌引數-ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;OracleDatabase
- Database Capture and Replay: Common Errors and Reasons (文件 ID 463263.1)DatabaseAPTError
- How to Rename Database/Change DB_NAME or ORACLE_SID/Instance Name-15390.1DatabaseOracle
- Oracle ASM Active Change DirectoryOracleASM
- [20130817]Oracle 12c new feature In-Database Archiving.txtOracleDatabase
- OO ALV 強制觸發 data_change事件事件
- Data Guard - Snapshot Standby Database配置Database
- Local Capture and Downstream CaptureAPT
- new feature ——>mysql to oracle MigrationMySqlOracle
- ORACLE 11G FLASHBACK FEATUREOracle
- oracle 的 BLOCK CHANGE TRACKINGOracleBloC
- Oracle Block Change Tracking功能OracleBloC
- ORACLE SQL DEVELOPER User Interface ChangeOracleSQLDeveloper
- Oracle Database 10g新特性-高速的匯出/匯入Data PumpOracleDatabase
- oracle9i(9204)dg(data guard)_ place the standby database in manual recovery modeOracleDatabase
- use database 切換提示You can turn off this feature to get a quicker startupDatabaseUI
- [20181018]Oracle Database 12c: Data Redaction.txtOracleDatabase
- How to Change hostname in Oracle Linux 7OracleLinux