۲۰ مطلب با موضوع «Database :: Oracle GoldenGate» ثبت شده است

سناریوی Unidirectional - قسمت دوازدهم (Replicat مقصد)

برای ساخت سرویس 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.*;

ادامه مطلب...
۳۰ بهمن ۹۷ ، ۱۵:۲۱ ۱ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت یازدهم (سرویس Pump)

خب الان باید سمت مبدا یک سرویس Pump ایجاد بکنیم که فایلهای Trail سمت مقصد فرستاده بشوند

برای اینکار اول باید سرویس Pump رو بسازیم بعد به سرویسهامون اضافه‌اش کنیم.

GGSCI (lx-02-oracle) 13> edit param pora1
EXTRACT pora1 
passthru
DECRYPTTRAIL AES128 KEYNAME supermaskey
RMTHOST 192.168.92.183 ,MGRPORT 65324, COMPRESS
ENCRYPTTRAIL AES128 KEYNAME supermaskey
RMTTRAIL dirdat/l2
TABLE TEST_USER.*;

خط اول: می‌گیم این پیکربندی مربوط به سرویس از جنس Extract هستش و اسمش pora1 نامگذاری شده

خط دوم: آپشن passthru به درد سولوشن‌های oltp به oltp میخوره یعنی همه‌ی structre مبدا در مقصد هستش اینجوری گلدن‌گیت دیگه دنبال تغییر structre نمیره ولی اگه ساختار مبدا و مقصد شما یکی نیست نباید از این آپشن استفاده کنید

خط سوم: وقتی trail fileهای ما رمزنگاری شده باشن اول از همه pump باید اونها رو DECRYPT کنه تا بتونه داخل اونها رو بخونه

خط چهارم: اتصال به سرور و manager مقصد به صورت فشرده هستش 

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

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

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

ادامه مطلب...
۳۰ بهمن ۹۷ ، ۱۴:۵۳ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت نهم (TRANDATA مقصد)

راه‌اندازی TRANDATA (اختیاری)

اگه بخوایم سناریوی یکطرفه راه‌اندازی کنیم اصلاً نیازی به اینکار نیست چون ما پروسه capture رو راه‌اندازی نمی‌کنیم ولی چون من میخوام سناریو رو در ادامه ۲ طرفه راه‌اندازی بکنم پس این کار رو انجام میدم:

GGSCI>ADD TRANDATA TEST_UNIDIRECTIONALGGS.*

نکته: اگه به خطای زیر برخوردید یکبار trandata رو پاک کنید و دوباره برای جدول trandata بسازید:

Logging of supplemental redo log data is already enabled for table TEST_UNIDIRECTIONALGGS.TEST_GGS_2.

2017-11-10 12:59:20 WARNING OGG-00706 Failed to add supplemental log group on table TEST_UNIDIRECTIONALGGS.TEST_GGS_2
due to ORA-32588: supplemental logging attribute primary key exists SQL ALTER TABLE "TEST_UNIDIRECTIONALGGS"."TEST_GGS_2"
ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE, FOREIGN KEY) COLUMNS /* GOLDENGATE_DDL_REPLICATION */.
delete trandata TEST_UNIDIRECTIONALGGS.TEST_GGS_2
add trandata TEST_UNIDIRECTIONALGGS.TEST_GGS_2

۳۰ بهمن ۹۷ ، ۱۲:۵۵ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت هشتم (Initial Load)

انجام initial load به روش‌های گوناگونی امکان پذیر است. اگه دیتای زیادی ندارید می‌تونید به صورت دستی اسکریپت‌های ساخت جداول و داده‌ها رو بر روی دیتابیس مقصد اعمال کنید.

اگه نیاز داشتید از initail load گلدن‌گیت استفاده کنید بهتره بدونید structure آبجکتها رو خودتون باید انتقال بدید و فقط دیتا رو با این روش می‌تونید انتقال بدید.

ولی در صورتی که دیتای زیادی دارید من توصیه میکنم از روشهای دیگه‌ای برای انتقال دیتا برای بار اول استفاده کنید.

خروجی  گرفتن از اسکیما

من تو این سناریوی تست قصد دارم اسکیمای 'TEST_UNIDIRECTIONALGGS' رو به دیتابیس مقصد منتقل کنم پس یک dump از اسکیمای مبدا با مشخصات زیر می‌گیرم:

EXPDP SYSTEM/... \
DUMPFILE="TEST_UNIDIRECTIONALGGS.dmp"\
LOGFILE="EXP_TEST_UNIDIRECTIONALGGS.log"\
DIRECTORY=DATA_PUMP_DIR\
FLASHBACK_TIME=SYSTIMESTAMP\
COMPRESSION=METADATA_ONLY\
CONTENT=ALL\
SCHEMAS=('TEST_UNIDIRECTIONALGGS')

ادامه مطلب...
۲۶ بهمن ۹۷ ، ۱۱:۴۰ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت هفتم (راه‌اندازی مقصد)

خب من برای راه‌اندازی سناریوی تست‌امون یک ماشین دیگه با مشخصات زیر آماده کردم که به عنوان مقصد ازش استفاده کنم:

همیشه یک DBA قبل اینکه گلدن‌گیت رو راه‌اندازی بکنه باید نقشه راهش رو بکشه و قوانین نامگذاری‌های سرویسها و مسیرهاش رو هم مشخص و داکیومنت بکنه

من نقشه راه سناریوی تستمون رو با Microsoft Visio به صورت زیر کشیدم:

ادامه مطلب...
۲۴ بهمن ۹۷ ، ۱۳:۴۴ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت ششم (سرویس Capture)

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

edit param eora1

و پیکربندی زیر رو درون اون قرار بدیم:

