Oracle #GoldenGate Replicate Apply (Run) Rate

For a couple of weeks now, I’ve been trying to figure out a way to identify the size of data for transactions that are getting processed over a give period of time with Oracle GoldenGate.  When I started to think through the process, I keyed in on the Relative Byte Address (RBA).  What is the RBA?  From reading Oracle’s GoldenGate documentation, the RBA is mostly a marker within the trail file to identify the location of the transaction.  This got me to thinking; maybe I can use the RBA to “estimate” the amount of data applied to the source over a period of time (compare 2 RBAs).
Before I ventured off in the unknown; I wanted to verify if there was a method already identified by Oracle.  What I found in MOS was Note ID: 1356524.1.  This note deals mostly with how to identify the speed of the extraction process.  What I found interesting in this note is that Oracle is using the RBA to help calculate the amount of data being extracted.  With this note in hand, I felt comfortable in using the RBA to “estimate” the amount of data being applied by a replicat.
Note:  How to estimate Goldengate extract redo processing speed? (Doc ID 1356524.1)
A few sentences ago, I mentioned that I wanted to compare 2 RBAs to “estimate” the amount of data applied over a period of time.  In order to do this, I need to convert the RBA into meaningful number.
The following formulas I used to convert the RBA to megabytes and then into the metrics I wanted:

(($sec_rba - $first_rba)/(1024*1024))  <-  find the “estimated” size applied in MB
($mb_min*60)                           <- find the “estimate” size applied over an hour in MB
($mb_hr/(1024))                        <- find the “estimate” size applied in GB for an hour
($gb_hr*24)                            <- find the “estimate” size for a day in GB

Now the question was how can I grab this information from each replicat.  The information I needed could be found by doing a “info replicat <replicat>, detail” (The detail part is not really needed, just use it to list out all the associated trail files).    The output from the info command looks similar to this:
Info Replicat Output:
image
The thing to keep in mind is that I’m only concern about two lines in this output.  The first line is the “Log Read Checkpoint” and the second line that has the Date and RBA number.  Now in order to gather this information and do the calculations using the RBA, I wrote a Perl script.  The  for this basics of the script are below:

#!/usr/bin/perl -w
#
#Author: Bobby Curtis, Oracle ACE
#Copyright: 2014
#Title: gg_run_rate_from_rba.pl
#
use strict;
use warnings;
#Static Variables
my $gghome = &quot;/u01/app/oracle/product/12.1.2/ogg&quot;;
my $outfile = &quot;/tmp/gg_replicat_runrates.txt&quot;;
my $sleeptime = 60;
my $gguser = &quot;c##ggate&quot;;
my $ggpass = &quot;ggate&quot;;
my @process = (&quot;replicat&quot;);
my $replicat;
my($date1,$curtrail1,$rba1);
my($date2,$curtrail2,$rba2);
my($rate_min, $rate_hr, $rate_gb_hr, $rate_gb_day);
#Program
open (RUNRATES, &quot;&gt;&gt;$outfile&quot;) or die &quot;Unable to open file&quot;;
foreach my $i(@process)
{
my @process_name = `ps -ef | grep dirprm | grep $i | grep -v grep | awk '{print \$14}'`;   
my @replicats = @process_name;
    foreach (@replicats)
    {
        $replicat = $_;
        chomp($replicat);
        check_replicat($gguser, $ggpass, $replicat);
        ($curtrail1,$date1,$rba1) = check_replicat();
        #print &quot;$curtrail1 -&gt; $date1 -&gt; $rba1\n&quot;;
        sleep($sleeptime);
        check_replicat($gguser, $ggpass, $replicat);
        ($curtrail2,$date2,$rba2) = check_replicat();
        #print &quot;$curtrail2 -&gt; $date2 -&gt; $rba2\n&quot;;
        calc_rate($rba1,$rba2);
        ($rate_min, $rate_hr, $rate_gb_hr, $rate_gb_day) = calc_rate();
       
        print RUNRATES &quot;$replicat|$date1|$curtrail1|$rba1|$date2|$curtrail2|$rba2|$rate_min|$rate_hr|$rate_gb_hr|$rate_gb_day\n&quot;;
    }
}
close (RUNRATES);
#################
#Sub Programs
#################
sub check_replicat
{
my @buf = `$gghome/ggsci &lt;&lt; EOF
dblogin userid $gguser\@pdb2 password $ggpass
info replicat $replicat, detail
EOF`;
my $curtrail;
my $date;
my $rba;
    foreach (@buf)
    {
        if (/Log Read Checkpoint/)
        {
            if (m/(\.\/\w+\/\w+)/g)
            {
                $curtrail = $1;
            }
        }
       
        if (/RBA/)
        {
            if (m/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/g)
            {
                $date = $1.&quot;-&quot;.$2.&quot;-&quot;.$3.&quot; &quot;.$4.&quot;:&quot;.$5.&quot;:&quot;.$6;
            }
           
            if (m/RBA (\d+)/g)
            {
                $rba = $1;
            }   
        }
    }
    return($curtrail,$date,$rba);
} #end sub check_replicat
sub calc_rate
{
    my $first_rba = $rba1;
    my $sec_rba = $rba2;
 
    my $mb_min = (($sec_rba-$first_rba)/(1024*1024));
    my $mb_hr = ($mb_min*60);
    my $gb_hr = ($mb_hr/(1024));
    my $gb_day = ($gb_hr*24);
    return ($mb_min,$mb_hr,$gb_hr, $gb_day);
} #end sub calc_rate

