۷ مطلب با کلمه‌ی کلیدی «سناریوی Unidirectional» ثبت شده است

سناریوی 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 - قسمت دهم (Manager مقصد)

اولین کار بررسی وضعیت سرویس Manager هستش:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 9> info all
Program Status Group Lag at Chkpt Time Since Chkpt

MANAGER RUNNING

خب اینجا باید طبق نقشه راهمون نامگذاری‌ها رو انجام بدیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 10> edit param mgr
PORT 65324
autostart extract rora1
autorestart extract rora1 , RETRIES 10, WAITMINUTES 1, RESETMINUTES 5
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 3

چون سناریو فعلی یکطرفه است من فقط سرویس replicat رو اضافه کردم در ادامه برای راه‌اندازی سناریوی ۲ طرفه باید capture, pump هم راه‌اندازی بشه.

خب برای اینکه پیکربندی ما اعمال بشه یکبار سرویس رو stop, start می‌کنیم:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 11> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)?y
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 12> start mgr
Manager started.

خب الان سرویس داره به صورت درست کار میکنه:

GGSCI (lx-01-oracle.roshak.org as GGS@orcl) 59> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING

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

سناریوی 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 - قسمت چهارم (راه‌اندازی TRANDATA)

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

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

سناریوی Unidirectional - قسمت اول (راه‌اندازی مبداء)

راه‌اندازی مبدا

بردن دیتابیس به حالت ArchiveLog

اول از همه یادمون باشه ما دیتابیس اوراکلی رو می‌تونیم به حالت آرشیو ببریم که وقتی دیتابیس‌امون رو shutdown می‌کنیم تا به حالت mount برسیم instance recovery ای اتفاق نیوفتد یعنی لازمه حتما SCNها یکی شده باشند.

پس اگه ما shutdown abort کنیم و رو حالت mount ببریم و بخوایم دیتابیس رو به حالت آرشیو ببریم امکانش وجود نخواهد داشت.

دیتابیس رو shutdown می‌کنیم:

SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

دیتابیس رو به حالت mount می‌بریم:

SQL> startup mount;
ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size 2253784 bytes
Variable Size 1543506984 bytes
Database Buffers 100663296 bytes
Redo Buffers 7094272 bytes
Database mounted.

دیتابیس رو روی حالت آرشیو می‌ذاریم:

SQL> alter database archivelog;
Database altered.

حالا دیتابیس رو open می‌کنیم تا instance تشکیل بشه

SQL> alter database open;
Database altered.

برای چک کردن این موضوع که دیتابیس ما تو حالت آرشیو لاگ هستش یا نه از دستور زیر در SQLPLUS استفاده می‌کنیم:

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 109
Next log sequence to archive 111
Current log sequence 111

خب همونطور که می‌بینید مکانیزم آرشیو لاگ در این سرور فعال هستش و مقصد ذخیره آرشیوها در پارامتر db_recovery_file_dest تنظیم شده که اینجا همون فضای FRA ما هستش

حالا اگه یک Switch Logfile دستی بزنیم مشاهده می‌کنیم Online Redo Log File ما آرشیو شده

SQL> alter system switch logfile;
System altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 110
Next log sequence to archive 112
Current log sequence 112

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

سناریوی Unidirectional در Oracle GoldenGate - مقدمه

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