هر پایگاهداده در SQL Server حداقل از دو نوع فایل تشکیل شده: یک Data File (پسوند .mdf) که خودِ دادهها و ساختارها را نگه میدارد، و یک Log File (پسوند .ldf) که تراکنشها را برای بازیابی و یکپارچگی ثبت میکند. اگر فضای این فایلها تمام شود، عملیات نوشتن با خطا متوقف میشود — گاهی حتی پایگاهداده به حالت Recovery Pending میرود.
در Object Explorer روی پایگاهدادهی موردنظر راستکلیک کن → Properties → Files:
روی مقدار Size (MB) فایل موردنظر کلیک کن، عدد جدید و بزرگتر را وارد کن، و OK را بزن. برای تغییر رفتار رشد خودکار، روی دکمهی کنار Autogrowth کلیک کن.
-- افزایش دستی حجم فایل 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 روی درصد (مثلاً ۱۰٪) تنظیم میشود که در فایلهای بزرگ باعث رشدهای ناگهانی و کند میشود. توصیهی رایج این است که رشد را روی یک مقدار ثابت مگابایتی (مثلاً ۲۵۶ یا ۵۱۲ مگابایت) تنظیم کنی، نه درصد:
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 زیاد میشود و چگونه آن را مدیریت کنیم؟ را هم بخوان.
دورهی رایگان SQLFarsi را همین حالا شروع کن.
شروع یادگیری