در این مقاله قصد داریم نحوه “تغییر MS SQL DATABASE RECOVERY MODEL در SQL Server” را از طریق SQL Server Management Studio و Transact-SQL توضیح دهیم.

با توجه به اینکه لاگ های دیتابیس حجم بسیاری را اشغال می کنند، از طریق recovery model می توانیم تعیین کنیم که لاگ های SQL به چه صورتی ذخیره شوند. کلیه عملیات بک آپ گیری، ریستور و ریستور دیتابیس SQL Server بر اساس یکی از سه مدل بازیابی موجود است:

Simple

Full

Bulk-logged

در اکثر اوقات MS SQL از گزینه های Full و Simple استفاده می کند اما با این حال، هرزمان که نیاز باشد می توانیم مدل آنرا تغیر دهیم. پیشنهاد میکنیم قبل از انجام چنین تغییری، از دیتا، بک آپ تهیه کنید.

برای شروع ابتدا وارد SQL Server شده و به instanse مدنظر کانکت شوید و سپس دیتا بیس را انتخاب کنید و روی آن کلیک راست کنید و گزینه ی Properties را باز کنید و مطابق تصویر وارد تنظیمات Options شوید و Recovery model را مطابق نیاز خود تغییر دهید.

راه دیگر استفاده از روش “Transact-SQL” می باشد. در این روش به instanse مدنظر کانکت شوید و روی گزینه ی New Query کلیک کنید و کامند زیر را اجرا کنید  :

SELECT name, recovery_model,recovery_model_desc FROM sys.databases  
GO
برای تغییر recovery model کامند مربوطه را مطابق دیتابیس خود تغییر دهید برای مثال برای recovery model با استفاده از مدل SIMPLE کامند به صورت زیر خواهد بود:
USE master
GO
ALTER DATABASE MODEL SET RECOVERY SIMPLE ;  
SELECT name, recovery_model,recovery_model_desc FROM sys.databases  where name='model'

چگونه می توان recovery model کل دیتابیس های سرور را تغییر داد؟

این روش برای تمام دیتابیس های سرور اعمال می شود و در کامند با دستور alter ران می شود.
EXEC sp_msforeachdb "
IF '?' not in ('tempdb')
begin
exec ('ALTER DATABASE [?] SET RECOVERY FULL;')
print '?'
end
"
SELECT name, recovery_model,recovery_model_desc FROM sys.databases
در اکثر سرورها، recovery model روی Full ست شده است و به همین علت لاگ زیادی را ایجاد میکند. البته ممکن است این مود در گذر زمان به هردلیلی تغییر کند. برای اینکه متوجه شیم recovery model کدام دیتابیس های سرور ما روی SIMPLE ست شده است می توانیم از dynamic T-SQL و  sqlcmd و یا Poweshell خود ویندوز سرور استفاده کنیم.
در روش Powershell، نرم افزار را باز کرده و کامند زیر را وارد کنید :
#load the SqlServer module
Import-Module -Name SqlServer
#input file
$ServerList = "\\hq6021\c$\Server.txt"
#input the recovery model that is intended to search
$RecoveryModel='SIMPLE'
# To exclude system objects
$DatabaseFlag =0
ForEach ($instance in Get-Content $ServerList)
{
       $s = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $instance
       $dbs=$s.Databases| where {$_.RecoveryModel -like "$RecoveryModel" -and  $_.IsSystemObject -eq $DatabaseFlag }
       $dbs | select @{Name="ServerName"; Expression = {$Instance}}, Name, RecoveryModel
}
پس از آن، لیست دیتابیس هایی که recovery model آنها Simple است، مطابق تصویر بالا لیست می شود.
با مقالات ما  همراه باشید.

با دیگر مقالات server.ir همراه باشید.

۱۳۹۸/۰۷/۳۰

نویسنده : ف لقمانی

0

چرخه حیات دامنه بین المللی

اکثر دامنه ها امکان ثبت در بازه زمانی 1-10 سال را خواهد داشت. در این مقاله چرخه حیات دامنه از زمان ثبت تا حذف توضیح داده خواهد شد. پس از بررسی آزاد بودن دامنه در آنالیزور های whois می ت...

۱۳۹۸/۰۷/۳۰

نویسنده : پ گروسی

0

فروش ویژه سرور اختصاصی و مجازی ایده پردازان به مدت محدود

فراتر از آنچه می خواهید! شرکت ایده پردازان با دریافت بالاترین سطح رضایت کاربران در یکسال اخیر، تصمیم گرفته است این تجربه لذت بخش را با کاهش هزینه های خرید اولیه برای برنامه نوی...

۱۳۹۸/۰۷/۳۰

نویسنده : ب حداد

0

مشکل دسترسی به فایل .htaccess و PHP.ini در کنترل پنل Cyberpanel

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

دیدگاه کاربران

در رابطه با : "تغییر MS SQL DATABASE RECOVERY MODEL در SQL Server"

avatar
  عضویت  
با خبرم کن

وب گردی

جستجو
دقیقا متنی که نوشتم
جستجو در تیتر صفحات
جستجو در متن صفحات
جستجو در نظرات
Search in excerpt
Filter by Custom Post Type

با ایده پردازان همراه شو ...