یک plan برای shrink کردن Log File در SQL Server
سلام،
من میخواستم بدون استفاده از Shrink Database که داخلش Log رو هم Shrink میکنه، مستقیما خودم یک Plan جدا فقط برای Log تعریف کنم..
(این رو هم عرض بکنم از طریق DataBase Options>>mode:simple>> Files... که دستی هستش نمیخوام انجام بدم این کارو، میخوام Schedule کنم..)
سپاس
4 پاسخ
سلام، شما برای اینکار یک Job تعریف کنید که اسکریپت زیر رو هر روز، یا هفته ای یک بار اجرا کنه:
USE ITPro; GO -- Truncate the log by changing the database recovery model to SIMPLE. ALTER DATABASE ITPro SET RECOVERY SIMPLE; GO -- Shrink the truncated log file to 1 MB. DBCC SHRINKFILE (ITPro_Log, 1); GO -- Reset the database recovery model. ALTER DATABASE ITPro SET RECOVERY FULL; GO
اسکریپت بالا فایل Log بانک ITPro رو شرینک میکنه.
از بانکتون properties بگیرید، تو قسمت Files ببینید logical name برای Log چی نوشته. همون رو استفاده کنید:
ممنون از زحمتتون،
منتها خطای زیر رو میده:
Message Executed as user: NT AUTHORITY\SYSTEM. Could not locate file 'sgdb_log' for database 'sgdb' in sys.database_files. The file either does not exist, or was dropped. [SQLSTATE 42000] (Error 8985). The step failed
درحالی که فایل وجود دارد و کلمه ITPro هم در کل اسکریپت به نام DB خودمان تغییر داده ام..
مرسی دقیقا نکته سر همون Logical Name بود که من اسم real فایل رو که توی محل فیزکی ذخیره شده بود رو تو اسکریپت مینوشتم!
بازم ممنون..