هر Tablespace باید دست کم یک Data File داشته باشد ولی آن را می توان چندین Data File ایجاد و یا اینکه سپس به آن یک یا چندین Data File ها افزوده شود. در کد زیر می بینید که Tablespace به نام tbs_04 تنها با یک Data File ایجاد می شود که از گونه Localy Extent Management است و همچنین اختصاص Extent های بیشتر به شیوه UNIFORM است.

اگر گنجایش تنها Data File آن پایان یابد، دیگر داده ها نمی توانند درون آن نگهداری شوند، پس باید بوسیله فرمان ALTER TABLESPACE یک یا چندین Data File تازه به Tablespace افزوده شود. برای افزودن Data File تازه به Tablespace باید گام های زیر دنبال شود. همچنین کاربری که فرمان های گام های زیر را انجام می دهد، باید مجوز مورد نیاز را داشته باشد.

  • ایجاد یک یا چندین Data File بوسیله فرمان CREATE DATAFILE که در نوشته های پیش رو گفته شده است.
  • افزودن و شناساندن Data File های تازه به Tablespace بوسیله فرمان ALTER TABLESPACE

اگر گمان کنیم که هم اکنون دو Data File به نام های file_2.dbf و file3_.dbf داشته باشیم، برای افزودن آنها به Tablespace باید فرمان زیر را انجام دهیم. در فرمان زیر، فهرست Data File ها پیش روی بخش ADD DATAFILE با ویرگول از هم جدا شده اند. همچنین اندازه Extent ها برای این دو Data File برابر با ۲۰ مگابایت مشخص شده است.

بدست آوردن داده های در مورد Tablespace

در بالا چگونگی افزودن یک یا چندین Data File تازه به درون Tablespace بوسیله ALTER TABLESPACE ADD DATAFILE نشان داده شد ولی چگونه می توانیم بدانیم درون Tablespace چه تعدادی Data File هست؟ کدام Data File درون یک Tablespace ویژه قرار دارند؟ در کدهای زیر به ترتیب تعداد Data File های درون Tablespace به نام tbs_04 و فهرست نام Data File های درون آن نشان داده می شود. همانطور که می بینید جدول دیتا دیکشنری به نام dba_data_file به کار گرفته شده است.

در جدول dba_data_file ستون file_name نام و مسیر هر کدام از Data File های درون پایگاه داده را نگه می دارد و ستون tablespace_name نیز نام Tablespace مربوط به هر کدام از Data File ها را نگه می دارد و برای همین است که این ستون به کار رفته، تا در پرس و جو ها(کوئری ها) بتوانیم یک Tablespace ویژه را مشخص کنیم. به یاد داشته باشید همه مقدارهای درون جدول های دیتا دیکشنری با حرف بزرگ هستند و برای همین نام Tablespace به بزرگ TBS_04 نوشته شده است. اگر می خواهید نام همه Tablespace ها را بدانید، باید پرس و جوی زیر را انجام دهید.

پاک کردن Data File از درون Tablespace

همانگونه که با فرمان ALTER TABLESPACE ADD DATAFILE  می توان یک یا چندین Data File را به Tablespace افزود با فرمان ALTER TABLESPACE DROP DATAFILE می توان یک یا چندین Data File را از Tablespace پاک کرد. توجه کنید این پاک شدن به معنی پاک شدن همیشگی Data File نیست، بلکه Data File تنها از Tablespace بیرون کشیده می شود. همچنین فهرست دو یا چندین Data File با ویرگول از هم جدا می شود. پیشنهاد می شود برای پاک کردن Data File نخست بوسیله پرس و جو روی جدول dba_data_file نام و مسیر Data File ها را پیدا کرده و سپس هر کدام را که می خواهید کپی و درون فرمان ALTER TABLESPACE DROP DATAFILE جایگذاری کنید.

پاک کردن Tablespace

با فرمان DROP TABLESPACE tablespace_name می توانید یک Tablespace را چه Online و یا چه Offline پاک کنید. پیشنهاد می شود که نخست Tablespace را آفلاین و سپس آن را پاک کنید. SYSTEM Tablespace را نمی توان پاک کنید، حتی اگر کاربر SYS باشید، زیرا دیتا دیکشنری ها درون آن نگهداری می شوند. ولی می اگر مجوز SYS داشته باشید، می توانید SYSAUX را پاک کنید.

همچنین نمی توانید Tablespace که شامل Data File یا Temp File می شود را پاک کنید. برای این، باید فرمان زیر را انجام دهید تا همراه پاک شدن Tablespace فایل های آن نیز پاک شوند. اگر درون Tablespace شی های پایگاه داده نگهداری می شوند، پس باید بخش INCLUDING CONTENTS به پایان دستور DROP TABLESPACE افزوده شود. اگر بخش AND DATAFILES ها نیز افزوده شود (مانند زیر)، پس همه فایل های فیزیکی (همان Data File و Temp File ها) نیز پاک می شوند.

پیش از پاک کردن Tablespace یا هر کدام از Data File های آن، پیشنهاد می شود یک پشتیبان ایجاد کنید.

تغییر دادن نام Tablespace

گاهی پیش می آید که شما نیاز دارید تا نام Tablespace را تغییر دهید. شاید زمانی که Tablespace ها را ایجاد می کردید، آنها رابه نادرستی نامگذاری کرده اید. برای نمونه در این نوشته نام tbs_04 را به کار برده ایم که نام هماهنگ با پروژه نیست. برای نمونه بهتر است نام employees را برگزنیم. فرمان زیر الگوی تغییر نام را نشان می دهد که واژه RENAME درون آن بهکار رفته است. نام کنونی را به جای tablespace_name و نام نو را به جای new_tablespace_name جایگذاری کنید.

جدول های دیتا دیکشنری مانند v$tablespace و dba_file_data و همچنین Control File ها و سرآیندهای دیتا فایل ها با نام تازه بروز خواهند شد. تغییر نام Tablespace ، نام Data File ها را دگرگون نمی کند (تغییر نمی دهد). در نوشته های پیش رو  Data File ها آموزش داده شده اند.

Tablespace اوراکل – تغییر دادن دسترس پذیری