PDA

View Full Version : Log file



_alish_
چهارشنبه 04 خرداد 1384, 13:36 عصر
با سلام و خسته نباشید

می خواستم ببینم چه راهایی برای کاهش حجم زیاد Log File به صورت دستی و اتوماتیک وجود دارد.
وثانیا اگر حجم الاک فایل خیلی زیاد شود و به حد درایو برسد SQL به چه نحوی عمل می کند.
Shrink دقیقا چطور عمل می کند

ممنون و موفق باشید

حمیدرضاصادقیان
چهارشنبه 04 خرداد 1384, 13:48 عصر
سلام
شما میتونی روی دیتابیس راست کلیک کنی و در options گزینه auto shrink رو تیک میزنی و بعد قسمت model رو simple بگذارید.
:sunglass:
بعد برای دیدن log file میتونی برنامه زیر رو دانلود کنی.
خیلی عالیه
http://www.red-gate.com/sql/sql_log_rescue.htm

AminSobati
چهارشنبه 04 خرداد 1384, 14:36 عصر
با سلام و خسته نباشید

می خواستم ببینم چه راهایی برای کاهش حجم زیاد Log File به صورت دستی و اتوماتیک وجود دارد.
وثانیا اگر حجم الاک فایل خیلی زیاد شود و به حد درایو برسد SQL به چه نحوی عمل می کند.
Shrink دقیقا چطور عمل می کند

ممنون و موفق باشید
دوست عزیزم،
اینکه اجازه بدین حجم لوگ فایل تا این حد افزایش پیدا کنه، اصلی ترین توجیهش اینه که شما Log Backup یا FileGroup Backup میگیرین. که البته در این صورت هم شما میتونین بعد از Backup گرفتن، لوگ فایل رو خالی کنین که باز حجم فایل به این اندازه نمیرسه. به نظر میرسه بدون اطلاع از Recovery Model و قصد استفاده از مزایاش، از حالت Full استفاده میکنین.
اگر چنین Backupهایی مد نظرتون نیست، همونطور که در پست قبلی اشاره شد، از Simple استفاده کنین و توسط DBCC SHRINKFILE حجم رو کاهش بدین.
اگر چنین Backupهایی مد نظرتون هست، دستور BACKUP LOG بعد از اتمام کار، داخل لوگ فایل رو خالی میکنه(حجم کاهش نخواهد داشت) تا اطلاعات جدید در همین فضا نوشته بشن و فایل بزرگ نشه.
اگر بانک شما زیاد تحت عمل ویرایش قرار داره و به کاربران زیادی سرویس میده، استفاده از Auto Shrink رو توصیه نمیکنم. بهتره در زمانهایی که کسی با بانک کار نمیکنه(مثلا شبها) توسط Job عمل DBCC SHRINKFILE رو انجام بدین.

_alish_
پنج شنبه 12 خرداد 1384, 00:35 صبح
من از لطف شما دو دوست ممنونم
ببخشید دیر تشکر کردم

:flower:

nazaninam
یک شنبه 27 فروردین 1385, 12:45 عصر
سلام من این مشکل برام پیش اومده
و به خاطر اینکه دیتابیس من رو هاست قرار داره زیاد جای مانور ندارم
من یک stored procedure نوشتم که از دیتابیس هر وقت میخوام بک آپ میگیره
چطور میتونم یه sp بنویسم که logfile رو خالی کنه چون به هاست دسترسی ندارم... و
هر چند یک بار این پیام رو میده...

AminSobati
یک شنبه 27 فروردین 1385, 15:16 عصر
بعد از Backup گرفتن، DBCC SHRINKFILE انجام بدین

nazaninam
یک شنبه 27 فروردین 1385, 15:51 عصر
از این کد استفاده کنم؟؟


DBCC SHRINKFILE (DataFil,size)

جای datafil و size چی بگذارم ؟
اینکار Log فایل رو shrink میکنه یا دیتابیس رو؟

AminSobati
دوشنبه 28 فروردین 1385, 08:10 صبح
اول از طریق exec sp_helpdb MyDatabase نام لوگ فایل رو بدست بیارید و در این دستور قرار بدین:
dbcc shrinkfile (LogFileName, TRUNCATEONLY)
این کار فقط روی لوگ فایل تاثیر میگذاره

ضمنا اگر از امکاناتی مثل Point in time recovery استفاده نمیکنید، بهتره Recovery Model رو Simple کنین تا حجم لوگ فایل زیاد نشه