نحوه کاهش حجم Log فایل در Sql Server چگونه است ؟
یه دیتابیس توی Sql Server 2014 دارم که حجم خود دیتابیس زیاد نیست. اما حجم Log فایل خیلی زیاد شده و فضای زیادی گرفته. چجوری میشه حجم فایل Log رو کاهش داد ؟
پاسخ هوش مصنوعی
برای کاهش حجم Log فایل در SQL Server می توانید مراحل زیر را دنبال کنید:
-- 1. بررسی وضعیت Recovery Model دیتابیس
SELECT name, recovery_model_desc
FROM sys.databases
WHERE name = 'نام_دیتابیس_شما';
-- 2. اگر Recovery Model روی FULL یا BULK_LOGGED است، باید آن را به SIMPLE تغییر دهید
ALTER DATABASE نام_دیتابیس_شما SET RECOVERY SIMPLE;
-- 3. سپس Log فایل را تراکم کنید
DBCC SHRINKFILE (نام فایل Log, 1); -- 1 به معنای حداقل حجم اسمی است.
-- 4. اگر بخواهید می توانید دوباره Recovery Model را به FULL تغییر دهید (تنها در صورتی که نیاز باشد)
ALTER DATABASE نام_دیتابیس_شما SET RECOVERY FULL;
توجه داشته باشید که تغییر Recovery Model و کاهش اندازه Log فایل ممکن است خطر از دست دادن داده های مهم را به همراه داشته باشد، بنابراین قبل از این کار از داده های خود پشتیبان تهیه کنید.
عملیات shrink در Sql
ابتدا بر روی نام دیتابیس کلیک نموده و سپس از منو بالای صفحه گزینه new query را انتخاب نمائید.
دستورات زیر را در آن کپی و اجرا نمائید. بجای DATABASENAME نام دیتابیس مربوطه را جایگزین کنید.
Shrink کردن فایل LOG به یک حجم خاص :
Use DATABASENAME
Alter Database DATABASENAME Set Recovery Simple
DBCC SHRINKFILE ('YOUR_LOG_NAME_log', 1)
Alter Database DATABASENAME Set Recovery Full
دستورShrink یک دیتابیس به یک درصد خاص از فضای آزاد:
DBCC SHRINKDATABASE (DatabaseName, 10);
هر دیتابیسی بعد از مدتی استفاده مداوم حجم Log فایلهای اون زیاد میشه. در واقع هر عملیاتی که در دیتابیس شما انجام میشه یک Log فایل کوچک ایجاد میکند که بعد از مدتی این لاگ فایل های زیاد میشه و حجم زیادی رو هم میگیره. برای این کار می تونید از دستور زیر استفاده کنید.
ALTER DATABASE [DataBase_Name]
SET RECOVERY SIMPLE
GO
DBCC SHRINKFILE (DataBase_log, 1)
GO
ALTER DATABASE [DataBase_Name]
SET RECOVERY FULL
در دستورات بالا ابتدا Recovery Model مربوط به دیتابیس به حالت Simple تبدیل می شود. با این کار می توان در ساختار دیتابیس تغییراتی ایجاد کرد. سپس دیتابیس فایل های لاگ (DataBase_log) توسط دستور Shrink کوچک می شود. و در انتها هم Recovery Model به حالت Full تبدیل می شود.
نکته : DataBase_log همان نام لاگ فایل شما می باشد که اگر نمی دانید چیست می توانید روی نام دیتابیس کلیک راست کرده و گزینه Properties رو بزنید و از منوی سمت راست گزینه Files را انتخاب کنید.
علاوه بر موردی که دوستان گفتند، یعنی حذف شیرینک لاگ، باید این تنظیم رو هم انجام بدید.
روی دیتابیس خود راست کلیک کنید و گزینه آخر یعنی Properties کلیک نمیایید سپس در پنجره باز شده در تب Option در لیست تنظیمات گزینه Auto Shirink رو بر روی False قرار دهید
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )