آموزش GoldenGate 12c - قسمت 4


تاریخ انتشار: 1398/فروردین/29
نویسنده:مهندس قاسمی
گروه دانش : Oracle Datebase
تعداد بازدید: 8 مرتبه
اشتراک گذاری:

اجرای بارگذاری اولیه Initial Load

در این مثال، اجرای یک بارگذاری اولیه یا Initial load با استفاده از روش Direct load برای استخراج رکوردهای یک جدول از اوراکل دیتابیس 11g به عنوان مبدا و درج آنها در جدولی مشابه در یک اوراکل دیتابیس 11g به عنوان مقصد توضیح داده خواهد شد.

جدول PRODUCT در اسکیمای SH در مبدا با تعداد 72 روکورد و جدول دیگری با همین ساختار در دیتابیس مقصد، خالی و بدون رکورد وجود دارد. من می خواهم این 72 رکورد را با استفاده از متد Direct Load از جدول دیتابیس مبدا به دیتابیس مقصد منتقل کنم.


اقداماتی که باید در مبدا (SOURCE)  صورت پذیرد به شرح زیر است:

1- ایجاد یک پروسس Extract از نوع Initial load با نام “Load1”

# ./ggsci
GGSCI (redhat-src.localdomain) 1> ADD EXTRACT load1, SOURCEISTABLE
EXTRACT added.

از آنجایی که وظیفه Load1 استخراج داده های فقط برای یکبار می باشد و نه تمام تراکنش های بعدی جدول، باید از عبارت SOURCEISTABLE در تعریف این پروسس استفاده کنیم.

2- ایجاد یک فایل پارامتر با مقادیر زیر برای پروسس Load1 :

GGSCI (redhat-src.localdomain) 6> EDIT PARAMS load1


EXTRACT load1
USERID ggs_owner, PASSWORD ggs_owner
RMTHOST devu007, MGRPORT 7809   “نام هاست و شماره پورت سیستم مقصد
RMTTASK replicat, GROUP load2         “  نام پروسس سیستم مقصد
TABLE sh.products;

اقداماتی که باید در مقصد (Target) صورت پذیرد به شرح زیر است:

3- ایجاد یک پروسس Replicat از نوع Initial Load با نام “Load2”:

GGSCI (devu007) 1> ADD REPLICAT load2, SPECIALRUN
REPLICAT added.

آنجایی که این پروسس فقط یک بار وظیفه دریافت اطلاعات از مبدا و درج در جدول مقصد را دارد از عبارت SPECIALRUN استفاده می کنیم.

4- ایجاد یک فایل پارامتر برای پروسس Load2 :

GGSCI (devu007) 2> EDIT PARAMS load2


REPLICAT load2
USERID ggs_owner, PASSWORD ggs_owner
ASSUMETARGETDEFS
MAP sh.Product, TARGET sh.Product;

تست اولیه :

On Source:

SQL> select count(*) from products;
COUNT(*)
 ———-
 72
On Target:

SQL> select count(*) from products;
COUNT(*)
 ———-
 0

5- استارت پروسس Load1 برای انجام Initial Load:

نکته: از آنجایی که این پروسس فقط یکبار برای انجام بارگذاری اولیه اجرا می شود نیازی نیست در در سمت دیتابیس مقصد پروسس Replicat با نام Load2  را دستی اجرا کنیم و آن به صورت خودکار اجرا خواهد شد.

On Source:

GGSCI (redhat-src.localdomain) 16> START EXTRACT load1
Sending START request to MANAGER …
EXTRACT LOAD1 starting
GGSCI (redhat-src.localdomain) 28> info extract load1
EXTRACT LOAD1 Last Started 2016-02-11 11:33 Status RUNNING
Checkpoint Lag Not Available
Log Read Checkpoint Table SH.PRODUCTS
2016-02-11 11:33:16 Record 1
Task SOURCEISTABLE
GGSCI (redhat-src.localdomain) 29> info extract load1
EXTRACT LOAD1 Last Started 2016-02-11 11:33 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Table SH.PRODUCTS
2016-02-11 11:33:16 Record 72
Task SOURCEISTABLE

تست صحبت عملیات Initial load:

On Target:
 SQL> select count(*) from products; COUNT(*)
 ———-
 72

در قسمت بعد در خصوص راه اندازی پروسس های Extarct و Replicat بصورت آنلاین برای همانند سازی داده ها در مبدا و مقصدsynchronize the changed data) صحبت خواهم کرد.