فایلها و گروههای فایل filegroups
فايلهاي ايجاد شده براي بانك اطلاعاتي (Datafile و Logfile)
هر بانك اطلاعاتي در SQL Server 2005 حداقل از دو فايل ايجاد شده است : فايل داده (Data) و فايل log. فايل داده شامل داده ها و اشيايي مانند جداول ، stored procedures,Indexes و views ها است. Log شامل اطلاعاتي است كه براي بازيابي تمام عمليات صورت گرفته روي بانك مورد نياز است . فايل داده را مي توان براي اهداف مديريتي و تعيين فضاي ذخيره اطلاعات در چند filegroup گروه بندي كرد.
Database Files
بانك هاي اطلاعاتي SQL Server 2005 داراي سه نوع فايل است كه در جدول زير آمده است :
|
فايل |
شرح |
|
Primary |
اين فايل شامل اطلاعات Startup بانك اطلاعاتي و بقيه فايلهاي بانك اطلاعاتي مي باشد. اطلاعات اصلي و اشياء بانك اطلاعاتي مي تواند در اين فايل و فايل Secondary ذخيره گردد.هر بانك اطلاعاتي يك فايل Primary دارد. پسوند پيش فرض نام فايل براي اين فايلها mdf است |
|
Secondary |
اين
فايلهاي داده اختياري هستند.با قرار دادن اين فايلها روي درايوهاي مختلف
مي توان فايلهاي يك بانك را روي چندين ديسك پخش كرد. در ضمن اگر حجم بانك
اطلاعاتي ما از ماكزيمم حجمي كه يك فايل در ويندوز مي تواند داشته باشد
بزرگتر شود مي توان از اين فايلها استفاده كرد. پسوند پيش فرض نام فايل
براي اين فايلها ndf است . |
|
Transaction Log |
اين فايلها شامل اطلاعات Log است كه براي بازيابي بانك اطلاعاتي مورد استفاده قرار مي گيرد.هر بانك اطلاعاتي حداقل يك فايل Log دارد. پسوند پيش فرض نام فايل براي اين فايلها ldf است . |
براي مثال يك بانك ساده با نام Sales مي توانيم ايجاد كنيم كه شامل يك فايل Primary باشد كه همه اشياء و اطلاعات بانك اطلاعاتي در آن ذخيره شوند.و داراي يك فايل Log باشد كه شامل عمليات انجام شده روي بانك اطلاعاتي باشد.
به همين ترتيب يك بانك اطلاعاتي با نام Orders مي توانيم داشته باشيم كه شامل يك فايل Primary و پنج فايل Secondary باشد. و داراي چهار فايل Log باشد. در اين حالت داده ها و اشياء بانك اطلاعاتي بين شش فايل پخش مي گردد و تمام عمليات انجام شده در بانك در چهار فايل Log ذخيره مي شود.
به طور پيش فرض فايلهاي داده و Log در يك درايو و يك مسير قرار داده مي شوند. دليل اين كار اين است كه SQL Server را بتوان روي سيستمهاي با يك درايو اجرا كرد. اگر چه اين كار بهينه نيست . ما (مايكروسافت) توصيه مي كنيم كه فايلهاي داده و Log را روي ديسك هاي جداگانه قرار دهيد.
Filegroup ها
هر بانك اطلاعاتي داراي يك filegroup اوليه مي باشد.اين filegroup شامل فايل داده primary و هر فايل secondary ي مي باشد كه در filegroup ديگري قرار نگرفته باشد. Filegroup هاي ديگري را مي توانيم ايجاد كنيم تا توسط آنها فايلها را دسته بندي كنيم. اين دسته بندي اعمال مديريت فايلها را آسانتر مي كند.
براي مثال سه فايل Data1.ndf, Data2.ndf و Data3.ndf را مي توانيم روي سه درايو مختلف ايجاد كنيم و آنها را در يك filegroup به نام fgroup1 قرار دهيم. آنگاه يك جدول خاص را مي توانيم در fgroup1
ايجاد كنيم. خواندن و نوشتن اطلاعات در اين جدول روي سه درايو پخش مي شود
كه اين كار سرعت را افزايش مي دهد. همين افزايش سرعت را مي توانيم با
استفاده از يك فايل و تكنولوژي RAID بدست آوريم. اگر چه فايلها و filegroup ها به شما اجازه مي دهند كه فايلهاي جديد را به راحتي به ديسك جديد اضافه كنيد.
تمام فايلهاي بانك اطلاعاتي در filegroup هاي جدول زير ذخيره مي شوند.
|
Filegroup |
توضيحات |
|
Primary |
اين filegroup شامل فايل داده Primary مي باشد. تمام جداول سيستمي در اين filegroup قرار مي گيرند. |
|
User-Defined |
هر filegroup ي كه توسط كاربر ايجاد مي گردد. چه در هنگام ايجاد بانك اطلاعاتي و چه بعدا هنگام ويرايش بانك اطلاعاتي. |
Filegroup پيش فرض
تمام اشيائي كه در بانك اطلاعاتي مي سازم اگر به طور خاص filegroup آنها را مشخص نكنيم آنها در filegroup پيش فرض ايجاد مي شوند. در هر لحظه فقط يك filegroup را مي توانيم به عنوان filegroup
پيش فرض معرفي كنيم . فايلهاي درون filegroup پيش فرض بايد به اندازه كافي بزرگ باشند تا تمام اشياء جديدي كه ايجاد مي شوند را در خود جاي دهند. نام filegroup پيش فرض PRIMARY filegroup است.
Filegroup پيش فرض مي تواند توسط دستور ALTER DATABASE اصلاح گردد. اشياء و جداول سيستمي بر روي PRIMARY filegroup باقي خواهند ماند حتي اگر شما filegroup ديگري را به عنوان filegroup پيش فرض معرفي كنيد.