تعاریف پایه Oracle GoldenGate

گلدن گیت ۲ نوع معماری کلی داره:

  • classic capture

در این سناریو گلدن گیت وابسته به ورژن باینری خودش بر روی پلتفرم مورد نظر هستش و گلدن گیت باید کنار هر دیتابیس در سرور مبدا و مقصد نصب بشود

  • integrate capture

در این معماری گلدن گیت بر روی یک سرور در کنار یک دیتابیس نصب میشه و با agentهایی دیتابیس‌ها باید logهای خودشون رو به این سرور ارسال کنند و capture (بازکردن لاگها) در سرور گلدن گیت انجام میشه. مثلاً شما می‌تونید گلدن گیت رو بر روی یک سرور لینوکسی نصب و راه‌اندازی کنید و ریپلیکیشن بین دیتابیسهای سرورهای ویندوزی راه‌اندازی کنید.

    • integrate capture downstream

اگر سرور گلدن گیت با یکی از دیتابیس‌ها یکی باشه بهش integrate capture میگن ولی اگه کلاً سرور گلدن گیت جدا از سرورهای دیتابیس باشه بهش integrate capture downstream میگن

نکته: یادمون باشه مبنای سناریوی integrate کلاً انجام عملیات logminer هستش

-- توپولوژی‌هایی که GG می‌تونه برای ما ساپورت بکنه به صورت کلی شکل زیر هستش راجع به هر توپولوژی من یک توضیح مختصری میدم:

 

goldengate_configs

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

از نیاز تا آینده Oracle GoldenGate

سناریو

به عنوان DBA یک بانک که در ایران و اروپا دفتر دارد مشغول کار هستید. بانک شما ۲ تا دیتابیس اوراکل 12C مجزا بر روی دو container مجزا در دفاتر اصلی خود دارد. شما نیاز دارید که برخی از جداول را از اسکیمای IR به اسکیمای EURO ببرید برای رسیدن به این هدف می‌توانید Oracle GoldenGate for Oracle 12c را امتحان کنید.

شما برای امتحان حتماً دارید از یه محیط توسعه و آزمایشی استفاده می‌کنید (جدا از نگرانی‌های محیط عملیاتی) که این محیط آزمایشی میتونه روی یه PC هم باشه ولی یادمون باشه در محیط عملیاتی دیتابیس EURO و IR از هم جدا هستند.

دسته‌بندی

اوراکل گلدن‌گیت یکی از محصولاتیه که تاثیرات خیلی کمی موقع کپچر اطلاعات(capture)، مسیریابی(routing)، تفییر اطلاعات(transformation) و انجام تراکنشهای مختلف در پایگاه‌داده‌های مختلف داره تقریباً زمانی نزدیک به زمان بی‌درنگ

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

همچنین قابلیت پیاده‌سازی سولوشنهای high availability و zero down time برای انواع upgrades یا migrations و live reporting و operational business intelligence و transactional data integration را به ما می‌دهد.

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

راه‌اندازی FTP و HTTP در ASM

FTP

شما می‌تونید از FTP در ASM استفاده کنید این قابلیت از طریق محصول Oracle XML DB پشتیبانی میشه پس شما باید این قابلیت رو نصب داشته باشید که به طور معمول در هنگام ایجاد دیتابیس نصب میشه و احتمالاً همین الان این ویژگی رو نصب دارید.

اگه این قابلیت رو نداشتید و یا نیاز داشتید در یک نصب جدید اون رو فعال کنید باید موقع ایجاد دیتابیس (DBCA) تیک مربوط رو بزنید و در صورت تمایل می‌تونید از طریق ویزارد پیکربندی‌های مورد نیاز رو انجام بدید:

موقع نصب database software نیازی به این قابلیتها به طور معمول نیست مگر اینکه ادمین تشخصی بده پس من همه‌ی تیکها رو برمیدارم

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

سطح redundancy دیسک گروه‌ها در ASM

سطح redundancy دیسک گروه ها در ASM به سه حالت زیر است:

نوع اول Normal
اطلاعات فایل ما را در دو جا نگهداری می‌کند. یعنی شبیه سناریو RAID 1 می‌باشد. تحمل خرابی یک گروه ۱ دیسک است. اگر یک دیسک از بین برود دیگری وجود دارد. برای راه‌اندازی آن دو تا دیسک و یا دو تا گروه failure نیاز است.

نوع دوم High
اطلاعات فایل را در ۳ جا نگهداری می‌کند. برای این حالت نمونه سناریو RAID ای وجود ندارد. تحمل خرابی ۲ تا دیسک و یا ۲ گروه failure است. اگر یکی از بین برود اطلاعات دو جای دیگر وجود دارد. برای راه اندازی آن ۳ تا دیسک و یا سه تا گروه failure نیاز است.

نوع سوم External
هیچ mirrory برای دیسک ها در ASM وجود ندارد و در صورت لزوم براساس RAID سخت‌افزاری دیسک‌ها سناریوبندی می‌شوند.

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

تحلیل و بررسی Online Redo Logs