This script is a bit longer than I like; however, it will capture all information required and then waits 60 seconds and gather the information again for the replicat it is working on. Once the first and second RBA are grabbed then the script writes the output to a flat file with the calculations for MB per min, MB per hour, GB per hour and GB per day.
Once the flat file has been written,  I can now use an external table that will allow me to view this data from SQL (see my other post on monitoring GG from SQL..here).  Using the external table, I can see what my run rates are from any SQL capable tool.  Below is a simple query to pull the data from the external table.
Note: Some numbers in the output may be negative.  This is due to the subtraction between RBA2 (smaller) and RBA1 (larger).

select
        repgroup as processgroup,
        to_char(date1, 'DD-MON-YY HH:MI:SS') snap1,
        curtrail1 as snap1_trail,
        rba1 as snap1_rba,
        to_char(date1, 'DD-MON-YY HH:MI:SS') snap2,
        curtrail2 as snap2_trail,
        rba2 as snap2_rba,
        rate_min_mb,
        rate_hr_mb,
        rate_hr_gb,
        rate_day_gb
from
  gghb.replicat_runrates
where
  repgroup = 'REP';
--Output (unformatted)--
PROCESSG SNAP1              SNAP1_TRAIL                     SNAP1_RBA SNAP2              SNAP2_TRAIL                     SNAP2_RBA RATE_MIN_MB RATE_HR_MB RATE_HR_GB RATE_DAY_GB
-------- ------------------ ------------------------------ ---------- ------------------ ------------------------------ ---------- ----------- ---------- ---------- -----------
REP      22-MAY-14 01:38:51 ./dirdat/rt000034                 2905346 22-MAY-14 01:38:51 ./dirdat/rt000034                 3197702         286      17130         17         401
REP      22-MAY-14 01:39:49 ./dirdat/rt000034                 3197702 22-MAY-14 01:39:49 ./dirdat/rt000034                 3521610         316      18979         19         445
REP      22-MAY-14 01:40:50 ./dirdat/rt000034                 3521610 22-MAY-14 01:40:50 ./dirdat/rt000034                 3802260         274      16444         16         385
REP      22-MAY-14 01:41:49 ./dirdat/rt000034                 3802260 22-MAY-14 01:41:49 ./dirdat/rt000034                 4112529         303      18180         18         426
REP      22-MAY-14 01:42:49 ./dirdat/rt000034                 4112529 22-MAY-14 01:42:49 ./dirdat/rt000034                 4463477         343      20563         20         482
 

Being able to use an external table to view run rates additional scripts can be written to report on what is going on within the Oracle GoldenGate apply process.  Allowing administrators a better understanding of what is going on within their environments.  At the same time, I think this information is valuable in the turning process of Oracle GoldenGate as environment grown.
Let me know your thoughts and comments on this, because it is always interesting to see how other organizations solve these issues as well.
Enjoy!
twitter: @dbasolved
blog: http://dbasolved.com

