چگونه تراکنشهای SQL Transaction انجام می شود

سیاهههای مربوط به تراکنش در SQL Server 2012 تمایل دارند در طول زمان رشد کنند، که گاهی اوقات میتواند تمام فضای دیسک موجود خود را پر کند. برای اجتناب از این، SQL Server دارای عملیات ثبت تراکنش مختلط (آزاد کردن فضای ورودی منطقی برای استفاده مجدد از log transaction).

توجه داشته باشید . فایل های ثبت معامله برای بازگرداندن پایگاه داده به حالت قبلی لازم است. به طور معمول، مجله شماره توالی، نوع تغییر، عملیات انجام شده و غیره را ذخیره می کند. احتمالا شما می توانید بدون ثبت معامله انجام دهید، اما در این صورت احتمال خرابی پایگاه داده در آینده وجود دارد.

چگونه تراکنشهای SQL Transaction انجام می شود

 

فایل های ورود به سیستم به طور خودکار بر اساس مدل بازیابی برداشته می شوند:

  • مدل بازیابی ساده – فایلهای ورودی پس از رسیدن به نقطه بازرسی قطع می شوند (ساده ترین گزینه که نیاز به مدیریت پایگاه داده دارد)؛
  • مدل بازیابی کامل – بعد از یک نسخه پشتیبان، اگر یک نقطه بازرسی از زمان پشتیبان قبلی رخ داده است. این حالت بهترین امکان بازیابی داده ها را پس از شکست فراهم می کند. در حالت کامل، مجله معامله (LDF) می تواند رشد کند (زیرا تغییرات پایگاه داده در این ورودی انباشته می شوند)

اما موقعیتی وجود دارد که SQL به طور خودکار کار SQL مختلط را به دلایلی کار نمی کند و سیاههها اشغال تمام فضای دیسک در دسترس است. این همیشه به طور ناگهانی اتفاق می افتد در شرایطی که فورا به فضای آزاد نیاز دارید. در این مورد، شما می توانید فایل های log * .ldf از اندازه بسیار بزرگ بر روی دیسک پیدا کنید.

SQL Server 2012 چگونه می توان از logs transaction استفاده کرد؟

در این مورد، این خطا هنگام اتصال به پایگاه داده MS SQL ظاهر می شود:

مایکروسافت OLE ارائه دهنده برای SQL سرور: ورود معامله برای پایگاه داده “YourDBName” کامل است. برای پیدا کردن اینکه چرا فضای در ورود به سیستم قابل استفاده مجدد نیست، ستون log_reuse_wait_desc را ببینید sys.database 
HRESULT = 80040E14، SQLSTATE = 4 2000، native = 9002

این به این معنی است که درایوی که در آن ذخیره سازی معامله SQL در خارج از فضای ذخیره شده است و SQL نمی تواند داده های معامله را بنویسد. در این حالت، شما می توانید فایل های log log را به صورت دستی (با استفاده از پرس و جو SQL یا GUI مدیریت Studio) تکه تکه کنید.

نکته . شما به طور مرتب بایگانی تراکنش های پشتیبان گیری را در سرور SQL تولید کننده به طور مرتب برای پشتیبان گیری از پرونده ورود به سیستم و عملیات رشد اتوماتیک بایگانی کنید.

این وضعیت معمولا هنگام استفاده از یک مدل بازیابی کامل رخ می دهد. در این مدل، فایل های log را نمی توان کاهش داد تا زمانی که تمام معاملات در نسخه پشتیبان وجود نداشته باشند. لازم است اطمینان حاصل شود که شما از یک شماره پیوندی مستمر ورودی (LSN) در پرونده های ورودی استفاده می کنید. به این ترتیب، برای کوتاه کردن شما نیاز به ایجاد یک نسخه پشتیبان کامل از DB، و یا (ساده تر و سریع تر) به طور موقت آن را به حالت بهبود ساده تغییر دهید . ممکن است مدل بازیابی MS SQL Server را در پرواز تغییر دهید، اما برای کاهش خطرات، مطلوب است که پایگاه داده را به حالت خواندن تغییر دهید و نسخه پشتیبان از ثبت معامله را انجام دهید (اگر ممکن است).

