تخفیف های داغ در جشنواره تابستانه توسینسو تخفیف های داغ در جشنواره تابستانه توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
0

کم حجم کردن log file

با سلام خدمت دوستان عزیز

میخواستم بدونم چجوری میشه حجم log file ها در sql 2008 r2 کم کرد ؟ میخوام برای این کار یک job داشته باشم تا بتونه توی یک زمان مشخص log file ها رو کم حجم کنه.

کد زیر رو هم بدست اوردم ولی نمیدونم چجوری ازش خروجی بگیرم یا چجوری توی یک job بزارم؟

با سپاس فراوان

Declare @database nvarchar(1000)

Declare @tsql nvarchar(4000)

Declare DatabaseCursor Cursor

Local

Static

For

select name from master.dbo.sysdatabases

open DatabaseCursor

fetch next from DatabaseCursor into @database

while @@fetch_status = 0

begin

print 'database:' + @database

if @database not in ('tempdb','master','model','msdb')

begin

SET @tsql = use master

DECLARE @dbLogName nvarchar(500)

Use @database

select @dbLogName = rtrim(ltrim(name)) from sysfiles WHERE FILEID=2;

ALTER DATABASE ['+@database+'] SET RECOVERY SIMPLE

ALTER DATABASE ['+@database+'] SET SINGLE_USER

DBCC SHRINKFILE(@dbLogName , 2)

ALTER DATABASE ['+@database+'] SET MULTI_USER

ALTER DATABASE ['+@database+'] SET RECOVERY FULL

exec(@tsql)

end

fetch next from DatabaseCursor into @database

end

close DatabaseCursor

deallocate DatabaseCursor

پرسیده شده در 1395/03/12 توسط

2 پاسخ

3

برای کم کردن حجم Log می تونید از اسکریپت زیر استفاده کنید. برای اجرای منظم هم کافیه یک Job در Agent تعریف کنید تا این اسپکریپت رو در زمان مشخص اجرا کنه:

USE Database;
GO
-- Truncate the log by changing the database recovery model to SIMPLE.
ALTER DATABASE Database
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Database_Log, 1);
GO
-- Reset the database recovery model.
ALTER DATABASE Database
SET RECOVERY FULL;
GO

به جای Database نام بانک مورد نظرتون رو بنویسید. تو قسمت DBCC SHRINKFILE، به جای عدد 1 هم می تونید سایز مورد نظرتون برای فایل Log رو مشخص کنید که در اینجا 1 مگابایت هست.

پاسخ در 1395/03/12 توسط
0

با سپاس فراوان از شما

پاسخ در 1395/03/12 توسط

پاسخ شما