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

بررسی هنگ کردن اوراکل

برای انجام این پروسه میشه از sqlplus  و با استفاده از دستور oradebug  اطلاعاتی را به دست آورد. فرمان oradebug hanganlyze اطلاعاتی را در فایل trace برای بررسی بیشتر ارائه خواهد کرد. روال کلی با استفاده از فرمان های  زیر است:

sqlplus / as sysdba
oradebug setmypid
oradebug unlimit
oradebug hanganlyze 3
oradebug dump ashdumpseconds 30
oradebug dump systemstate 266
oradebug tracefile_name

در مواقع هنگ کامل که با sqlplus / as sysdba به دیتابیس نمی توان متصل شد از سوئیچ زیر استفاده کنید:

sqlplus /nolog
set _prelim on
۲۸ مهر ۹۸ ، ۰۸:۱۰ ۰ نظر
مهدی غفاری

چک کردن سایز دیتابیس اوراکل NonCDB و CDB

می‌خوایم نحوه چک کردن سایز فعلی دیتابیس اوراکل رو برای Non-CDB و CDBها ببینیم. اکثرا این اطلاعات در نرم‌افزارهایی مثل Toad For Oracle به سادگی قابل روئیت هستند اما اگر شما در سایت عملیاتی باشید و دسترسی به ابزار نداشته باشید بهترین راهکار اجرای کوئری در sqlplus هستش.

محیط Non-CDB

چک کردن سایز اشغال شده دیتافایلها در دیسک:

select sum(bytes)/1024/1024 size_in_mb from dba_data_files;

چک کردن تمام فضای استفاده شده توسط سگمنت‌ها:

select sum(bytes)/1024/1024 size_in_mb from dba_segments;

چک کردن سایز اسکیماها در اوراکل:

select owner, sum(bytes)/1024/1024 Size_MB from dba_segments group by owner;

چک کردن فضای آزاد و فضای اشغال شده در دیتابیس:

select
"Reserved_Space(MB)", "Reserved_Space(MB)" - "Free_Space(MB)" "Used_Space(MB)","Free_Space(MB)"
from(
select
(select sum(bytes/(1014*1024)) from dba_data_files) "Reserved_Space(MB)",
(select sum(bytes/(1024*1024)) from dba_free_space) "Free_Space(MB)"
from dual );

چک کردن سایز تمام فایل‌های دیتابیس بعلاوه tempها و redoها:

select
( select sum(bytes)/1024/1024/1024 data_size from dba_data_files ) +
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size from dba_temp_files ) +
( select sum(bytes)/1024/1024/1024 redo_size from sys.v_$log ) +
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size from v$controlfile) "Size in GB"
from
dual;

محیط CDB و دیتابیسهای PDB

چک کردن سایز PDB:

select con_id, name, open_mode, total_size from v$pdbs;

چک کردن سایز CDB:

select sum(size)/1024/1024/1024 from cdb_data_files;

منبع

https://smarttechways.com/2018/04/23/check-the-size-of-oracle-database-and-pdbs-database/

۲۰ مهر ۹۸ ، ۱۹:۰۲ ۰ نظر
مهدی غفاری

فعالسازی 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>
۳۱ شهریور ۹۸ ، ۲۳:۳۹ ۰ نظر
مهدی غفاری

راه‌اندازی اوراکل ۱۹.۳ به صورت SingleInstance بر روی داکر

برای راه‌اندازی اوراکل ۱۹.۳ بر روی داکر ابتدا باید داکر را بر روی پلتفرم هاست خود نصب کنید. برای نصب داکر از وبسایت رسمی داکر شما نیاز به ساخت اکانت در داکر هاب دارید. بعد از ساخت اکانت و نصب Docker Desktop با کلیک بر روی اون داکر به سادگی اجرا میشه.

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

توصیه‌های‌ اوراکل جهت ارتقای پایگاه داده رابطه‌ای

