هر صبح، قبل از اینکه کاربرها زنگ بزنند، این ده مورد را به همین ترتیب بررسی میکنیم:
۱. Instance و دیتابیس بالا هستند؟ PDBها open هستند؟۲. در Alert Log خطای جدی ثبت شده؟۳. Tablespace، Temp و Undo جا دارند؟۴. بکاپ دیشب کامل شده؟۵. FRA و Archive Log پر نشده؟۶. Session قفلشده یا Long Running داریم؟۷. شیء Invalid بعد از تغییرات اخیر اضافه شده؟۸. Jobهای Scheduler شکست خوردهاند؟۹. Lag در Data Guard (روی Standby) وجود دارد؟۱۰. Listener، فضای دیسک و ASM Diskgroup سالم هستند؟
برای مورد اول، این سه کوئری کافی است:SELECT instance_name, status, database_status, startup_timeFROM v$instance;
SELECT name, open_mode, database_role, log_modeFROM v$database;
-- CDB onlySELECT name, open_mode FROM v$pdbs;
در چهار قسمت بعدی، سراغ Alert Log، فضای Tablespace، FRA و بکاپ میرویم.
۱۵
۷:۴۶
Alert Log پر از پیام است و همهشان مهم نیستند. برای صبحها این کوئری را بزنید:SELECT originating_timestamp, message_textFROM v$diag_alert_extWHERE originating_timestamp > SYSTIMESTAMP - INTERVAL '1' DAYAND REGEXP_LIKE(message_text,'ORA-(00600|07445|01555|01578|01653|01654|01652|00257|04031|00060|00020)')ORDER BY originating_timestamp;
معنی خطاهای رایج:
دو پیام دیگر هم هستند که ORA ندارند ولی مهماند: «Checkpoint not complete» و «Private strand flush not complete». اگر زیاد میبینیدشان، Redo Logها کوچکاند.
۱۴
۹:۴۱
مانیتورینگ Tablespace، Temp و Undo | چکلیست صبحگاهی DBA، قسمت ۳ از ۵
بیشتر وقتها فقط Tablespaceهای کاربر را چک میکنیم و Temp و Undo را فراموش میکنیم. هر سه را باید دید.
Tablespace (درصد نسبت به حداکثر اندازه قابل Autoextend):SELECT tablespace_name, ROUND(used_percent,1) AS used_pctFROM dba_tablespace_usage_metricsORDER BY used_pct DESC;
Temp:SELECT tablespace_name,ROUND((tablespace_size - free_space)/tablespace_size*100,1) AS used_pctFROM dba_temp_free_space;
Undo (خطاهای ۲۴ ساعت اخیر):SELECT TO_CHAR(begin_time,'DD-MON HH24:MI') AS t,undoblks, maxquerylen, ssolderrcnt, nospaceerrcntFROM v$undostatWHERE begin_time > SYSDATE - 1AND (ssolderrcnt > 0 OR nospaceerrcnt > 0);
نکتهها:
اگر ssolderrcnt صفر نیست، یعنی ORA-01555 رخ داده. maxquerylen را با undo_retention مقایسه کنید.
اگر nospaceerrcnt صفر نیست، Undo جا ندارد و تراکنشها در خطر هستند.
عدد بالای ۸۵٪ یعنی همین امروز برنامهریزی کنیم، نه وقتی ORA-01653 آمد.
درصد Tablespaceهای Autoextend گمراهکننده است، چون اگر دیسک پر شود Autoextend هم جواب نمیدهد. فضای واقعی دیسک را هم ببینید.




انجمن مستقل تخصصی اوراکل
@IranOracleCommunityاینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity
بیشتر وقتها فقط Tablespaceهای کاربر را چک میکنیم و Temp و Undo را فراموش میکنیم. هر سه را باید دید.
نکتهها:
۱۳
۷:۲۰
FRA و Archive Log: وقتی دیتابیس بدون هشدار میایستد | چکلیست صبحگاهی DBA، قسمت ۴ از ۵
اگر FRA پر شود و Archiver نتواند فایل بنویسد، دیتابیس عملاً هنگ میکند (ORA-00257). این یکی از رایجترین قطعیهای شبانه است.
اول ببینیم چقدر پر است و چقدر قابل آزادسازی:SELECT name,ROUND(space_limit/1024/1024/1024,1) AS limit_gb,ROUND(space_used/1024/1024/1024,1) AS used_gb,ROUND(space_reclaimable/1024/1024/1024,1) AS reclaimable_gbFROM v$recovery_file_dest;
SELECT file_type, percent_space_used, percent_space_reclaimable, number_of_filesFROM v$recovery_area_usage;
اگر reclaimable بالاست، خود Oracle در صورت نیاز آن را آزاد میکند. اگر نه، بکاپ آرشیوها باید زودتر برسد یا Retention تنظیم شود.
حذف درست Archive Log با RMAN:RMAN> CROSSCHECK ARCHIVELOG ALL;RMAN> DELETE ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE DISK;(اگر بکاپ روی نوار است، بهجای DISK بنویسید SBT.)
️ چیزی که هیچوقت نباید انجام دهید: حذف فایلها با rm در سطح سیستمعامل. Control File فکر میکند فایلها هنوز هستند و بعداً مشکل میسازد. اگر این کار را کردهاید، حتماً CROSSCHECK بزنید.
اگر در محیط Data Guard هستید، قبل از حذف مطمئن شوید Standby آرشیوها را دریافت و اعمال کرده.




