لوگوی پیام رسان بلهدانلود «بله»
عکس پروفایل انجمن تخصصی اوراکلا
۷ عضو

انجمن تخصصی اوراکل

انجمن مستقل تخصصی اوراکلمحتوای کاربردی برای متخصصان فارسی‌زبان اوراکل: چک‌لیست، نکته‌های فنی، کوئری‌های آماده و تجربه‌های واقعی از مدیریت، نگهداری و امنیت پایگاه داده.ذخیره کنید، به همکارتان معرفی کنید.
مشاهده در وب بله
۱۵ آبان
undefined چک‌لیست صبحگاهی DBA | قسمت ۱ از ۵
هر صبح، قبل از اینکه کاربرها زنگ بزنند، این ده مورد را به همین ترتیب بررسی می‌کنیم:
۱. 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 و بکاپ می‌رویم.
undefinedundefinedundefinedundefinedundefinedانجمن مستقل تخصصی اوراکلundefined @IranOracleCommunityاینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity
undefined۱

۱۵

۷:۴۶

۱۶ آبان
undefined Alert Log: کدام خطاها را جدی بگیریم؟ | چک‌لیست صبحگاهی DBA، قسمت ۲ از ۵
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;
معنی خطاهای رایج:
undefined ORA-00600 و ORA-07445: خطای داخلی. فایل‌های Trace و Incident را نگه دارید. اگر به پشتیبانی رسمی دسترسی دارید، SR بزنید.undefined ORA-01578: بلاک خراب (Corruption). فوری است.undefined ORA-01555: Snapshot too old. معمولاً Undo کوچک است یا Queryها خیلی طولانی‌اند.undefined ORA-01653 و ORA-01654: فضای Tablespace برای Table یا Index تمام شده.undefined ORA-01652: فضای Temp تمام شده.undefined ORA-00257: Archiver گیر کرده؛ یعنی FRA یا مسیر آرشیو پر است.undefined ORA-04031: کمبود حافظه در Shared Pool.undefined ORA-00060: Deadlock.undefined ORA-00020: تعداد Processها به سقف رسیده.
دو پیام دیگر هم هستند که ORA ندارند ولی مهم‌اند: «Checkpoint not complete» و «Private strand flush not complete». اگر زیاد می‌بینیدشان، Redo Logها کوچک‌اند.
undefinedundefinedundefinedundefinedundefinedانجمن مستقل تخصصی اوراکلundefined @IranOracleCommunityاینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity

۱۴

۹:۴۱

۱۷ آبان
‏undefined مانیتورینگ Tablespace‏، Temp و Undo | چک‌لیست صبحگاهی DBA‏، قسمت ۳ از ۵
‏بیشتر وقت‌ها فقط Tablespaceهای کاربر را چک می‌کنیم و Temp و Undo را فراموش می‌کنیم. هر سه را باید دید.
‏undefined Tablespace‏ ‏(‏درصد نسبت به حداکثر اندازه قابل Autoextend‏‏)‏:‏SELECT tablespace_name, ROUND(used_percent,1) AS used_pct‏FROM dba_tablespace_usage_metrics‏ORDER BY used_pct DESC;
‏undefined Temp‏:‏SELECT tablespace_name,‏ROUND((tablespace_size - free_space)/tablespace_size*100,1) AS used_pct‏FROM dba_temp_free_space;
‏undefined Undo‏ ‏(‏خطاهای ۲۴ ساعت اخیر‏)‏:‏SELECT TO_CHAR(begin_time,'DD-MON HH24‏:MI') AS t,‏undoblks, maxquerylen, ssolderrcnt, nospaceerrcnt‏FROM v$undostat‏WHERE begin_time > SYSDATE - 1‏AND (ssolderrcnt > 0 OR nospaceerrcnt > 0);
‏نکته‌ها:‏undefined اگر ssolderrcnt صفر نیست، یعنی ORA-01555 رخ داده. maxquerylen را با undo_retention مقایسه کنید.‏undefined اگر nospaceerrcnt صفر نیست، Undo جا ندارد و تراکنش‌ها در خطر هستند.‏undefined عدد بالای ۸۵٪ یعنی همین امروز برنامه‌ریزی کنیم، نه وقتی ORA-01653 آمد.‏undefined درصد Tablespaceهای Autoextend گمراه‌کننده است، چون اگر دیسک پر شود Autoextend هم جواب نمی‌دهد. فضای واقعی دیسک را هم ببینید.
‏undefinedundefinedundefinedundefinedundefined‏انجمن مستقل تخصصی اوراکل‏undefined @IranOracleCommunity‏اینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity

