در نوشته Tablespace اوراکل – تغییر با ALTER TABLESPACE گفتیم که می توانیم بوسیله دستور ALTER TABLESPACE، یک Tablespace را تغییر دهیم. می توانیم فایلی را فزوده یا پاک کنیم و یا می توانیم یک Tablespace را پاک کنیم. یکی دیگر از این تغییرها، Offline یا Online کردن Tablespace است. زمانی که Tablespace در حالت Offline باشد، پس نمی توان روی Data File های نوشت و یا از آنها خواند. به بیان دیگر اگر Tablespace در حالت Offline باشد، پس نمی توان به اشیا پایگاه داده درون آن، مانند جدول ها، نماها و اندیس ها دسترسی داشت. فهرستی زیر برخی از نیازهای Offline شدن را نشان می دهد.

  • می خواهیم تنها بخشی از پایگاه داده برای زمانی در دسترس نباشد، پس تنها همان Tablespace دلخواه را آفلاین می کنیم.
  • برای انجام پیشتبان گیری، زمانی که Tablespace آفلاین است. همچنین می توانیم در آنلاین بودن نیز می توانیم پشتیبان ایجاد کنیم.
  • زمانی که بخواهیم Data File ها را نامگذاری دوباره (Renaming) یا بارگذاری دوباره (Reloading) کنیم، باید Tablespace آفلاین باشد.

دستور زیر را می توانید برای آفلاین یا آنلاین کردن Tablespace به کار ببرید. همچنین شما نمی توانید SYSTEM Tablespace و Tablespace های Undo و گذرا (Temporary) را آفلاین کنید. SYSTEM Tablespace شامل همه دیتا دیکشنری است پس حتی کاربر SYS نیز نمی تواند آن را آفلاین کند.

پارامترهای همراه آفلاین کردن

۱ – یک Tablespace می تواند به حالت NORMAL آفلاین شود، اگر خطایی برای هیچ یک از Data File های آن رخ ندهد. زمانی که این پارامتر را به شیوه ALTER TABLESPACE … OFFLINE NORMAL به کار می برید، اوراکل یک مهر زمانی (Checkpoint) ایجاد کرده و سپس Tablespace را آفلاین می کند.

۲ – یک Tablespace می تواند به حالت TEMPORARY آفلاین شود، اگر خطایی برای یک یا چندین از Data File های آن رخ دهد. زمانی که این پارامتر را به شیوه ALTER TABLESPACE … OFFLINE TEMORARY به کار می برید، اوراکل نخست تمامی Data file هایی که هم اکنون افلاین نیستند را آفلاین می کند و سپس یک مهر زمانی ایجاد کرده و سپس Tablespace را آفلاین می کند.

۳ – یک Tablespace می تواند به حالت IMMEDIATE آفلاین شود و در این شیوه اوراکل هیچ مهر زمانی از Data File ها ایجاد نمی کند. در این گونه، پیش از آنکه بخواهیم پایگاه داده را آنلاین کنیم، باید یک Media Recovery انجام شود. همچنین اگر پایگاه داده در حالت NOARCHIVEMODE باشد، چون اثر تراکنش ها آرشیو نمی شوند و از همین رو تغییرات روی داده ها بی بازگشت خواهند ماند، پس نمی توان در حالت NOARCHIVEMODE یک Tablespace را آفلاین کرد.

Archive Log های اوراکل – فعال کردن حالت ARCHIVELOG

در برابر آفلاین کردن، دستور زیر را برای بازگرداندن Tablespace به آنلاین بودن به کار ببریم. زمانی که Tablespace آنلاین باشد، می توان به شی های درون آن دسترسی داشت. زمانی که یک Tablespace آفلاین می شود، دیگر Tablespace های پایگاه داده پاسخ گوی درخواست ها هستند ولی می توانیم همه پایگاه داده را Shutdown کنیم، پس همه Tablespace ها آفلاین و بیرون از دسترس خواهند بود.

Tablespace های تنها خواندنی

زمانی که Tablespace آفلاین است، نه می شود از آن خواند و نه می شود بر روی آن نوشت. زمانی که Tablespace آنلاین است، می توانیم آن را تنها خواندنی کنیم که دیگر از نوشتن (INSERT , DELETE , UPDATE) پیش گیری می شود و تنها می توان از روی فایل های Tablespace بخوانیم. کاربرد تنها خواندنی بودن برای انجام دادن فرایند پشتیبان گیری و بازیابی تنها از یک بخش پایگاه داده است.

در Tablespace های تنها خواندنی پرس و جو های کاربران تنها می توانند بخوانند و نمی توانند روی Data File های Tablespace بنویسند یا شی تازه ای (مانند جدول) را درون Tablespace بنویسند. از سوی دیگر می توان شی را از درون Tablespace پاک (Drop) کرد. هر Tablespace پس از ایجاد، پیش فرض خواندنی/نوشتنی است و برای بردن آن به تنها خواندنی باید دستور زیر را به کار برد.