یه مشکلی که امروز برای یکی از دیتابیسهام پیش اومد این بود که درایو 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 بگیرید
منابع:
1, 2, 3, 4, 5 ,6