برای ساخت سرویس replicat در مقصد اول فایل پیکربندی سرویس رو ایجاد می‌کنیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 60> edit param rora1
REPLICAT rora1
USERID ggs,PASSWORD ggs
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA1.DSC, PURGE
DECRYPTTRAIL AES128 KEYNAME supermaskey
MAP hr.*, TARGET test.*;

خط اول: نوع و نام سرویس رو مشخص می‌کنیم

خط دوم: نام‌کاربری و پسوردی که سرویس باید باهاش به دیتابیس مقصد وصل بشه و فایلهای trail رو apply کنه

خط سوم: مدیریت رخدادها فعال باشه (به صورت پیشفرض روی DML) با فعال کردن این سرویس اگه مثلا در سمت مبدا دستور delete یا دستور dmlای بخوره و در مقصد همچین object ای نباشه دستور بر روی مقصد ignore میشه

نکته: اگه insert ای در مبدا بخوره و اون رکورد در مقصد موجود باشه ولی فیلدهای اون رکورد در مقصد با مبدا نخوره با فعال بود handle collisions رکورد مقصد آپدیت میشه

نکته: فعال کردن handle collision در برخی سناریوها مفید و در برخی غیر مفید هستش (تو سناریوهای ۲ طرفه به طور معمول نیاز به چک این مشکلات توسط dba هست پس فقط بار اول اجرای سرویس handle collision رو فعال می‌کنیم و در باقی مواقع غیرفعالش می‌کنیم یا اسکرپت براشون می‌نویسیم)

خط چهارم: فرض رو بر این میذاره که structre مقصد مثل مبدا هستش

خط پنجم: اگه سرویس موقع apply دیتا به مشکلی خورد مشخصات اون رکورد و خطا در این مسیر قرار گرفته میشه

خط ششم: اگه trail فایل ما رمزنگاری شده باشه باید از حالت رمز توسط replicat خارج بشه

خط هفتم: اگه اسکیماهای مختلفی در مبدا و مقصد داشته باشیم و نیاز باشه Mapping ای انجام بشه از این دستور استفاده می‌کنیم

نکته: می‌تونیم در سطح فیلد هم map داشته باشیم

فایل پیکربندی من برای سناریو فعلی به شکل زیر خواهد بود:

REPLICAT rora1
USERID GGS,PASSWORD GGS
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA1.DSC, PURGE
MAP TEST_UNIDIRECTIONALGGS.*, TARGET TEST_UNIDIRECTIONALGGS.*;

اضافه کردن سرویس به گلدن‌گیت

حالا باید سرویس رو به گلدن‌گیت اضافه کینم:

GGSCI>ADD REPLICAT rora1, EXTTRAIL dirdat/l2, CHECKPOINTTABLE GGS.MYCHECKPT

راه‌اندازی سرویس replicat

حالا سرویس replicat رو start می‌کنیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 67> start rora1

Sending START request to MANAGER ...
REPLICAT RORA1 starting
GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 84> info rora1

REPLICAT RORA1 Last Started 2017-11-10 16:33 Status RUNNING
Checkpoint Lag 04:12:03 (updated 00:00:00 ago)
Process ID 12793
Log Read Checkpoint File dirdat/l2000000
2017-11-10 12:21:25.029387 RBA 5334145

تست سرویسها

برای تست سرویسها در سرور مبدا جدول جدیدی رو با دیتا بسازید و در سرور مقصد منتظر اعمال خودکار دستورات باشید

همچنین با info گرفتن از سرویسها هم می‌تونید بفهمید الان سرویس روی کدوم RBA در حال کار هستش

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 85> info rora1

REPLICAT RORA1 Last Started 2017-11-10 16:33 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:00 ago)
Process ID 12793
Log Read Checkpoint File dirdat/l2000000
2017-11-10 16:35:51.029236 RBA 7688416

کمک گرفتن از help

اگه نیاز داشتید از help گلدن‌گیت اسفاده کنید از دستور زیر استفاده کنید:

help add replicat

خب الان سناریوی ۱ طرفه ما با گلدن‌گیت تموم شد امیدوارم لذت برده باشید :)