انجمن مستقل تخصصی اوراکل
@IranOracleCommunityاینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity
اگر FRA پر شود و Archiver نتواند فایل بنویسد، دیتابیس عملاً هنگ میکند (ORA-00257). این یکی از رایجترین قطعیهای شبانه است.
اول ببینیم چقدر پر است و چقدر قابل آزادسازی:SELECT name,ROUND(space_limit/1024/1024/1024,1) AS limit_gb,ROUND(space_used/1024/1024/1024,1) AS used_gb,ROUND(space_reclaimable/1024/1024/1024,1) AS reclaimable_gbFROM v$recovery_file_dest;
SELECT file_type, percent_space_used, percent_space_reclaimable, number_of_filesFROM v$recovery_area_usage;
اگر reclaimable بالاست، خود Oracle در صورت نیاز آن را آزاد میکند. اگر نه، بکاپ آرشیوها باید زودتر برسد یا Retention تنظیم شود.
حذف درست Archive Log با RMAN:RMAN> CROSSCHECK ARCHIVELOG ALL;RMAN> DELETE ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE DISK;(اگر بکاپ روی نوار است، بهجای DISK بنویسید SBT.)
اگر در محیط Data Guard هستید، قبل از حذف مطمئن شوید Standby آرشیوها را دریافت و اعمال کرده.
۱۰
۹:۱۴
بکاپ سالم یعنی چه؟ | چکلیست صبحگاهی DBA، قسمت ۵ از ۵
«Status = COMPLETED» یعنی RMAN کارش را بدون خطا تمام کرده، نه اینکه بکاپ قابل Restore است. این دو تا یکی نیستند.
مرحله اول، وضعیت Jobها:SELECT TO_CHAR(start_time,'YYYY-MM-DD HH24:MI') AS start_time,input_type, status,ROUND(elapsed_seconds/60) AS minutes,ROUND(output_bytes/1024/1024/1024,1) AS output_gbFROM v$rman_backup_job_detailsWHERE start_time > SYSDATE - 2ORDER BY start_time DESC;
به این موارد دقت کنید:
COMPLETED WITH WARNINGS را نباید نادیده گرفت.
اگر زمان اجرا یا حجم خروجی ناگهان تغییر کرده، دنبال علت بگردید.
بکاپی که اجرا نشده اصلاً در این جدول ردیف ندارد. پس نبودن ردیف هم یعنی مشکل.
مرحله دوم، اعتبارسنجی واقعی (بدون Restore کردن):RMAN> RESTORE DATABASE VALIDATE;RMAN> RESTORE ARCHIVELOG ALL VALIDATE;این دستورها فایلهای بکاپ را میخوانند و بررسی میکنند که برای Restore سالماند. حداقل ماهی یک بار اجرایشان کنید.
برای بلاکهای خراب:SELECT * FROM v$database_block_corruption;اگر خروجی ندارد، یعنی بلاک خراب شناختهشدهای نیست. (این جدول فقط بعد از بکاپ یا VALIDATE بهروز میشود.)
و در نهایت: بکاپی که هیچوقت Restore واقعی روی آن تست نشده، قابل اتکا نیست. حداقل هر چند ماه یک بار در محیط تست Restore کنید.




انجمن مستقل تخصصی اوراکل
@IranOracleCommunityاینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity
«Status = COMPLETED» یعنی RMAN کارش را بدون خطا تمام کرده، نه اینکه بکاپ قابل Restore است. این دو تا یکی نیستند.
به این موارد دقت کنید:
و در نهایت: بکاپی که هیچوقت Restore واقعی روی آن تست نشده، قابل اتکا نیست. حداقل هر چند ماه یک بار در محیط تست Restore کنید.
۱۱
۸:۰۹
مرور پنج مورد اول چکلیست صبحگاهی مدیر پایگاه داده
پنج موردی که این چند روز با جزئیات و کوئری آماده منتشر کردیم، حالا در یک ویدیوی کوتاه. ذخیره کنید و برای همکارتان بفرستید.
این چکلیست ده مورد دارد و موردهای ۶ تا ۱۰ بهزودی در همین کانال منتشر میشود.
شما هر صبح اول سراغ کدام مورد میروید؟ در گروه تلگرام انجمن برایمان بنویسید.




انجمن مستقل تخصصی اوراکل
@IranOracleCommunityاینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity
پنج موردی که این چند روز با جزئیات و کوئری آماده منتشر کردیم، حالا در یک ویدیوی کوتاه. ذخیره کنید و برای همکارتان بفرستید.
این چکلیست ده مورد دارد و موردهای ۶ تا ۱۰ بهزودی در همین کانال منتشر میشود.
۵
۹:۱۴