۱۳

۷:۲۰

۱۸ آبان
‏undefined 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_gb‎FROM v$recovery_file_dest;
‎SELECT file_type, percent_space_used, percent_space_reclaimable, number_of_files‎FROM 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‏.‏)‏
‏undefined️ چیزی که هیچ‌وقت نباید انجام دهید: حذف فایل‌ها با rm در سطح سیستم‌عامل. Control File فکر می‌کند فایل‌ها هنوز هستند و بعداً مشکل می‌سازد. اگر این کار را کرده‌اید، حتماً CROSSCHECK بزنید.
‏اگر در محیط Data Guard هستید، قبل از حذف مطمئن شوید Standby آرشیوها را دریافت و اعمال کرده.
‏undefinedundefinedundefinedundefinedundefined‏انجمن مستقل تخصصی اوراکل‏undefined @IranOracleCommunity‏اینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity

۱۰

۹:۱۴

۱۹ آبان
‏undefined بکاپ سالم یعنی چه؟ | چک‌لیست صبحگاهی DBA‏، قسمت ۵ از ۵
‏‏«‏Status = COMPLETED‏‏»‏ یعنی RMAN کارش را بدون خطا تمام کرده، نه اینکه بکاپ قابل Restore است. این دو تا یکی نیستند.
‏undefined مرحله اول، وضعیت 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_gb‎FROM v$rman_backup_job_details‎WHERE start_time > SYSDATE - 2‎ORDER BY start_time DESC;
‏به این موارد دقت کنید:‏undefined COMPLETED WITH WARNINGS را نباید نادیده گرفت.‏undefined اگر زمان اجرا یا حجم خروجی ناگهان تغییر کرده، دنبال علت بگردید.‏undefined بکاپی که اجرا نشده اصلاً در این جدول ردیف ندارد. پس نبودن ردیف هم یعنی مشکل.
‏undefined مرحله دوم، اعتبارسنجی واقعی ‏(‏بدون Restore کردن‏)‏:‎RMAN> RESTORE DATABASE VALIDATE;‎RMAN> RESTORE ARCHIVELOG ALL VALIDATE;‏این دستورها فایل‌های بکاپ را می‌خوانند و بررسی می‌کنند که برای Restore سالم‌اند. حداقل ماهی یک بار اجرایشان کنید.
‏undefined برای بلاک‌های خراب:‎SELECT * FROM v$database_block_corruption;‏اگر خروجی ندارد، یعنی بلاک خراب شناخته‌شده‌ای نیست. ‏(‏این جدول فقط بعد از بکاپ یا VALIDATE به‌روز می‌شود.‏)‏
‏و در نهایت: بکاپی که هیچ‌وقت Restore واقعی روی آن تست نشده، قابل اتکا نیست. حداقل هر چند ماه یک بار در محیط تست Restore کنید.
‏undefinedundefinedundefinedundefinedundefined‏انجمن مستقل تخصصی اوراکل‏undefined @IranOracleCommunity‏اینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity

۱۱

۸:۰۹

۲۰ آبان
thumbnail
‏undefined مرور پنج مورد اول چک‌لیست صبحگاهی مدیر پایگاه داده
‏پنج موردی که این چند روز با جزئیات و کوئری آماده منتشر کردیم، حالا در یک ویدیوی کوتاه. ذخیره کنید و برای همکارتان بفرستید.
‏این چک‌لیست ده مورد دارد و موردهای ۶ تا ۱۰ به‌زودی در همین کانال منتشر می‌شود.
‏undefined شما هر صبح اول سراغ کدام مورد می‌روید؟ در گروه تلگرام انجمن برایمان بنویسید.
‏undefinedundefinedundefinedundefinedundefined‏انجمن مستقل تخصصی اوراکل‏undefined @IranOracleCommunity‏اینستاگرام | تلگرام | بله | لینکدینt.me/IranOracleCommunityble.ir/iranoraclecommunity

۵

۹:۱۴