برای کوتاه کردن SQL log transaction ها راه اندازی SQL Server Management Studio (SSMS)، پایگاه داده دلخواه را انتخاب کنید (با ثبت بزرگ معاملات)، روی آن راست کلیک کرده و Properties را از منوی زمینه انتخاب کنید. به گزینه هابروید و مدل بازیابی پایگاه داده را به Simple تغییر دهید .

چگونه تراکنشهای SQL Transaction انجام می شود

چگونه تراکنشهای SQL Transaction انجام می شود

سپس، در همان منوی زمینه، به قسمت Tasks -> Shrink -> Files بروید . در نوع پرونده ، ورود را انتخاب کنید، در فیلد نام فایل، نام پرونده ورود را مشخص کنید. در عمل کوچک سازی، قبل از انتشار فضای استفاده نشده ، مجدد صفحات را انتخابکنید، اندازه دلخواه فایل را تعیین کرده و OK را کلیک کنید .

چگونه تراکنشهای SQL Transaction انجام می شود

چگونه تراکنشهای SQL Transaction انجام می شود

پس از اتمام عمل، پایگاه داده تغییر بازگرداندن حالت به کامل .

همین کار را می توان از Query Analyzer با یک اسکریپت ساده انجام داد (اسکریپت با شروع از SQL Server 2008):

استفاده از "YourDBName"
 ALTER DATABASE "YourDBName" SET RECOVERY SIMPLE
 DBCC SHRINKFILE ("YourDBName"، "Desired_size")؛
 ALTER DATABASE "YourDBName" SET RECOVERY FULL

نکته . بعد از اینکه ورود به تراکنش را قطع کنید و آن را کوچک کنید، بایستی یک پشتیبان کامل از پایگاه داده خود را ایجاد کنید.

علاوه بر این، در خواص پایگاه داده MS SQL شما می توانید گزینه “Auto Shrink” را پیدا کنید. هنگامی که این گزینه را فعال می کنید، SQL Server به صورت دوره ای فضای استفاده نشده را بررسی می کند و اندازه پایگاه داده و فایل های log را کاهش می دهد. مایکروسافت استفاده از این گزینه را برای پایگاههای داده معمولی توصیه نمی کند و اگر تصمیم به استفاده از Auto Shrink داشته باشید، پایگاه داده شما باید در حالت بازیابی کامل اجرا شود.

این گزینه در پارامترهای پایگاه داده در بخش خودکار فعال می شود. فقط تنظیم Auto Shrink را به True تغییر دهید . پس از فعال سازی autoshrink، MS SQL فشرده سازی خودکار را فقط اگر فضای استفاده نشده بیش از 25٪ از کل حجم را انجام دهد.

چگونه تراکنشهای SQL Transaction انجام می شود

چگونه تراکنشهای SQL Transaction انجام می شود

این روش برای تمام نسخه های پشتیبانی شده از SQL Server قابل اجرا است: 2005، 2008، 2012، 2014 و 2016.

این فقط یکی از راه های سریع برای کاهش اندازه سیاههها است. نه بزرگترین، بلکه بسیار ساده و موثر است.

همچنین در نظر داشته باشید که هنگام اجرای مجلات معیوب SQL SQL با استفاده از این کتابچه راهنمای کاربر، تمام پشتیبان های قبلی ساخته شده در مدل بازیابی کامل می تواند از بین برود. به همین دلیل این روش باید در موارد بحرانی مورد استفاده قرار گیرد، زمانی که امکان پاک کردن فضای دیسک به روش های دیگر وجود ندارد.

در دوره های آموزشی، مایکروسافت توصیه می کند که تنها حالت کامل برای پایگاه داده های تولیدی انتخاب شود. با این حال، بسیاری از مدیران پیشرفته عمدا حالت بهبود ساده را برای پایگاه داده های خود تنظیم می کنند. در این مورد، افزایش عملکرد قابل توجهی در عملیات جابجایی توده ای و هنگام کار با داده های باینری بزرگ وجود دارد که برخی از کاهش امکان پشتیبان گیری و بازیابی را توجیه می کند. برای کار شما اهمیت بیشتری دارد – گزینه های بازیابی اضافی یا حداکثر عملکرد، بنابراین برای خودتان تصمیم بگیرید.

سایر مطالب مرتبط :

این صفحه چطور بود؟ post