۳ مطلب با کلمه‌ی کلیدی «tablespace» ثبت شده است

نحوه حذف UNDO Tablespace

خب همونطور که می‌دونید حذف کردن tablespace undo به این سادگی‌ها نیست. یه بار که میخواستم به دلایلی اینکارو انجام بدم فهمیدم که اصلاً حذف tablespace undo راحت نیست و همش با خطای زیر مواجه میشدم:

SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ ---------------------------------------------------------------------
USERS                          D:\ORACLE\ORADATA\NOIDA\USERS01.DBF
UNDOTBS1                       D:\ORACLE\ORADATA\NOIDA\UNDOTBS01.DBF
SYSAUX                         D:\ORACLE\ORADATA\NOIDA\SYSAUX01.DBF
SYSTEM                         D:\ORACLE\ORADATA\NOIDA\SYSTEM01.DBF
EXAMPLE                        D:\ORACLE\ORADATA\NOIDA\EXAMPLE01.DBF

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

نگاهی بر معماری Oracle Database 11g - قسمت سوم

نگاهی بر معماری Oracle Database 11g - قسمت اول

نگاهی بر معماری Oracle Database 11g - قسمت دوم

LGWR

کار background process log writer اینه که تمام redo entryها رو که توی log buffer نوشته میشه رو توی redo log file بنویسه

LGWR تعداد نداره یعنی همیشه یکی است و اگه این background process پایین بیاد دیتابیس کلاً shutdown میشه

زمانهای نوشتن:

  • اگر کاربر دستور commit رو بزنه
  • وقتی که 1/3 redo log buffer پر بشه
  • قبل از شروع نوشتن بافر در دیسک توسط DBW
  • هر ۳ ثانیه یکبار

سرعت نوشتن LGWR بسایر بیشتر از DBW ه چون فقط به انتهای یک فایل باینری redo entryها رو میبره

LGWR به صورت چرخشی بین redo log file ها عمل میکنه که بهش log witch میگیم

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

recovery after losing UNDO tablespace

یه مشکلی که امروز برای یکی از دیتابیس‌هام پیش اومد این بود که درایو 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

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