در حال حاضر نسخه 19c پایگاه‌داده رابطه‌ای اوراکل برای تمام پلتفرم‌ها در دسترس قرار داده شده است. اوراکل قراره از این نسخه برای مشتریان برتر تا جمعه، ۱۱ فروردین ۱۴۰۲ پشتیبانی طولانی مدت (Long Term Support) انجام بده همچنین پشتیبانی تمدید شده (Extended Support) خود را تا سه شنبه، ۱۱ فروردین ۱۴۰۵ برای این نسخه ارائه میدهد.

به منظور جلوگیری از خرید جدید محصول، به حداقل رساندن پروسه ارتقا در آینده و استفاده از ویژگی‌های جدید اوراکل شما رو تشویق میکند بدون تعلل به نسخه جدید 19c آپگرید کنید.

گزینه‌های ارتقای توصیه شده از طرف اوراکل:

اگه شما در حال حاظر از نسخه 11.2.0.4 یا 12.1.0.2 پایگاه داده اوراکل استفاده می‌کنید شما باید یک مجوز توافقنامه نامحدود که شامل پشتیبانی تمدید شده و ارتقا به نسخه 19c است را با پرداخت هزینه توافقنامه قبل از پچ کردن به نسخه جدید تهیه کنید. 

در جریان باشید آخرین نسخه پچ پایگاه‌داده اوراکل 11.2.0.4 در پلن پشتیبانی تمدید شده در آخرین روز از تاریخ پشتیبانی یعنی پنج شنبه، ۱۱ دی ۱۳۹۹ انتشار پیدا می‌کند،

همچنین آخرین پچ نسخه 12.1.0.2 پایگاه‌داده اوراکل شنبه، ۹ مرداد ۱۴۰۰ انشار پیدا می‌کند و از سه شنبه، ۸ مرداد ۱۳۹۸ آپگرید به نسخه 19c برای این مشتریان بدون هزینه خواهد بود.

ولی اگه در حال حاضر از نسخه 12.2.0.1 یا 18c پایگاه داده استفاده می‌کنید بهتره قبل از اینکه به آخرین روزهای پشتیبانی تصحیح خطای اوراکل برسید آپگرید کنید.

تاریخ پایان پشتیبانی تصحیح خطای اوراکل برای نسخه 12.2.0.1 جمعه، ۱۰ مرداد ۱۳۹۹ تعیین و برای نسخه 18c چهارشنبه، ۹ تیر ۱۴۰۰ تعیین شده است.

هدف اوراکل از این توصیه‌ها راهنمایی شماست که همیشه در دوره پشتیبانی Lifetime Support و Error Correction بمانید و از هزینه ارتقا در دوره Extended Support به نسخه جدید جلوگیری کنید.

برای سوالات خود درباره certified بودن محصول خود مانند Oracle E-Business Suite, Oracle JD Edwards, Oracle PeopleSoft, Oracle Siebel و ... به بخش Certification از اکانت متالینک خود مراجعه نمایید.

برای سوال در مورد نحوه فرآیند ارتقا و انجام آن در سایت‌های خود می‌توانید با ما در تماس باشید.

همچنین برای اطلاعات بیشتر به مستند زیر مراجعه کنید:

Release Schedule of Current Database Releases (Doc ID 742060.1)

۰۷ تیر ۹۸ ، ۱۵:۴۳ ۰ نظر
مهدی غفاری

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

ما ۴ تا name در دیتابیس داریم که از اول هر ۴ تای این اسامی در دیتابیس اوراکل نبوده‌اند و به مرور نسخه‌های مختلف و زمان ایجاد شده‌اند.

ORACLE_SID (در سطح OS) = این پارامتر در سطح OS ما است. اگر پارامتر db_name مقداردهی نگردند مقدار این پارامتر را می‌گیرد.

DB_NAME (اجباری، یکسان باشد*) = اسم دیتابیس و به معنای کلمه جایی که دیتاها ذخیره می‌شوند. عمیقاً کلمه دیتابیس به ۳ دسته از فایل‌ها گفته می‌شود:

۱) دیتافایل‌ها ۲) فایلهای ORL, CTL, SPFILE منظور DB_NAME فایلهای دیتابیس است که مجزا از Instance هستند.

ORACLE DB_NAME PARAMETER V11.2 - LINK

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

راه‌اندازی 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 ابزار مدنظر رو فراخوانی می‌کنیم:

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

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

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