SQL Server servisi her start olduğunda tempdb yeniden oluşturulur. Bu yüzden tempdb veritabanının oluşma tarihi bize SQL Server servisinin başlama tarihini verir. SQL Server servisim ne zamandan beri açık diye merak edenler aşağıdaki sorgu ile cevaplarını bulabilirler:
select create_date
from sys.databases
where name = 'tempdb'
Aynı sonuca dm_os_sys_info DMV'sini kullanarak aşağıdaki kod ile de ulaşabilirsiniz:
select sqlserver_start_time
from sys.dm_os_sys_info
#DBA #SQL #Server #Performance #Tuning
2011-01-26
2011-01-22
Error Log Dosya Sayısını Değiştirme
SQL Server'da default olarak bir adet Current ve 6 adet Archive Error Log dosyası tutulur. Archive logların sayısının yetmediği durumlarda bu sayıyı artırabilirsiniz.
SSMS kullanarak Management altından SQL Server Log'da mouse'ın sağ tuşunu tıklayıp aşağıdaki gibi Archive log dosya sayısını 6-99 arasında istediğiniz bir sayı verebilirsiniz. Ben bu sayıyı 11 olarak aşağıdaki gibi verdim:
SSMS GUI arayüzünü kullanmadan aşağıdaki kod ile de aynı işlemi yapabilirsiniz:
USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', REG_DWORD, 11
GO
2011-01-19
Tüm Kullanıcı Veritabanların Backup'ını Alma(sp_msforeachdb)
Daha önce de tüm kullanıcı veritabanların full backup'ını değişik yöntemlerle alacak kodları paylaşmıştım(Bkz.Tüm Kullanıcı Veritabanlarının Full Backup'ını Alma). Şimdi ise daha önce paylaşmış olduğum kodlardan daha kısa bir kod ile tüm kullanıcı veritabanların full backup'ını alacak kodu aşağıdaki gibi paylaşıyorum:
exec sp_msforeachdb 'if db_id(''?'')>4 backup database [?] to disk = ''c:\?.bak'' with init, compression;'
sp_msforeachdb undocumented stored procedure'ı oldukça yararlı ve çoğu yerde işimizi kolaylaştıran bir sp. Tüm veritabanlarında yapacağınız işlemleri bu sp ile halledebilirsiniz.
exec sp_msforeachdb 'if db_id(''?'')>4 backup database [?] to disk = ''c:\?.bak'' with init, compression;'
sp_msforeachdb undocumented stored procedure'ı oldukça yararlı ve çoğu yerde işimizi kolaylaştıran bir sp. Tüm veritabanlarında yapacağınız işlemleri bu sp ile halledebilirsiniz.
2011-01-17
Aktif Tüm SQL Joblarını Disable Etme
Geçenlerde bir veritabanı sunucusunda bulunan tüm aktif jobları pasif yapma ihtiyacım oldu. Bu ihtiyacımı aşağıdaki gibi T-SQL kodu yazarak giderdim:
declare @cmd varchar(max)=''
select @cmd=@cmd + 'exec msdb.dbo.sp_update_job @job_id=N' + '''' + cast(job_id as varchar(36)) + '''' + ', @enabled=0' + char(13)+char(10)+ 'go' + char(13) + char(10)
from msdb.dbo.sysjobs
where enabled=1
exec(@cmd)
Umarım bu T-SQL kodu sizin de işinize yarar.
-- Kodlar SQL Server 2008 ile test edilmiştir. Koddaki değişken atamaları SQL Server 2008 ve sonrası sürümleri gerektirir.
declare @cmd varchar(max)=''
select @cmd=@cmd + 'exec msdb.dbo.sp_update_job @job_id=N' + '''' + cast(job_id as varchar(36)) + '''' + ', @enabled=0' + char(13)+char(10)+ 'go' + char(13) + char(10)
from msdb.dbo.sysjobs
where enabled=1
exec(@cmd)
Umarım bu T-SQL kodu sizin de işinize yarar.
-- Kodlar SQL Server 2008 ile test edilmiştir. Koddaki değişken atamaları SQL Server 2008 ve sonrası sürümleri gerektirir.
Kaydol:
Kayıtlar (Atom)
.::YASAL UYARI::.
©2004-2024 Mehmet GÜZEL, www.mehmetguzel.net
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.