مقدمه

در این مقاله ما به نحوه ی خالی کردن log های SQL Server در WebsitePanel در هاست ویندوز می پردازیم. اما در ابتدا بیایید با خود SQL Server و اصطلاحات و موارد مربوط به آن آشنا شویم. با ما همراه باشید تا سیر تا پیاز مطالب را با کمک یکدیگر فرا بگیریم.

SQL Server چیست؟

SQL Server یک  Relational Database Management یا RDBMS است که اگر بخواهیم آن را به فارسی ترجمه کنیم باید بگوییم که SQL Server یک بانک اطلاعاتی از نوع دیتابیس و داده های رابطه ای است که توسط کمپانی microsoft توسعه و به بازار عرضه شده است.

مشابه سایر نرم افزارهای RDBMS موجود، SQL Server بر پایهSQL که یک زبان برنامه نویسی استاندارد برای تعامل با Relational Database (پایگاه داده های رابطه ای) است، ساخته شده است. این کدهای پایه‌، ابتدا توسط شرکت Sybase SQL Server طراحی میشد و بعدها شرکت مایکروسافت، امتیاز کامل آن را خریداری نمود.

SQL Server بیش از 20 سال است که به طور انحصاری بر روی محیط ویندوز کار می کند. در سال 2016، مایکروسافت آن را برای سیستم عامل  Linux در دسترس قرار داد. در اکتبر سال 2016 نسخه ی SQL Server 2017 در دسترس همگان قرار گرفت که این نسخه هم بر روی Windows و هم بر روی  Linux اجرا می شد.

