یه مشکلی که امروز برای یکی از دیتابیس‌هام پیش اومد این بود که درایو undo tablespaceام یکهو unmount شد و دیتابیس shutdown abort‌شد.

(دیتابیس مورد بحث SI با FS)

Details

The instance has been terminated by a database process because of a fatal internal condition, or a critical background process was killed by the user.
Logwriter is unable to write to any member of the log group because of an IO error.
Archiver is unable to archive a redo log because the output device is full or unavailable.

Agent Connection to Instance
Status
Failed Details ORA-12505: TNS:listener does not currently know of SID given in connect descriptor (DBD ERROR: OCIServerAttach)

اولین کاری که باید بکنید بالا آوردن دیتابیس تو حالت mountه

بعد با دستور زیر undo_management اتون رو روی حالت manual بذارید

alter system set undo_management = manual scope=spfile;

چون undo tablespaceامون صدمه دیده و اوراکل نمیتونه به دیتافایلهاش دسترسی داشته باشه باید یک undo tablespace دیگه ایجاد کنیم و default رو روی این tablespace بذاریم

create undo tablespace undotbs2 datafile '/oradata/undotbs110.dbf' size 10g autoextend on next 50m;

بعد از ساخت undo tablespace باید دیتابیس رو shutdown کنید اگر با حالت immediate‌ موفق به shutdown نشد abort کنید

نکته: اگه نیاز بود datafileهای مشکل‌دار undo‌ رو offline کنید

alter database datafile 20 online;

حالا یک pfile از روی spfileاتون بسازید و مقدار undo_tablespace رو به tablespace‌ جدید مقدار بدید

دیتابیس رو startup کنید و undo_managment رو روی mode auto بذارید

alter system set undo_management = auto scope=spfile;

حالا یک spfile از روی pfileاتون بسازید و دیتابیس رو خاموش و روشن کنید

همچنین دیتایکشنری‌های زیر برای مانیتور کردن وضعیت مشکلات خیلی کمک میکنه:

select file#,status from v$datafile;

select tablespace_name, sum((bytes/1024)/1024) free from dba_free_space group by tablespace_name;

select tablespace_name,status from dba_tablespaces;

select tablespace_name from dba_tablespaces;

نکته: اگه datafileهای undo قدیمیتون احتیاج به recover داشت حق دارید recoverاشون کنید ولی در مورد باقی datafileها به هیچ عنوان حق recover ندارید(چون با ctlfileهاتون تداخل ایجاد میشه - recover کردن undo هم به این دلیل مشکلی نداره چون دیتای undo رو نیازی نداریم)

نکته۲: قبل از ساختن spfile حتما با pfile نتیجه رو امتحان منید و بعد اگه خواستید spfileاش کنید حتما از قبلی یه backup بگیرید

منابع:

12345 ,6