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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...