کاربردهای SQL Server

  • برای ایجاد پایگاه داده یا همان (database)
  • برای نگهداری پایگاه داده یا همان ((database
  • برای تجزیه و تحلیل داده ها از طریق سرویس های تحلیل سرور SQL یا همان SQL Server Analysis Services یا SSAS
  • برای تهیه ی log از طریق SQL Server Reporting Services یا همان SSRS
  • برای انجام عملیات ETL از طریق SQL Server Integration Services یا همان SSIS

 

SQL مخفف عبارت Structured Query Language است که اگر بخواهیم آن را به فارسی ترجمه کنیم باید بگوییم که SQL یک “زبان پرس‌وجوی ساختار یافته” است. SQL یک زبان استاندارد برای دسترسی پیدا کردن و کار کردن با پایگاه‌ داده یا همان (database) است.

SQL Server

نسخهسالاسم مستعار
6.01995SQL95
6.51996Hydra
7.01998Sphinx
8.0 (2000)2000Shiloh
9.0 (2005)2005Yukon
10.0 (2008)2008Katmai
10.5 (2008 R2)2010Kilimanjaro
11.0 (2012)2012Denali
12 (2014)2014Hekaton (نام در ابتدا)، SQL 14

(نام در حال حاضر)

T-SQL چیست؟

T-SQL مخفف عبارت Transact Structured Query Language است که توسط کمپانی microsoft و Sybase توسعه و به بازار عرضه شده است. Transaction-SQL نسخه پیشرفته SQL است و شما به وسیله T-SQL می توانید از MSSQL استفاده نمایید. T-SQL نسبت SQL شامل ویژگی های جدیدتر و پیشرفته تری همچون، تعریف متغیرهای محلی، پشتیبانی از توابع برای پردازش رشته، پردازش داده، محاسبات ،کنترل تراکنش ها، مدیریت خطا و استثناء، پردازش تاریخ و زمان و … است.

استفاده از ابزارهای پیشرفته پایگاه داده (database) در WebsitePanel برای MSSQL به منظور خالی کردن log های SQL Server

می‌توانید برخی از عملیات های پیشرفته‌ را در WebsitePanel روی پایگاه‌های داده MSSQL یا همان Microsoft SQL Server خود انجام دهید . مانند مشاهده اندازه داده ‌ها و فایل‌ های log، عملیات پشتیبان ‌گیری و بازیابی در Database خود، و در نهایت خالی کردن log های SQL Server. برای استفاده از این ویژگی‌ها، به سادگی با استفاده از URL ارائه شده در ایمیل خوش آمدگویی به حساب که در هنگام  ثبت نام خود دریافت کرده اید ، وارد کنترل پنل خود شوید. پس از ورود به سیستم کافی است روی نماد Database >> SQL Server 2012 که در زیر نشان داده شده است کلیک کنید.

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

نحوه ی خالی کردن log های SQL Server در websitePanel در هاست ویندوز

حال که با مفاهیم اولیه آشنا شدیم وقت آن است  به موضوع اصلی مقاله که خالی کردن log های SQL Server در WebSitePanel در هاست ویندوز است بپردازیم:

قدم اول: وارد پنل  Host  و یا وب سایت خود شوید:

قدم دوم : Databases >> SQL Server 2012 را انتخاب کنید (می توانید جای SQL Server 2012 هر Server ی که مدنظر شماست انتخاب کنید.)

قدم چهارم:  بر روی گزینه ی Housekeeping Tools کلیک کنید و سپس دکمه Truncate Files را مشاهده خواهید کرد.

قدم پنجم: بر روی Truncate Files کلیک کنید و منتظر بمانید تا پیغام «Database files have been truncated» را ببینید.

نحوه ی کوچکتر کردن (Shrink) فایل log به منظور خالی کردن log های SQL Server در WebsitePanel در هاست ویندوز

یکی دیگر از روش های  خالی کردن log های SQL Server در WebsitePanel در هاست ویندوز استفاده از shrink است. کوچک‌تر کردن یک فایل log باید برای مواقعی باشد که با رشد غیرمنتظره‌ای مواجه هستیم که انتظار تکرار آن را نداریم. اگر فایل log دوباره به همان اندازه بزرگ شود، با کوچک کردن موقت آن کار بیهوده ای را انجام داده ایم. اکنون، بسته به هدف شما از بازیابی database ، باید این کارها را انجام بدهید:

ابتدا یک Backup کامل بگیرید

هرگز بدون اینکه مطمئن شوید در صورت بروز مشکل می توانید Database خود را بازیابی کنید، هیچ تغییری در آن ایجاد نکنید. احتمالا پایگاه داده شما در حالت بازیابی کامل (FULL recovery) است. اگر نه، مطمئن شوید که همینگونه است.

اگر به Recovery لحظه به لحظه اهمیت می دهید

ALTER DATABASE testdb SET RECOVERY FULL

حتی اگر به طور مستمر بصورت عادی Backup  می‌کنید، فایل log همچنان به رشد خود ادامه می دهد تا زمانی که یک Backup از log  انجام دهید ؛ این کار برای محافظت از شما است، نه اینکه بیهوده فضای دیسک شما را اشغال بکند.  در اینجا اسکریپتی(script) وجود دارد که نام فایل‌های دارای مهر زمانی را بر اساس زمان فعلی تولید می‌کند (اما شما می‌توانید این کار را با برنامه‌های تعمیر و نگهداری و غیره نیز انجام دهید، فقط هیچ یک از گزینه‌های کوچک کردن را در برنامه‌های تعمیر و نگهداری انتخاب نکنید، چون آنها افتضاح هستند).

هنگامی که Log Backup های معمولی را انجام می دهید، منطقی است که فایل log را به چیزی معقول ‌تر از هر چیزی که تا به الان در حال رشد و بزرگتر شدن بوده کوچک کنید. این بدان معنا نیست که عملیات کوچکتر کردن را  بارها و بارها اجرا کنید تا زمانی که فایل 10 گیگابایتی به 1 مگابایت برسد – حتی اگر به طور مکرر از log خود Backup تهیه می کنید، باز هم باید مجموع تراکنش های همزمانی را که ممکن است رخ دهد را در خود جای دهد.

رویدادهای رشد خودکار log مضر هستند، زیرا SQL Server باید فایل‌ها را صفر کند (برخلاف فایل‌های database که مقداردهی اولیه فایل فوری فعال است)، و تراکنش‌های کاربر باید تا زمانی که این اتفاق می‌افتد منتظر بمانند. شما می خواهید این روال رشد کردن خودبخودی و سپس کوچکتر کردن را تا حد امکان کمتر انجام دهید و مطمئناً نمی خواهید که به کاربران خود ضرر بزنید.

بنابراین، باید یک اندازه عملی برای فایل لاگ خود تهیه کنید. هیچ کس در اینجا نمی تواند بدون دانستن اطلاعات قبلی در مورد سیستم شما به شما بگوید که چه چیزی مناسب سیستم شماست، اما اگر به طور مکرر فایل log را کوچک می کنید و دوباره در حال رشد است، یک watermark خوب احتمالاً 10 تا 50٪ بالاتر از بزرگترین رشد است.  فرض کنید به 200 مگابایت می رسد، و می خواهید هر رویداد رشد خودکار بعدی 50 مگابایت باشد، سپس می توانید اندازه فایل گزارش را به این ترتیب تنظیم کنید:

توجه داشته باشید که اگر فایل گزارش در حال حاضر بیش از 200 مگابایت است، ممکن است لازم باشد ابتدا این کار را انجام دهید:

اگر به بازیابی لحظه به لحظه اهمیت نمی دهید

اگر این یک database آزمایشی است و به بازیابی لحظه به لحظه اهمیتی نمی دهید، باید مطمئن شوید که database شما در حالت recovery (بازیابی)  SIMPLE است

قرار دادن Database در حالت بازیابی SIMPLE مطمئن می شود که SQL Server از بخش هایی از log استفاده مجدد می کند (در اصل تراکنش های غیرفعال را حذف می کند) که اینکار از رشد به علت  نگه داشتن همه تراکنش ها جلوگیری می کند . رویدادهای CHECKPOINT به کنترل گزارش کمک می‌کند و مطمئن می‌شود که نیازی به رشد ندارد مگر اینکه فعالیت t-log زیادی بین CHECKPOINT ایجاد کنید.

در مرحله بعد، باید مطمئن شوید که این رشد log واقعاً به دلیل یک رویداد غیرعادی بوده است و نه به دلیل استفاده عادی و روزمره. اگر فایل log را به اندازه بسیار زیادی کوچک کنید، و SQL Server مجبورشود آن را دوباره رشد دهد تا فعالیت عادی شما را انجام دهد، چه چیزی به دست می‌آورید؟ شما فقط توانستید از فضای دیسکی که آزاد کردید به طور موقت استفاده کنید ؛ اگر نیاز به تعمیر فوری دارید، می توانید موارد زیر را اجرا کنید:

جمع بندی

همانطور که در این مقاله بررسی شد، روش های متنوعی برای خالی کردن log های SQL Server در websitePanel در هاست ویندوز وجود دارد که کمک می کند بانک اطلاعاتی وابسته به سرویس SQL Server با سرعت و کیفیت بهتری عمل کند. باز هم ذکر این نکته ضروری است که SQL Server و به طور کلی پایگاه داده SQL با اطلاعات موجود در هاست و سرور سایت ارتباط مستقیم دارد و هرگونه تغییر بدون ملاحظه و احتیاط می تواند باعث از دست رفتن بخشی از اطلاعات حیاتی سایت شود.