منبع اصلی نوشتار زیر در این لینک قرار دارد

بدست آوردن اطلاعات از datafile ها

داده ها در پایگاه داده اوراکل در فایل های فیزیکی به نام datafile ذخیره می شوند. datafile ها از بلاک های رسانه ذخیره سازی (دیسک) تشکیل شده اند و هر کدام به یک Tablespace اختصاص داده شده اند. در زمان ایجاد یک Tablespace می تواند چندین datafile داشته باشد که دارای یک اندازه آغازین (Initial Size) است. به مرور حجم و اندازه datafile ها رشد می کند، تا اندازه اولیه آن پایان یابد. در زمان ایجاد datafile می توانیم، طوری آنرا تنظیم و ایجاد کنیم، تا پس از اتمام اندازه اولیه، به میزان مشخصی بصورت خودکار افزایش حجم پیدا کند (فضا از دیسک بگیرد) و بهتر است که میزن حداکثر اندازه آنرا نیز مشخص کنیم. در شکل زیر مشخص شده است که یک datafile به اندازه اولیه 32MB و حداکثر میزان اندازه 2GB ایجاد شده است و هنگامی که میزان حجم اولیه اتمام می یابد، هر بار به میزان 32MB رشد می کند تا زمانی که به اندازه حداکثر برسد.

در شکل بالا autoextend on، یعنی اینکه افزایش حجم datafile پس از اتمام حجم اولیه اش به اندازه مقدار next 32m تا حداکثر اندازه maxsize 2048m، بصورت خودکار انجام شود. برای بدست آوردن اطلاعاتی از datafile ها از یک View به نام dba_data_files استفاد می کنیم.

desc dba_data_files

  • FILE_NAME : نام فایل.
  • FILE_ID : شناسه فایل.
  • TABLESPACE_NAME : نام TBS که datafile به آن اختصاص داده شده است. توجه کنید که هر datafile تنها می تواند متعلق به یک Tablespace باشد ولی هر Tablespace می تواند چندین datafile داشته باشد.
  • BYTES : اندازه فایل بر حسب بایت.
  • BLOCK : اندازه فایل بر حسب بلاک های اوراکل.
  • STATUS : وضعیت فایل که می تواند AVAILABLE یا INVALID باشد. وضعیت INVALID یعنی اینکه datafile مربوطه (datafile number)، مورد استفاده نیست. بطور مثال یک فایل در یک Tablespace پاک (drop) شده است.
  • AUTOEXTENSIBLE : مشخص می کند که آیا افزایش حجم datafile بصورت خودکار است (YES) یا نه (NO)
  • MAXBYTES : حداکثر اندازه بر حسب بایت که یک فایل که می تواند داشته باشد.
  • MAXBLOCKS : حداکثر اندازه بر حسب بلاک های اوراکل که یک فایل که می تواند داشته باشد.
  • USER_BYTES : میزان فضای قابل استفاده برای داده های کاربران از فایل بر حسب بایت. فضای واقعی فایل منهای مقدار USER_BYTES، برای ذخیره metadata ها استفاده شده است.

USER_BYTES= Actual size of the datafile – Size used to store file related metadata

  • USER_BLOCKS : میزان فضای قابل استفاده برای داده های کاربران از فایل بر حسب بلاک.

برای اطلاعات بیشتر این لینک را بخوانید.

Sample Query

;’select bytes/1024/1024, maxbytes/1024/1024, user_bytes/1024/1024 from dba_data_files where tablespace_name=’USERS

;’select file_name, status, autoextensible from dba_data_files where tablespace_name=’USERS

در اولین کوئری بالا خروجی مشابه زیر را خواهید دید، که مقدار BYTES بیشتر از USER_BYTES می باشد.



برچسب ها : , ,