۲۹ مطلب با کلمه‌ی کلیدی «oracle» ثبت شده است

دستورات کاربردی ابزار Srvctl

Srvctl یک ابزار شناخته شده برای add، remove، relocate و مدیریت سرویسهای crs مختلف یا کامپوننت های RAC است.

1. STOP DATABASE

SYNTAX – srvctl stop database -d db_name [-o stop_options] where stop_options is normal/immediate(default)/transactional/abort

e.g

srvctl stop database -d PRODB -o normal
srvctl stop database -d PRODB -o immediate
srvctl stop database -d PRODB -o transactional
srvctl stop database -d PRODB -o abort

2. START DATABASE
SYNTAX – srvctl start database -d db_name [-o start_options] where start_option is nomount/mount/open(default)

e.g

srvctl start database -d PRODB -o nomount
srvctl start database -d PRODB -o mount
srvctl start database -d PRODB -o open

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

تست failover دیتاگارد 19.12 و خطای ORA-16629

داشتم تست failover و حداکثر پایداری برای اپلیکیشن رو انجام میدادم به دو نکته برخورد کردم.

اولین نکته اینه که شما اگه میخواین تست failover انجام بدید اگه تو دیتابیس primary و standby مکانیزم flashback فعال باشه میتونید بدون راه اندازی کامل standby از اول این کار رو انجام بدید ولی اگه flashback فعال نباشه باید از اول به طور کامل standby جدید راه اندازی بشه. به این مکانیزم REINSTATE گفته میشه

نحوه انجام با broker

ابتدا فعال بودن flashback رو در primary و standby چک میکنیم:

SELECT FLASHBACK_ON FROM V$DATABASE;

برای چک کردن وضعیت بهتره یکباره از دستور show configuration استفاده بکنیم:

DGMGRL> show configuration
Configuration - g90
Protection Mode: MaxAvailability
Members:
tehrang - Primary database
tehran - Physical standby database (disabled)
ORA-16661: the standby database needs to be reinstated
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 91 seconds ago)

حالا باید دیتابیس fail شده رو که به مدار و حالت mount ببریم:

SQL> startup mount
ORACLE instance started.
Total System Global Area 4294964072 bytes
Fixed Size 9143144 bytes
Variable Size 2634022912 bytes
Database Buffers 1644167168 bytes
Redo Buffers 7630848 bytes
Database mounted.

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

فعالسازی trace لیسینر اوراکل

یه مشکل نتورکی داریم ولی نمیدونیم مشکل دقیقا از کجاست؟؟ توی این مواقع به غیر از خوندن لاگ لیسینر توصیه میشه trace رو در سطح لیسینر فعال کنید که جزییات بیشتری رو بتونید آنالیز و tshot کنید.

فعالسازی با تنظیم:

پارمترهای listener.ora

DIAG_ADR_ENABLED_LISTNER=OFF 
TRACE_DIRECTORY_LISTENER = <path>
TRACE_LEVEL_LISTENER = 16

پارامترهای sqlnet.ora

DIAG_ADR_ENABLED=OFF 
TRACE_LEVEL_SERVER = 16
TRACE_DIRECTORY_SERVER = <path>
۳۱ شهریور ۹۸ ، ۲۳:۳۹ ۰ نظر
مهدی غفاری

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

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

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

سناریو نصب و راه‌اندازی اوراکل دیتاگارد 11g همراه با ASM - مرحله به مرحله - قسمت دوم

به قسمت دوم از راه‌اندازی سناریو Active DataGuard پایگاه داده اوراکل خوش آمدید

پیش‌فرض‌ها:

  • سایت شفق = سایت primary
  • سایت تابان = سایت standby

ایجاد دیتابیس با ابزار DBCA

به DBCA خوش آمدید

بر روی سایت primary از طریق کاربر oracle به سیستم‌عامل login کرده و ابزار Database Configuration Assistant را با دستور dbca اجرا میکنیم

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

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

نگاهی بر معماری Oracle GoldenGate - قسمت پنجم

خب تا حالا داشتیم سناریوی Unidirectional رو باهم مرور میکردیم نوبتی هم باشه نوبته معماری Bidirectional هستش

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

نگاهی بر معماری Oracle GoldenGate - قسمت سوم

SCN رو که یادتونه؟ همون بچه‌ای که هر تغییری توی دیتابیس ما بخوره یکی میخوره تو سرش و Counter یکی میره بالا (حتی اگه time دیتابیس تغییر بکنه) خب یادمون هم هستش که redoها براساس SCNها هستن که در Online Redo Log Fileهای ما قرار می‌گیرند خب گلدن‌گیت خودش با SCN کاری نداره و بین سرویسهاش از مکانیزم دیگه‌ای استفاده میکنه ولی موقعی که Extract‌ میخواد فاز Capture رو شروع بکنه اینجاست که SCNهای دیتابیس رو میخونه و آخرین SCN خونده شده رو نگه میداره تا بدونه آخرین تغییری که خونده تا کجا بوده و اگه Gapای افتاد بتونه Gap رو برطرف بکنه خب گلدن‌گیت به محض اینکه SCN رو خوند و عملیات Capture رو انجام داد دیگه به SCN ما کار نداره

حالا اگه شما بخواین تو داخل مکانیزم گلدن‌گیت بین رکوردها جا به جا بشید باید با مفهوم RBA آشنا بشید (Relative Byte Address) یعنی ترتیبی که فایل‌های capture ما در trail فایل‌ها نوشته میشوند هر کدوم یک RBA میخورن و بر اساس این RBA این رکوردها از هم جدا و تفکیک می‌شوند

یکی از مزایای گلدن‌گیت اینه که میتونه چندین Trail فایل داشته باشه برای اینکار موقعی که نیازه Captureها اجرا بشوند باید یکسری Trail File ساخته بشوند که نام این فایل‌ها توسط اوراکل به صورت ۸ کاراکتری در نظر گرفته میشه که ۲ کاراکتر اول توسط شما مشخص میشه مثلاً SH, SA, T1, L1 و ۶ کارکتر بعدی توسط اوراکل counter میخوره

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

از نیاز تا آینده 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 را به ما می‌دهد.

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

حذف آرشیو لاگ‌ها با استفاده از 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

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

پیدا کردن مپ دیسکهای ASM

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

#!/bin/bash

export ORACLEASM='/etc/init.d/oracleasm'

echo "ASM Disk Mappings"
echo "----------------------------------------------------"
for f in `$ORACLEASM listdisks`
do
dp=`$ORACLEASM querydisk -p $f | head -20 | grep /dev | awk -F: '{print $1}'`
echo "$f: $dp"
done
۱۳ شهریور ۹۶ ، ۲۱:۱۷ ۰ نظر
مهدی غفاری