golden gate 加initial load 在rac 上的配置

来源:https://www.cnblogs.com/mikao/archive/2019/02/26/10437530.html
-Advertisement-
Play Games

前言goldengate 11g 在oracle 11g rac 上的配置 (源是rac+asm , 目標是單資料庫實例) 源端: 1. 配置tnsnames [oracle@rac1 admin]$ more tnsnames.ora # tnsnames.ora Network Configur ...


前言
goldengate 11g 在oracle 11g rac 上的配置 (源是rac+asm , 目標是單資料庫實例)

源端:

1. 配置tnsnames

[oracle@rac1 admin]$ more tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

sunrac =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sunrac)
)
)
ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASM)
(SID_NAME = +ASM1)
)
)

我只是測試,所以只在第一個節點上做

2. 資料庫環境準備,添加最小附加日誌

SQL> alter database add supplemental log data;
Database altered.
SQL> alter system switch logfile;
System altered.
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
YES

創建測試表:
SQL> conn test/test
Connected.
SQL> create table mxm (id int,name varchar2(80));
Table created.
SQL> begin
2 for i in 1 .. 1000000 loop
3 insert into mxm values (i,'mic');
4 end loop;
5 commit;
6 end;
7 /

PL/SQL procedure successfully completed.

SQL> select count(*) from mxm;

COUNT(*)
----------
1000000
SQL> select bytes/1024/1024 from user_segments where segment_name='MXM'; ---看一下數據量,最後好算算傳輸率

BYTES/1024/1024
---------------
16

創建goldengate 用戶並賦予dba 許可權(避免許可權的麻煩)
SQL> create user ogg identified by ogg;
User created.
SQL> grant dba to ogg;
Grant succeeded.


3. 安裝ogg

4. 配置ogg mgr

[oracle@rac1 goldengate]$ ./ggsci
GGSCI (rac1) 1> create subdirs

配置mgr 埠:
GGSCI (rac1) 1> edit param mgr
GGSCI (rac1) 2> view param mgr
PORT 7809
GGSCI (rac1) 3> start mgr
GGSCI (rac1) 4> info all

5.配置抽取進程和傳輸進程

GGSCI (rac1) 3> edit param exttest
GGSCI (rac1) 4> view param exttest
extract exttest
userid ogg@sunrac,password ogg
tranlogoptions asmuser sys@asm,asmpassword Beijing123 --登錄asm的
exttrail ./dirdat/mm
table test.mxm;

GGSCI (rac1) 6> edit param pumptest
GGSCI (rac1) 7> view param pumptest
extract pumptest
rmthost 192.168.56.109,mgrport 7809,compress
rmttrail ./dirdat/mm
passthru
table test.mxm;

GGSCI (rac1 as ogg@SUNRAC1) 10> add extract exttest,tranlog,Begin Now threads 2 --因為我的rac 是2個節點的,所以是threads 2
EXTRACT added.

GGSCI (rac1 as ogg@SUNRAC1) 11> add exttrail ./dirdat/mm,extract exttest,megabytes 5
EXTTRAIL added.

GGSCI (rac1 as ogg@SUNRAC1) 12> add extract pumptest,exttrailsource ./dirdat/mm --添加source dir
EXTRACT added.
GGSCI (rac1 as ogg@SUNRAC1) 14> add rmttrail ./dirdat/mm,extract pumptest,megabytes 5 --添加remote dir
RMTTRAIL added.


添加trandata

GGSCI (rac1) 15> dblogin userid ogg@sunrac,password ogg
Successfully logged into database.

GGSCI (rac1 as ogg@SUNRAC1) 16> add trandata test.mxm

6. 配置init 進程

GGSCI (rac1) 2> edit param inittest

GGSCI (rac1) 4> view param inittest
extract inittest
userid ogg,password ogg
rmthost 192.168.56.109,mgrport 7809
rmttask replicat,group initrep --目標端init接收進程名
table test.mxm;

GGSCI (rac1) 6> add extract inittest, sourceistable
EXTRACT added.

目標端

1. 創建相應的表

SQL> create table mxm (id int,name varchar2(80));
Table created.

2. 安裝ogg

3. 配置mgr

GGSCI (oracledg) 1> edit param mgr
GGSCI (oracledg) 2> view param mgr
PORT 7809
ACCESSRULE, PROG *, IPADDR 192.168.56.101, ALLOW --沒有這行,inittest 進程無法啟動目標端的initrep進程

GGSCI (oracledg) 4> start mgr

GGSCI (oracledg) 5> edit params ./GLOBALS

GGSCI (oracledg) 6> view params ./GLOBALS
ggschema ogg
CHECKPOINTTABLE ogg.checkpointtab

GGSCI (oracledg) 8> dblogin userid ogg,password ogg
Successfully logged into database.

GGSCI (oracledg as ogg@mic) 9> add checkpointtable

4. 配置rep 進程

GGSCI (oracledg as ogg@mic) 11> edit param reptest

GGSCI (oracledg as ogg@mic) 12> view param reptest

replicat reptest
userid ogg,password ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
discardfile ./dirrpt/reptest.dsc,append
map test.mxm, target test.mxm;

GGSCI (oracledg as ogg@mic) 13> add replicat reptest,exttrail ./dirdat/mm
REPLICAT added.

5.配置initrep 的進程

GGSCI (oracledg as ogg@mic) 16> edit param initrep --名字必須和inittest進程中的配置一樣

