نحوه افزایش حجم Data File و Log File در SQL Server
هر پایگاهداده در SQL Server حداقل از دو نوع فایل تشکیل شده: یک Data File (پسوند .mdf) که خودِ دادهها و ساختارها را نگه میدارد، و یک Log File (پسوند .ldf) که تراکنشها را برای بازیابی و یکپارچگی ثبت میکند. اگر فضای این فایلها تمام شود، عملیات نوشتن با خطا متوقف میشود — گاهی حتی پایگاهداده به حالت Recovery Pending میرود.
روش ۱ — افزایش حجم از طریق SSMS (تصویری)
در Object Explorer روی پایگاهدادهی موردنظر راستکلیک کن → Properties → Files:
روی مقدار Size (MB) فایل موردنظر کلیک کن، عدد جدید و بزرگتر را وارد کن، و OK را بزن. برای تغییر رفتار رشد خودکار، روی دکمهی کنار Autogrowth کلیک کن.
روش ۲ — افزایش حجم با T-SQL
-- افزایش دستی حجم فایل Data به 4 گیگابایت ALTER DATABASE ShopDB MODIFY FILE (NAME = ShopDB, SIZE = 4096MB); -- افزایش دستی حجم فایل Log به 1 گیگابایت ALTER DATABASE ShopDB MODIFY FILE (NAME = ShopDB_log, SIZE = 1024MB);
نام دقیق فایلهای منطقی (Logical Name) را میتوانی با کوئری SELECT name, size FROM sys.master_files WHERE database_id = DB_ID('ShopDB'); پیدا کنی.
تنظیم درست Auto Growth
بهطور پیشفرض، Auto Growth روی درصد (مثلاً ۱۰٪) تنظیم میشود که در فایلهای بزرگ باعث رشدهای ناگهانی و کند میشود. توصیهی رایج این است که رشد را روی یک مقدار ثابت مگابایتی (مثلاً ۲۵۶ یا ۵۱۲ مگابایت) تنظیم کنی، نه درصد:
ALTER DATABASE ShopDB MODIFY FILE (NAME = ShopDB, FILEGROWTH = 256MB); ALTER DATABASE ShopDB MODIFY FILE (NAME = ShopDB_log, FILEGROWTH = 256MB);
روش ۳ — افزودن یک فایل جدید (وقتی دیسک فعلی جا ندارد)
اگر دیسک فعلی پر شده و نمیتوانی فایل موجود را بزرگتر کنی، میتوانی یک فایل Data جدید در یک درایو دیگر اضافه کنی:
ALTER DATABASE ShopDB ADD FILE ( NAME = ShopDB_data2, FILENAME = N'D:\SQLData\ShopDB_data2.ndf', SIZE = 2048MB, FILEGROWTH = 256MB ) TO FILEGROUP [PRIMARY];
چکلیست سریع
| وضعیت | راهحل پیشنهادی |
|---|---|
| دیسک فعلی هنوز فضای خالی دارد | افزایش دستی Size یا افزایش FILEGROWTH |
| دیسک فعلی پر شده | افزودن فایل جدید در درایو دیگر با ADD FILE |
| فایل مدام با Auto Growth رشد میکند | حجم اولیه را بزرگتر تعریف کن، رشد را ثابت (نه درصدی) کن |
جمعبندی
افزایش حجم فایلهای Data و Log کار سادهای است، چه از SSMS و چه با T-SQL. نکتهی مهمتر، تنظیم درست Auto Growth و برنامهریزی فضا از ابتدا است تا از رشدهای ناگهانی و مکرر که عملکرد را کند میکنند جلوگیری شود. اگر فایل Log بیش از حد انتظار رشد میکند، حتماً راهنمای چرا حجم Transaction Log زیاد میشود و چگونه آن را مدیریت کنیم؟ را هم بخوان.
سوالات متداول دربارهی این موضوع
Auto Growth را بر حسب درصد تنظیم کنم یا مگابایت؟
مقدار ثابت بر حسب مگابایت توصیه میشود؛ رشد درصدی با بزرگشدن فایل، افزایشهای ناگهانی و بزرگ ایجاد میکند.
رشد خودکار فایل چرا ممکن است کندی ایجاد کند؟
هر بار رشد، پایگاهداده برای مدتی منتظر اختصاص فضا میماند. بهتر است حجم اولیه را متناسب با نیاز تنظیم کنی تا رشدها کم و درشت باشند.
اگر دیسک پر شده باشد چه کنم؟
یک فایل Data یا Log جدید روی دیسک دیگر اضافه کن، یا فضا آزاد کن و سپس حجم فایل را افزایش بده.
میخوای مفاهیم پایگاهداده را کامل یاد بگیری؟
دورهی رایگان SQLFarsi را همین حالا شروع کن.
شروع یادگیری