Please follow and like:
Comments
  • MIOTOTO merupakan platform togel terpercaya yang menawarkan pengalaman login tercepat, proses daftar mudah, serta pengalaman bermain yang aman dan nyaman untuk para pecinta togel online.

  • Hello, i read your blog occasionally and i own a similar one and i was just curious if you get a lot of
    spam comments? If so how do you stop it, any plugin or anything you can recommend?

    I get so much lately it’s driving me mad so any assistance is very
    much appreciated.

  • I have been browsing online more than 2 hours today, yet I
    never found any interesting article like yours. It is pretty worth enough for me.
    Personally, if all site owners and bloggers made good content as you did, the net
    will be much more useful than ever before.

  • Sweet Bonanza, büyük kazançlar sunan eğlenceli bir slot oyunu olsa da, oyunun dinamiklerini anlamak ve doğru stratejileri uygulamak kazanma şansınızı artırabilir. Sweet Bonanza ipuçları empieza stratejileri, oyunda daha bilinçli kararlar almanıza yardımcı olur. İşte oyunda başarılı olmanızı sağlayacak bazı ipuçları ve taktikler. Oyunun ne olduğundan başlamamızın ardından Sweet Bonanza’nın geliştiricisi ve sahibi olan Pragmatic Have fun hakkında bazı bilgiler vereceğiz. Sonrasında ise Sweet Bonanza’da bulunan kurallar ve tasarım detayları gibi konuları irdeledikten sonra oyundaki RTP ve varyasyondan bahsedeceğiz. Sweet Bienestar oynamadan önce kurallara genel bir göz atmalısınız. Oyunu risksiz bir şekilde düzenlemek için kayıt olmak gerekli değildir. Ancak çevrimiçi bir casino sitesine kaydolmanızı öneririz, çünkü demo versiyonunu oynadıktan sonra Sweet Bonanza’yı gerçek para ile oynamak kolay olacaktır. Sweet Bonanza çevrimiçi slotu oyuncuları hemen şeker dolu bir evrene, şekerlemeler, meyve sembolleri ve diğer lezzetlere götürecek. Parlak tasarım ve dikkati dağıtmayan müzik eşliğinde ana temayı mükemmel bir şekilde vurgular.
    https://ckan.obis.org/user/ligeripbo1971
    Casino Slots Free Vegas Slot Machines Slots Journey – Slot Casinosu CASINO BONANZA: SLOTS FUN! CASINO BONANZA: SLOTS FUN! Bonanza Party: 777 Slot Casino Slots Journey – Slot Casinosu Slots Journey – Slot Casinosu You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page. CASINO BONANZA: SLOTS FUN! Bonanza Party: 777 Slot Casino Slots Journey – Slot Casinosu Bonanza Party: 777 Slot Casino CASINO BONANZA: SLOTS FUN! Slots Journey – Slot Casinosu CASINO BONANZA: SLOTS FUN! Slots Journey – Slot Casinosu You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.

  • Ganhe Facilmente com os Jogos do Cassino Online 365 bet! Jogar em cassinos online deve ser encarado como uma atividade de lazer, não como um meio para enriquecer. O jogo responsável visa prevenir o vício e proteger grupos vulneráveis, como menores e Swinger social is a growing style that is gathering popularity all over the globe. it is a social task that involves folks who are enthusiastic about intimate activities that go beyond the traditional boundaries of old-fashioned relationships. swinger social could be a terrific way to explore your sex also to connect with brand new people. if you’re enthusiastic about joining a swinger social group, there are a few items that you need to do. first, you’ll want to find friends which compatible with your lifestyle and interests. second, you need to make sure that the team is secure and safe. polyamorous-chat.html
    https://webdigi.net/page/business-services/https-pokerpolonia-pl-
    O down load do jogo é rápido e fácil de hacer, garantindo la cual operating system jogadores possam acessar teus jogos favoritos continuamente o qual desejarem, sem a necessidade de acesso à internet. Optei durante pesquisar cependant jogos de uma Matter-of-fact Have fun pois a provedora accede que os cassinos on the internet decidam o Auto-generated excerpt Home » 888starz bd Home » 1Win AZ Casino Join the community of enthusiastic players and dive into the exhilarating world of Aviator APK. With a simple download, you can start your journey to uncover the secrets of the skies and potentially walk away with massive wins! Click the link below to start your adventure today! Your bank account merely needs for adequate money to experience the new specific position games you’ve chosen. You can trust you to definitely casinos offering which incentive have been in existence for a time and therefore are legitimate. You could think this refers to a lot of the on the internet casinos, but one to’s untrue. There are a few what to remember while you look for an established, feature-rich internet casino.

  • constantly i used to read smaller articles which also clear their motive, and that is also happening with
    this piece of writing which I am reading at this time.

  • Somebody necessarily lend a hand to make seriously articles I might state.
    This is the very first time I frequented your website
    page and thus far? I surprised with the analysis you made to make
    this particular post extraordinary. Magnificent activity!

  • Terrific article! This is the type of info that are meant to be shared around the net.

    Shame on the search engines for now not positioning this submit higher!
    Come on over and consult with my website . Thank you
    =)

  • Content Mərclərin növləri Milanın 9 il əvvəl Çempionlar Liqasında son oyunu – Qattuzo, Kaka və… Saitek Aviator joystick USB w stylu retro z kontrolą ciągu i autentycznymi przełącznikami dźwigienkowymi Udało Ci się znaleźć niższą cenę? Daj nam znać. Wprawdzie nie zawsze możemy zaoferować zgłoszoną cenę, jednak weźmiemy Twoją opinię pod uwagę, aby zagwarantować konkurencyjność naszych cen. Jak widać, Pin Up Casino to świetna opcja do gry w grę Lucky Jet Crash. Kasyno oferuje wiele bonusów i promocji, a także szeroki wybór gier do wyboru. Również możesz dołączyć do turnieju gry Lucky Jet Crash i uzyskać szansę na wygranie wspaniałych nagród. Tak więc, jeśli szukasz zabawnego i ekscytującego kasyna do gry, Pin Up Casino jest zdecydowanie właściwym wyborem dla Ciebie!
    https://www.gta5-mods.com/users/httpspubblac
    Umożliwiają zapamiętanie Twoich preferencji i ustawień, dostarczając ulepszone, bardziej spersonalizowane funkcje, np. sposób wyświetlania, filtrowania czy sortowania produktów. Tego typu pliki cookie umożliwiają prawidłowe działanie sklepu: logowania, nawigowania, korzystania z koszyka, ulubionych oraz dokonywania zakupów. Brak tych plików spowodowałby brak możliwości korzystanie ze sklepu w bezpieczny sposób. Umożliwiają zapamiętanie Twoich preferencji i ustawień, dostarczając ulepszone, bardziej spersonalizowane funkcje, np. sposób wyświetlania, filtrowania czy sortowania produktów. Decydując się na zakup u nas, otrzymasz zegarek Aviator zapakowany w stylowe opakowanie, podbitą kartę gwarancyjną i instrukcję obsługi w języku polskim. Oferujemy nie tylko Aviator zegarki męskie, ale też damskie modele należące do kolekcji Moonflight.

  • I don’t know whether it’s just me or if everyone else experiencing
    issues with your blog. It seems like some of the text in your posts are running off
    the screen. Can someone else please provide feedback and
    let me know if this is happening to them too? This could be
    a issue with my internet browser because I’ve had this happen before.
    Thank you

  • Great beat ! I would like to apprentice while you amend your web site, how can i
    subscribe for a blog site? The account helped me a acceptable deal.

    I had been a little bit acquainted of this your broadcast offered bright clear idea

  • Hi there! This is kind of off topic but I need some guidance from
    an established blog. Is it very hard to set up your own blog?
    I’m not very techincal but I can figure things
    out pretty quick. I’m thinking about making my own but I’m not sure where to start.
    Do you have any tips or suggestions? Thank
    you

    my web-site; vpn

  • Casino game bonuses are always a welcome incentive, and some of the ongoing or limited-time casino bonuses offered at BetMGM Casino could apply to the Big Bass Bonanza slot. All you have to do is register or log in to BetMGM Casino and explore the current casino bonuses for Deposit Match, free spins, and more. Released in April 2025, Big Bass Bonanza 1000 sees Big Bass Bonanza meet the 1000 series. Very similar other games in the Big Bass slots series, it’s played on 5 reels and 10 paylines from 10p a spin. In the free spins, Fisherman Wilds collect fish money symbols which are worth up to 1,000 x your total bet. Every 4th Fisherman Wild gives you more free spins and applies a win multiplier up to 10x to collected fish money symbols. With a 96.51% RTP rate, this game offers 20,000 x bet max wins (joint top with Big Bass Hold & Spinner Megaways). 
    http://www.rohitab.com/discuss/user/2864310-sweetbonanzaimobilegame/
    If you want something with more potential, there is also a Megaways version available titled Big Bass Bonanza Megaways. Alternatively, if you’re in the holiday spirit, you can always load up Christmas Bigger Bass Bonanza. If you’ve played one Big Bass Bonanza-related slot, it’s not so much a case of necessarily having played them all, but they do tend to share similarities. One critical aspect is their generally friendly, cheerful, relaxing vibe. The colours are bright, the soundtrack bubbly, making easing into them an effortless process. Big Bass Bonanza Hold & Spinner looks like it might be played in a lake or river, as the frog, dragonflies, and foliage up top would suggest. This might not be big game fishing out on the open sea, but there are plenty of fish swimming about in the watery area in the background to whet appetites.

Leave a Reply

Your email address will not be published. Required fields are marked *

Enquire now

Give us a call or fill in the form below and we will contact you. We endeavor to answer all inquiries within 24 hours on business days.