EXTRACT eora1 
USERID ggs, &
PASSWORD ggs
TRANLOGOPTIONS EXCLUDEUSER ggs, asmuser sys@ASM, asmpassword sys
ENCRYPTTRAIL AES128 KEYNAME supermaskey
EXTTRAIL dirdat/l1
DDL INCLUDE MAPPED
TABLE TEST_USER.*;

خط اول: ما مشخص میکنیم که یک سرویس extract به اسم eora1 میخوایم

خط دوم: مشخص میکنیم که نام‌کاربری ما چیه

خط سوم: پسورد رو کاربر گلدن‌گیتمون رو وارد میکنیم (می‌تونیم به صورت هش شده اون رو وارد کنیم)

نکته: توی گلدن‌گیت برای اضافه کردن سرویسها باید به صورت اسکرپت‌نویسی عمل کنیم یعنی هر خط اینجا یک دستور جدید محسوب میشه برای اینکه ادامه‌ی دستوری رو خط بعدش بنویسیم از & استفاده می‌کنیم 

خط چهارم: با دستور TRANLOGOPTIONS ما بر روی TRAIN Fileها مدیریت انجام می‌دیم یکی از آپشنهای این دستور EXCLUDEUSER هستش که با دادن کاربر ggs من از ایجاد loop جلوگیری کردم.

نکته: اگه دیتابیس شما با ASM پیکربندی شده چون Redo Log های ما در دیسک گروه‌های ASM وجود دارن و گلدن‌گیت نیاز داره به طور مستقیم با Online Redo Log Fileها کار بکنه ما باید مشخصات کاربر ASM رو هم بهش بدیم که اینکار رو با آپشنهای asmuser, asmpassword در دستور TRANLOGOPTIONS انجام می‌دیم.

ادامه مطلب...
۱۲ بهمن ۹۷ ، ۰۸:۵۶ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت پنجم (پیکربندی GLOBAL)

GLOBAL یک فایل بدون پسوند هستش که ما می‌تونیم تعدادی از پارمترهای عمومی رو درون اون مشخص کنیم و با بالا اودن سرویس‌های گلدن‌گیت این تنظیمات اعمال می‌شوند. تا نسخه‌های قبلی می‌تونستیم اسم CheckpointTable رو همینجا درون این فایل مشخص کنیم اما تو نسخه‌های جدید گلدن‌گیت دیگه به این پارمتر کاری نداره و ازش تبعیت نمیکنه و شما حتما باید موقع ساخت CheckpointTable اسمی رو هم براش انتخاب کنید

نمونه‌ای از فایل GLOBALS

CHECKPOINTTABLE CHKTABLE
GGSCHEMA GGS
ENABLEMONITORING

ادامه مطلب...
۲۷ آذر ۹۷ ، ۱۲:۳۸ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت چهارم (راه‌اندازی TRANDATA)

برای فعال کردن قابلیت Supplemental Logging در سطح رکورد ما می‌تونیم TRANDATA رو در گلدن‌گیت فعال کنیم، اگه شما از TRANDATA استفاده نکنید دستورات UPDATE و DELETE موقع APPLY توسط REPLICAT قطعاً FAIL می‌شوند و سرویس REPLICAT ممکنه Abend بشه

ادامه مطلب...
۱۱ آذر ۹۷ ، ۰۸:۳۸ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت سوم (اسکیمای TEST)

برای راه‌اندازی سناریوی تست من یک اسکیما با تعدادی جدول میسازم:

DROP USER TEST_UNIDIRECTIONALGGS CASCADE;
CREATE USER TEST_UNIDIRECTIONALGGS
IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
-- 2 Roles for TEST_UNIDIRECTIONALGGS
GRANT CONNECT TO TEST_UNIDIRECTIONALGGS;
GRANT DBA TO TEST_UNIDIRECTIONALGGS;
ALTER USER TEST_UNIDIRECTIONALGGS DEFAULT ROLE ALL;
-- 2 System Privileges for TEST_UNIDIRECTIONALGGS
GRANT CREATE SESSION TO TEST_UNIDIRECTIONALGGS;
GRANT UNLIMITED TABLESPACE TO TEST_UNIDIRECTIONALGGS;
-- 1 Tablespace Quota for TEST_UNIDIRECTIONALGGS
ALTER USER TEST_UNIDIRECTIONALGGS QUOTA UNLIMITED ON USERS;

ادامه مطلب...
۱۰ آذر ۹۷ ، ۱۰:۲۷ ۰ نظر
مهدی غفاری

سناریوی Unidirectional - قسمت دوم (سرویس Manager)

خب همونطور که یادتونه در مراحل نصب، گلدن‌گیت سرویس MGR رو ساخته و میدونیم استارت شده برای اینکه ببینیم چه سرویس‌هایی در گلدن‌گیت پیکربندی شده‌اند از دستور زیر استفاده می‌کنیم:

GGSCI (lx-02-oracle) 1> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

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

GGSCI (lx-02-oracle) 2> edit param mgr

نکته: با زدن این دستور فایل پیکرندی شما با ادیتور پیشفرض تنظیم شده باز میشه

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

نکته: دایرکتوری مربوط به پیکرندی‌های گلدن‌گیت (dirprm) هستش

[root@lx-02-oracle ~]# cd /u02/app/oracle/ggs/dirprm/
[root@lx-02-oracle dirprm]# ll
total 8
-rwxr-x--- 1 oracle oinstall 103 Aug  7  2014 jagent.prm
-rw-r--r-- 1 oracle oinstall  10 Nov  1 17:13 mgr.prm

ادامه مطلب...
۰۱ آبان ۹۷ ، ۱۱:۴۹ ۱ نظر
مهدی غفاری