您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何理解OGG的initial load和,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Initial load
可分為幾種:
除去第一種方法,其余均需要initial-load extract或initial-load replicat;在同步initial-load期間的change時,replicat都需要添加handlercollisions參數,并在同步完成后去除;
Loading data with a database utility
使用db copy utility創建target db,等copy完成啟用change-sync replicat同步期間產生的change;此過程完成后開始正常的數據同步;
因為不需要initial-load extract/replicat,也無須為之配備參數文件
Loading data from file to replicat
使用initial-load extract將source table寫入remote extract文件(canonical格式),由initial-load replicat將其加逐行載入數據庫,因此效率較低;
大致步驟
1 啟動source的manager進程:start manager;
2 編輯initial-load extract參數文件:edit params <initial-load extract name>
SOURCEISTABLE – 標明extract為initial load,直接從source table獲取數據
SOURCEDB mydb, USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
RMTHOST ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey –指定target host和manager port
ENCRYPTTRAIL AES192, KEYNAME mykey1
RMTFILE /ggs/dirdat/initld, MEGABYTES 2, PURGE --指定remote extract文件,不需要維護checkpoing
TABLE hr.*;
TABLE sales.*;
3 編輯target initial-load repicat的參數文件:edit params <initial-load replicat name>
SPECIALRUN –將replicat設定為一次性運行,不需要checkpoint
END RUNTIME –當load完成后終結replicat
TARGETDB mydb, USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
DECRYPTTRAIL AES192, KEYNAME mykey1
EXTFILE /ggs/dirdat/initld –聲明由extract指定的rmtfile
SOURCEDEFS /ggs/dirdef/source_defs – 當source/target表結構不同時使用,def文件由defgen生成;如果表結構一致則使用assumetargetdefs
MAP hr.*, TARGET hr.*;
MAP sales.*, TARGET hr.*;
4 啟動change extract進程:start extract <extract group name>
5 啟動initial-load extract進程:$/<initial-load extract name>.prm reportfile <path name> --通過initial-load extract參數文件名啟動,監控狀態直至extraction完成
6 啟動initial-load replicat進程:$/<initial-load replicat name>.prm reportfile <path name> --通過initial-load replicat參數文件啟動,監控直至完成
7 啟動change replicat進程:start replicat <replicat group name>
8 監控change replicat狀態:info replicat <replicat group name> --直至應用完所有initial load產生的change,如果initial-load extract在12:05結束,確保replicat應用到此時間點;
9 移除change replicat的handlecollisions參數:send replicat <replicat group name>, nohandlecollisions,然后更新repliat參數文件
Load data from file to database utility
使用initial-load extract將source table寫入remote ASCII文件,通過db utility加載到target db,initial-load replicat會生成run and control files輔助db utility;數據轉換必須由initial-load extract執行;
大致步驟
1 啟動source的manager進程:start manager;
2 編輯initial-load extract參數文件:edit params <initial-load extract name>
SOURCEISTABLE –聲明extract為initial-load
SOURCEDB mydb, USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
RMTHOST ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey –指定target host和manager port
ENCRYPTTRAIL AES192, KEYNAME mykey1
RMTFILE /ggs/dirdat/initld, MEGABYTES 2, PURGE –指定remote extract文件
FORMATASCII, SQLLOADER –將輸出格式化為ASCII文本,替代默認的canonical格式,可選項包括BCP和SQLLOADER
TABLE hr.*;
TABLE sales.*;
3 編輯target initial-load repicat的參數文件:edit params <initial-load replicat name>
GENLOADFILES sqlldr.tpl --生成run and control files,輔助db utility加載數據,該文件動態生成不可人工干預
USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
DECRYPTTRAIL AES192, KEYNAME mykey1
EXTFILE /ggs/dirdat/initld
SOURCEDEFS /ggs/dirdef/source_defs
MAP hr.*, TARGET hr.*;
MAP sales.*, TARGET hr.*;
4 啟動change extract進程:start extract <extract group name>
5 啟動initial-load extract進程:$/<initial-load extract name>.prm reportfile <path name> --通過initial-load extract參數文件名啟動,監控狀態直至extraction完成
6 啟動initial-load replicat進程:$/<initial-load replicat name>.prm reportfile <path name> --通過initial-load replicat參數文件啟動,監控直至完成
7 加載target db:通過步驟6生成的ASCII文本文件和run and control files,使用db utility將其加載至target db,監控直至完成
7 啟動change replicat進程:start replicat <replicat group name>
8 監控change replicat狀態:info replicat <replicat group name> --直至應用完所有initial load產生的change,如果initial-load extract在12:05結束,確保replicat應用到此時間點;
9 移除change replicat的handlecollisions參數:send replicat <replicat group name>, nohandlecollisions,然后更新repliat參數文件
Load data with OGG direct load
使用initial-load extract將source table直接發送至initial-load replicat task(由manager動態生成,不需要collector進程),由后者通過large block加載到target;不支持log/long/UDT/大于4K的數據字段;
Target端使用dynamicportlist為replicat分配port,加速查詢和綁定過程;
大致步驟
1 啟動source的manager進程:start manager;
2 添加并編輯initial-load extract參數文件:add extract < initial-load extract name>, sourceistable/edit params <initial-load extract name>
EXTRACT initext --指定initial-load extract 進程名
SOURCEDB mydb, USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
RMTHOST ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
RMTTASK REPLICAT, GROUP initrep – 指導target的manager動態啟動一次性initial-load replicat,
TABLE hr.*;
TABLE sales.*;
3 添加編輯target initial-load repicat的參數文件:add replicat initrep, specialran/edit params initrep
REPLICAT initrep –指定initial-load replicat task名
TARGETDB mydb, USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
SOURCEDEFS /ggs/dirdef/source_defs
MAP hr.*, TARGET hr.*;
MAP sales.*, TARGET hr.*;
4 啟動change extract進程:start extract <extract group name>
5 啟動initial-load extract進程:start extract <initial-load extract name>,會自動啟動initial-load replicat
6 監控initial-load進程,在target執行view report <initial-load extract name>直至完成
7 啟動change replicat進程:start replicat <replicat group name>
8 監控change replicat狀態:info replicat <replicat group name> --直至應用完所有initial load產生的change,如果initial-load extract在12:05結束,確保replicat應用到此時間點;
9 移除change replicat的handlecollisions參數:send replicat <replicat group name>, nohandlecollisions,然后更新repliat參數文件
Load data with a direct bulk load to SQL*Loader
使用initial-load extract將source table發送給initial-load replicat,后者同SQL*Loader結合執行直接路徑加載;
此方法只用于Oracle的SQL*Loader,不適合其他數據庫;不支持lob/long類型;
1 啟動source的manager進程:start manager;
2 編輯initial-load extract參數文件:edit params <initial-load extract name>
EXTRACT initext –指定initial-load extract進程名
SOURCEDB mydb, USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
RMTHOST ny4387, MGRPORT 7888, ENCRYPT AES 192 KEYNAME mykey
RMTTASK REPLICAT, GROUP initrep –指導target的manager動態啟動initial-load replicat,為一次性任務
TABLE hr.*;
TABLE sales.*;
3 添加/編輯target initial-load repicat的參數文件:add replicat <initial-load repliact name>m, specialrun/edit params <initial-load replicat name>
REPLICAT initrep
USERID ogg, PASSWORD
AACAAAAAAAAAAAJAUEUGODSCVGJEEIUGKJDJTFNDKEJFFFTC &
AES128, ENCRYPTKEY securekey1
BULKLOAD –指導replicat同oracle sql*loader接口協同工作
SOURCEDEFS /ggs/dirdef/source_defs
MAP hr.*, TARGET hr.*;
MAP sales.*, TARGET hr.*;
4 啟動change extract進程:start extract <extract group name>
5 啟動initial-load extract進程:start extract <initial-load extract name>,會自動啟動initial-load replicat
6 監控initial-load進程,在target執行view report <initial-load extract name>直至完成
7 啟動change replicat進程:start replicat <replicat group name>
8 監控change replicat狀態:info replicat <replicat group name> --直至應用完所有initial load產生的change,如果initial-load extract在12:05結束,確保replicat應用到此時間點;
9 移除change replicat的handlecollisions參數:send replicat <replicat group name>, nohandlecollisions,然后更新repliat參數文件
Online change sync
大致分為
創建checkpoint表
創建extract組
創建extract參數文件
創建trail
創建replicat組
創建replicat參數文件
每個manager最多支持5000個并發extract和replicat組,可根據活躍程度為不同的表單獨分配extract,每個extract單獨對應一個data pumps和replicat組;
Checkpoint表
可被多個OGG instance共享,也可創建多個表,每個replicat組對應一個;
創建方式:
1
在GLOBALS文件聲明
每個通過add replicat新建的replicat組均可自動使用
編輯GLOBALS文件Edit params ./GLOBALS
添加參數 checkpointtabl <owner>.<table>
通過GGSCI登陸數據庫dblogin sourcedb <dsn>, userid <db_user>, password <pw>
執行add checkpointtabl <owner>.<table>
2
創建replicat時聲明
add replicat checkpointtable,覆蓋GLOBALS文件;如果指定nodbcheckpoint,則使用checkpoint file;
創建online extract group
ADD EXTRACT <group name>
{, <datasource>} –指定數據源;tranlog—事務日志,integrated tranlog—以integrated模式接受LCR,只用于oracle,VAM—用于teradata,vamtrailsource <name>--指定VAM trail,exttrailsource <name>--指定本地trail
{, BEGIN <start point>} | {<position point>} –可選值:now—從add extract時間點起,對data pump最好不要使用;<YYYY-MM-DD HH:MM>--指定時間點
[, PASSIVE] –配合alias extract使用,當從target發起連接時用到
[, THREADS <n>] --只在RAC下使用,指定redo線程數
[, PARAMS <pathname>] --若其參數文件沒有存儲在dirprm子目錄,則需顯示聲明
[, REPORT <pathname>] –若進程報告存于非dirrpt子目錄,則需顯示聲明
[, DESC “<description>”]
創建alias extract
ADD EXTRACT <group name>
, RMTHOST {<host name> | <IP address>}
, {MGRPORT <port>} | {PORT <port}
[, RMTNAME <name>] --指定passive extract
[, DESC “<description>”]
創建trail
由data pump或replicat負責讀取,teradata則需要VAM-sort extract;
為trail單獨分配一個磁盤;
添加trail
ADD {RMTTRAIL | EXTTRAIL} <pathname>, EXTRACT <group name> [, MEGABYTES <n>] –默認n為100
創建online replicat組
ADD REPLICAT <group name>, EXTTRAIL <pathname>
[, BEGIN <start point> | , EXTSEQNO <seqno>, EXTRBA <rba>] –指定exttrail開始讀取的文件號和相對塊地址
[, CHECKPOINTTABLE <owner.table>]
[, NODBCHECKPOINT]
[, PARAMS <pathname>]
[, REPORT <pathname>]
控制online process
啟動
Start [extract|replicat] <group name>
可配置manager參數文件,autostart為自動啟動,autorestart自動重啟動
停止
Stop [extract|replicat] <group name>
強制關閉replicat stop replicat <group name> !
殺死
Kill [extract|replicat] <group name>
一次執行操作多個進程
<command> ER <wildcard specification>
--可選命令為start/stop/kill
刪除進程組
停止相應進程后,可將其刪除但可同時保留參數文件,后續可重新添加同樣組;
GGSCI登陸數據庫,執行delete [extract|replicat] <group name>
關于如何理解OGG的initial load和就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。