تا حالا شده بخواین یک redo log یا archive log رو باز کنید؟ مجموعه ابزار Toad for Oracle یکی از ابزارهای قدرتمند مدیریت پایگاه‌داده اوراکل هستش که با در اختیار قراردادن ابزار Oracle LogMiner به صورت گرافیکی و ویزاردی به ما کمک میکنه که بتونیم redo log ها رو بخونیم. سرور فعلی من آرشیو لاگش فعال نیست و فعلا به خوندن redo logها بسنده میکنم.

برای بررسی و تحلیل Redo Logها پس از اتصال به دیتابیس از Database > Diagnose > LogMiner ابزار مدنظر رو فراخوانی می‌کنیم:

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

الحاق چند کارت شبکه در خانواده RHEL 6

فکر کنید شما یک ماشین DL380-G9 برای نصب سیستم‌عامل و دیتابیس در اختیار دارید. همونطور که می‌دونید این ماشین دارای ۴ پورت شبکه به صورت Onboard هستش و اگه ما به صفحه مشخصات این ماشین در سایت HP مراجعه کنیم (HPE ProLiant DL380 Gen9 Server) می‌بینیم که در قسمت SPECIFICATIONS در مشخصات کنترلر شبکه ۴ پورت رو نوشته که بسته به مدل و سفارش میتونه متفاوت باشه برای اطلاعات بیشتر می‌تونید به راهنمای کاربر این ماشین مراجعه کنید:

 HPE-ProLiant-DL380-Gen9-Server-User-Guide

حجم: 14.9 مگابایت

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

شاخص کلیدی عملکرد (KPI)

شاخص های کلیدی عملکرد یا KPI، متریک یا سنجه‌هایی هستند که برای ارزیابی عوامل تاثیرگذار بر موفقیت یک سازمان مورد استفاده قرار میگیرند. در واقع میزان موفقیت یک سازمان در یک یا چند فعالیت را با شاخصهای کلیدی عملکرد ارزیابی میکنند. به عنوان یک مدیر برای کنترل و پایش میزان دستیابی به اهداف بلندمدت و کوتاه مدت در سازمان خود، نسبت به تعیین و ارزیابی شاخصهای عملکرد اقدام نمایید. کنترل بر اساس شاخصهای عملکرد یکی از رموز موفقیت مدیران نمونه است. KPI مخفف (Key Performance Indicator) به معنای شاخص عملکرد کلیدی می باشد.

در واقع KPI به درک ما نسبت به میزان خوب بودن سازمان، واحد سازمانی و افراد در مقایسه با اهداف کمی و کیفی تعریف شده است کمک خواهد کرد.

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

به منظور تدوین یک استراتژی جهت فرموله نمودن شاخص‌های کلیدی عملکرد، تیم مربوطه در سازمان باید با اصول اولیه را شروع کرده، اهداف سازمان را شناسایی نموده، برای دستیابی به آن‌ها برنامه‌ریزی نماید و تعیین کند که چه کسانی می‌توانند بر روی این اطلاعات اقدام نماید.

این فرآیند تکرار شونده، شامل دریافت بازخورد تحلیلگران، مدیران و سرپرستان بخش‌ها می‌باشد و در حین انجام آن، نسبت به اینکه کدام فرایند تجاری نیاز به سنجش توسط شاخص‌های کلیدی عملکرد داشته و اطلاعات مربوط به آن را با چه کسی باید در میان می‌گذارد، درک بهتری خواهند داشت.

انتخاب اشتباه KPI این خطر را برای سازمان به ارمغان خواهد آورد که آنها را در مسیر اشتباهی قرار دهد و آنها را تشویق به پیگیری چیزی کند که هیچ پیشرفتی برای آنها ندارد.

همچنین شاخص کلیدی عملکرد پارامتری قابل اندازه‌گیری است، که می تواند منعکس کننده فاکتورهای حیاتی موفقیت یک سازمان باشد. این پارامترها از هر سازمانی به سازمان دیگر متغیر هستند.

سه ویژگی مهم KPI

  • منعکس کننده اهداف سازمانی باشند
  • قابل اندازه‌گیری باشند
  • کلید موفقیت سازمان باشند
۰۹ مهر ۹۶ ، ۱۱:۴۲ ۰ نظر
مهدی غفاری

افزایش فضای Heap, PermGen سرور OBIEE 11g

ممکنه شما هم به مشکلاتی نظیر پایین اومدن سرور bi بعد از لاگین چندکاربر خورده باشید

یکی از دلایل این مشکل به این خاطره که شما کلی گزارش سنگین دارید و کاربرها هم در آن واحد در حال استفاده از سامانه هوش تجاری شما هستند، پس ادمین اپلیکیشن شما باید فضای heap جاوا رو tune کنه تا سرور بتونه بدون مشکل گزارشها رو برای کاربرها لود کنه

تشخیص مقدار فضای heap

  • اوراکل پیشنهاد میکنه که فضای اولیه heap ماشین مجازی جاواتون رو 1/64 مقدار حافظه‌ی فیزیکی ماشین بذارید (Initial heap size)
  • همچنین توصیه میکنه مقدار بیشترین فضای heap ماشین مجازی جاواتون رو 1/4 مقدار حافظه‌ی فیزیکی ماشینتون بذارید (Maximum heap size)