GGSCI (oracledg as ogg@mic) 17> view param initrep
replicat initrep
userid ogg,password ogg
ASSUMETARGETDEFS
discardfile ./dirrpt/initrep.dsc,append,megabytes 100
map test.mxm, target test.mxm;


開始同步和初始化

源端:

GGSCI (rac1) 5> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT STOPPED EXTTEST 00:00:00 02:46:12
EXTRACT STOPPED PUMPTEST 00:00:00 02:43:19

這裡看不到inittest 進程

啟動抽取進程
GGSCI (rac1) 6> start exttest

Sending START request to MANAGER ...
EXTRACT EXTTEST starting

啟動pump進程
GGSCI (rac1) 8> start pumptest

Sending START request to MANAGER ...
EXTRACT PUMPTEST starting

GGSCI (rac1) 9> info all

Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING
EXTRACT RUNNING EXTTEST 00:00:00 00:00:11
EXTRACT RUNNING PUMPTEST 00:00:00 00:00:02

啟動inittest 進程
GGSCI (rac1) 10> start inittest -- 這個進程可以直接連通目標端的initrep進程,所以目標端不用再啟動initrep進程

Sending START request to MANAGER ...
EXTRACT INITTEST starting

模擬插入數據

SQL> begin
2 for i in 1000000 .. 1000100 loop
3 insert into mxm values (i,'mic');
4 dbms_lock.sleep(10);
5 end loop;
6 commit;
7 end;
8 /

目標端

啟動rep進程,
GGSCI (oracledg as ogg@mic) 1> start reptest

Sending START request to MANAGER ...
REPLICAT REPTEST starting

這裡不需要啟動initrep進程

源端

觀察inittest進程情況

GGSCI (rac1) 12> view report inittest
...
2019-02-26 14:48:31 WARNING OGG-06439 No unique key is defined for table MXM. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS
may be used to define the key.

2019-02-26 14:48:31 INFO OGG-06509 Using the following key columns for source table TEST.MXM: ID, NAME.

2019-02-26 14:48:37 INFO OGG-02911 Processing table TEST.MXM.

***********************************************************************
* ** Run Time Statistics ** *
***********************************************************************


Report at 2019-02-26 14:52:39 (activity since 2019-02-26 14:48:31)

Output to initrep:

From Table TEST.MXM:
# inserts: 1000052
# updates: 0
# deletes: 0
# discards: 0


REDO Log Statistics
Bytes parsed 0
Bytes output 76893373

可以看到初始或進程完成,用時大概4分鐘多

停止insert sql,並查詢總行數
SQL> select count(*) from mxm;

COUNT(*)
----------
1000121

目標端

SQL> select count(*) from mxm;

COUNT(*)
----------
1000121

至此,goldengate 同步initial load初始化配置完成 , 但是用4分鐘的時間傳輸了16M的數據,性能實在太差了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 上章節提到通過netdom join加域並指定對應OU,本章再補充一例現成powershell加域並指定對應OU的腳本,便於大家工作中使用。$PlainPassword = P@ssw0rd$UserName="Administrator"$DomainName="azureyun.com"$Dom... ...
  • 本文收錄在容器技術學習系列文章總目錄 1、configmap 1.1 認識configmap ConfigMap用於保存配置數據的鍵值對,可以用來保存單個屬性,也可以用來保存配置文件。ConfigMap跟secret很類似,但它可以更方便地處理不包含敏感信息的字元串。 1.2 創建configmap ...
  • 前邊我們提到了客戶端如何通過圖形化、netdom 、Powershell方式加域,這裡我們簡單補充下生產環境中如何通過有許可權的用戶賬號加域並指定對應的OU,以防止域策略下發對部分生產伺服器許可權等內容進行修改,本次為大家補充netdom join方式;如果不怕麻煩的話,我們也可以通過圖形化方式先加域不... ...
  • [20190226]刪除tab$記錄的恢復6.txt--//春節前幾天做了刪除tan$記錄的測試,鏈接:http://blog.itpub.net/267265/viewspace-2565245/=> [20190130]刪除tab$記錄的恢復.txthttp://blog.itpub.net/2 ...
  • 雖然前面兩篇已經說了redis的一些配置安裝什麼的,篇幅有點長,可能看完了也不知道怎麼操作,這裡再濃縮一下: 什麼是redis redis完全開源免費的,遵守BSD協議,是一個高性能的非關係型key-value資料庫, redis特點: redis支持數據的持久化,可以將記憶體中的數據保存在磁碟中... ...
  • 筆記記錄自林曉斌(丁奇)老師的《MySQL實戰45講》 3) --事務隔離,為什麼你改了我還看不見? 簡單來說,事務就是要保證一組數據操作,要麼全部成功,要麼全部失敗。在MySQL中,事務支持是在引擎層實現的。但並不是所有的引擎都支持事務,這也是MyISAM被InnoDB取代的重要原因之一。 本篇內 ...
  • MySql中當前時間,不能直接使用Date.Now傳輸。猜測:這個可能跟伺服器地理位置有關係;一般國外的伺服器時間展示位:月/日/年; 國內通常為:年-月-日;猜測,使用的時候應註意檢查 如下麵的代碼,可能會導致查詢數據不准:應改為:Date.Now.ToString("yyyy-MM-dd HH: ...
  • [20190226]測試使用bbed恢復索引.txt--//上午做tab$刪除恢複測試時發現,tab$的索引i_tab1很小.可以嘗試使用bbed解決這個問題.--//首先在普通表上做一個測試看看.1.環境:SCOTT@book> @ ver1PORT_STRING VERSION BANNER x ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...