بازبینی معماری حافظه در جاوا

خب میخوایم یه نگاه سریع به معماری حافظه در جاوا بکنیم:

[oracle@oraserv /]$ java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by :>
set search path for bootstrap classes and resources

-Xbootclasspath/a:<directories and zip/jar files separated by :>
append to end of bootstrap class path

-Xbootclasspath/p:<directories and zip/jar files separated by :>
prepend in front of bootstrap class path

-Xdiag show additional diagnostic messages
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
-XshowSettings show all settings and continue

-XshowSettings:all
show all settings and continue

-XshowSettings:vm show all vm related settings and continue

-XshowSettings:properties
show all property settings and continue

-XshowSettings:locale
show all locale related settings and continue

The -X options are non-standard and subject to change without notice.

ادامه مطلب...
۲۹ شهریور ۹۶ ، ۲۲:۰۳ ۰ نظر
مهدی غفاری

پیدا کردن مسیر JAVA_HOME

خب اگه شما هم مثل من حافظه خوبی نداشته باشید یا به سروری وصل شدید و ادمین مسئول نصب داکیومنت بهتون نداده باید خودتون آستینها رو بالا بزنید

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

مثلا فرض کنید نیاز دارید با استفاده از keytool به لیست certificateهای نصب شده دسترسی داشته باشید یا certificateای رو اضافه کنید

به عنوان مثال نیازه از دستور زیر استفاده بشه:

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts

خب اینجا باید مسیر JAVA_HOME$ رو داشته باشیم که یا باید به داکیومنتهای نصب مراجعه کنیم یا از دستور زیر برای پیدا کردن JAVA_HOME سیستم استفاده کنیم:

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

خب در آخر به نتیجه دلخواهمون میرسیم:

keytool -list -keystore /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.79.x86_64/jre/lib/security/cacerts

نکته: بهتره بعد از پیدا کردن مسیر اون رو به صورت یک متغیر در پروفایل کاربر تعریف کنیم.

نکته: پسورد دیفالت keystore جاوا

Enter keystore password: changeit

۱۶ شهریور ۹۶ ، ۱۳:۴۴ ۰ نظر
مهدی غفاری

حذف آرشیو لاگ‌ها با استفاده از RMAN

اگه دیسک شما پر شده شما باید بک‌آپ‌ها و آرشیو لاگ‌های قدیمی رو پاک کنید یا به tape انتقال بدید. اگه نیاز دارید آرشیو لاگ‌ها رو پاک کنید می‌تونید از دستورات زیر در RMAN استفاده کنید. البته توصیه میکنم بعد از گرفتن بک‌آپ یا انتقال آرشیوها به گارد اینکار رو انجام بدید و درکل حواستون به خطرات اینکار باشه

گرفتن لیست آرشیو لاگ‌ها

RMAN> list archivelog all;
RMAN> list copy of archivelog until time ‘SYSDATE-10’;
RMAN> list copy of archivelog from time ‘SYSDATE-10’
RMAN> list copy of archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN> list copy of archivelog from sequence 1000;
RMAN> list copy of archivelog until sequence 1500;
RMAN> list copy of archivelog from sequence 1000 until sequence 1500;

پاک‌کردن آرشیو لاگ‌ها

RMAN> delete archivelog all;
RMAN> delete archivelog until time ‘SYSDATE-10’;
RMAN> delete archivelog from time ‘SYSDATE-10’
RMAN> delete archivelog from time ‘SYSDATE-10’ until time ‘SYSDATE-2’;
RMAN> delete archivelog from sequence 1000;
RMAN> delete archivelog until sequence 1500;
RMAN> delete archivelog from sequence 1000 until sequence 1500;

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

از دستور noprompt استفاده کنید تا پیغام yes-no رو نبینید.

RMAN> delete noprompt archivelog until time 'SYSDATE-10';

حالا اگه موقع حذف آرشیولاگها به مشکل زیر برخورد کردید:

RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103136.56752.952282449 thread=1 sequence=103136
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103137.56751.952282463 thread=1 sequence=103137
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103138.56748.952282479 thread=1 sequence=103138
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103139.56744.952282493 thread=1 sequence=103139
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA/dwh/archivelog/2017_08_17/thread_1_seq_103140.56740.952282509 thread=1 sequence=103140

می‌تونید از force استفاده کنید:

RMAN> delete force noprompt archivelog until time 'SYSDATE-7';

خودکارسازی فرآیند

برای خودکارسازی فرآیند من از ۲ اسکریپت زیر استفاده کردم و با استفاده از سرویس cron اسکریپتها رو برای اجرای هفته‌ای زمانبندی کردم:

دریافت اسکریپت RMAN
حجم: 132 بایت

دریافت اسکرپت شل لینوکس
حجم: 423 بایت

منبع:

http://www.fatihacar.com/blog/delete-archivelog-using-rman-in-oracle

۱۴ شهریور ۹۶ ، ۲۱:۲۹ ۰ نظر
مهدی غفاری