SQL SERVER otomatik log dosyası küçültme

Sql server log dosyaları zamanla büyüyor ve sorun olmaya başlıyor

Bu log dosyalarını script ile küçültebileceğimiz gibi zamanlanmış iş (Job) ayarlıyarak da yapabiliriz

Script ile küçültmek için bu linke tıklayabilirsiniz https://ahmetaydinlik.com/2021/06/20/sql-server-log-dosyasi-kucultme-2/

Sql Server Menagment studio u açıyoruz

SQL server Agent servisi resimdeki gibi çalışıyor olmalıdır çalışmıyor ise SQL Server Configration Menagerden hizmeti başlatınız

SQL Server Agent e tıklıyoruz

Jobs a Sağ Tıklayıp New jobs diyoruz

General bölümünden İş adımızı ve açıklamamızı yazıyoruz

Steps bölümüne tıklıyoruz

New butonuna Tıklıyoruz

USE DatabesAdi 
ALTER DATABASE DatabesAdi SET RECOVERY SIMPLE WITH NO_WAIT  
DBCC SHRINKFILE([DatabesAdi_log], 0, TRUNCATEONLY)  
ALTER DATABASE DatabesAdi SET RECOVERY FULL WITH NO_WAIT  
GO 

Yukarıdaki Scripti Database imize göre düzenliyoruz

Ok deyip bu bölümü kapatıyoruz

Schedules kısmına geliyoruz çalışma zamanlarını ayarlıyoruz New Butonuna basıyoruz

Zaman lama ayarlarımızı seçip ok diyoruz

Haftalı günlük aylık olacak şekilde küçültme işlemi yapabiliyoruz

Sql server Agent da Jobs ların altına yerleşti görevimiz

Test Etmek için

Oluşturduğumuz Job a Sağ tıklayıp Start Job at Steps diyoruz

yukarıdaki Succes yani işlem başarılı yı gördüğünüzde zamanlamalı iş tanımımız hazırdır ve planladığınız zaman da çalışır

SQL Server Management Studio Server Kaydetme (Registered server)

SQL Server Management Studio sık kullandığınız uzak server var ise bunları register edip daha sonrasında hızlı bir şekilde bağlantı sağlayabiliriz

Connect olduğumuz server sağ tıklayarak register demeliyiz

Açılan Register Penceresinde Server ımıza isim verip kayıt ediyoruz

View Menüsünden Registered Servers Penceresini Açıyoruz

Database Engine Açtığımıza Local Server Groups altında Server ımızın kayıt olduğunu görüyoz

Kayıt ettiğimiz Server a Sağ Tıklayıp Object Explorer Tıkladığımızda Server Bağlantımız Otomatik Olarak Kurulacaktır

İsterseniz Local Server Groups altında yeni gruplar oluşturup serverlarınızı gruplayabilirsiniz

SQL SERVER Sistem Tabloları
Sistem tablosu Veritabanı Fonksiyon
sysdatabases Master Her satırda bir veritabanı içerir.
syslogins Master Her satırda SQL Server’a bağlanmak için bir login hesabı içerir.
sysmessages Master Her satırda SQL Server’ın verebileceği bir hata mesajı ya da uyarı içerir.
sysalerts MSDB Her uyarı için bir satır içerir.
syscategories MSDB SQL Server Management Studio tarafından; işleri, uyarıları ve operatörleri kaydetmek amacıyla kullanılan kategorileri içerir.
sysdownloadlist MSDB Tüm hedef sunucular için download talimatlarının sırasını içerir.
sysjobactivity MSDB O anki SQL Server Agent işinin etkinliği ve durumu hakkındaki bilgileri içerir.
sysjobhistory MSDB SQL Server Agent tarafından planlanmış işlerin uygulaması hakkındaki bilgileri içerir.
sysjobs MSDB SQL Server Agent tarafından tamamlanmış olması gereken her planlanmış iş ile ilgili bilgileri depolar.
sysjobschedules MSDB SQL Server Agent tarafından tamamlanmış olması gereken işlerin plan bilgilerini içerir.
sysjobservers MSDB Belirli bir iş ile bir ya da daha fazla hedef sunucu arasındaki tüm bağların bilgilerini içerir.
sysjobsteps MSDB SQL Server Agent tarafından tamamlanmak üzere olan bir işin her aşamasıyla ilgili bilgileri içerir.
sysjobstepslogs MSDB İş aşamalarının günlükleriyle ilgili bilgileri içerir.
sysmail_allitems MSDB Veritabanı Postası tarafından işlenmiş her mesaj için bir satır içerir.
sysmailevent_log MSDB Veritabanı Posta Sistemi tarafından geri çevrilen her Windows ya da SQL Sunucusu mesajı için bir satır içerir.
sysmail_faileditems MSDB Başarısız durumdaki her Veritabanı Posta mesajı için bir satır içerir.
sysmail_mailattachments MSDB Veritabanı Postasına iliştirilen her ek için bir satır içerir.
sysmail_sentitems MSDB Veritabanı Postası tarafından gönderilen her mesaj için bir satır içerir.
sysmail_unsentitems MSDB “Gönderilemedi” veya “tekrar deneniyor” durumundaki her Veritabanı Posta Mesajı için bir satır içerir.
sysnotifications MSDB Her bildirim için bir satır içerir.
sysoperators MSDB Her SQL Server Agent operatörü için bir satır içerir.
sysproxies MSDB SQL Server Agent yetkili hesaplarıyla ilgili bilgileri içerir.
sysproxylogin MSDB Her SQL Server Agent yetkili hesabıyla ilişkilendirilmiş SQL Server oturumunu kaydeder.
sysproxysubsystem MSDB Her yetkili hesabıyla kullanılan SQL Server alt sistemini kaydeder.
sysschedules MSDB SQL Server Agent iş planlarıyla ilgili bilgileri içerir.
syssessions MSDB Her SQL Server Agent oturumu için SQL Server Agent’ın başlagıç tarihini içerir.
syssubsystems MSDB Mevcut tüm SQL Server Agent yetkili alt sistemlerle ilgili bilgileri içerir.
systargetservergroupmembers MSDB O anda çok sunuculu grupta listelenmiş olan hedef sunucuları kaydeder.
systargetservergroups MSDB O anda çok sunuculu ortamda listelenmiş hedef sunucu gruplarını kaydeder.
systargetservers MSDB O anda çok sunuculu işlem etki alanında listelenmiş hedef sunucuları kaydeder.
systaskids MSDB SQL Server’ın önceki sürümlerinde oluşturulmuş görevlerle, güncel Microsoft SQL Server 2005 Management Studio’daki işler arasındaki eşleştirmeleri içerir.
sysaltfiles Hepsinde Özel durumlarda, veritabanındaki dosyalara karşılık gelen satırlar içerir.
syscacheobjects Hepsinde Önbelleğin nasıl kullanıldığına dair bilgiler içerir.
syscharsets Hepsinde SQL Server 2005 veritabanı motoru tarafından kullanılmak üzere her karakter için bir satır içerir ve bunları sıralar.
syscolumns Hepsinde Veritabanında kayıtlı her işlem parametresini ve tablolardaki her sütunu satıra çevirir.
syscomments Hepsinde Veritabanında tutulan her tablo, kural, varsayılan değer, varsayılan kısıtlaması ve kontrol kısıtlaması için girdi içerir.
sysconfigures Hepsinde Kullanıcı tarafından tanımlanmış her kurulum seçeneği için bir satır içerir.
sysconstraints Hepsinde Veritabanında yer alan objeler ve bu objelerle ilgili kısıtlamaların eşleştirmesini içerir.
syscurconfigs Hepsinde Geçerli kurulumun her seçeneği için bir girdi içerir.
sysdepends Hepsinde Veritabanındaki objelerle (tablo, işlem ve deklanşörler) tanımlarının içerdiği objeler arasındaki bağla ilgili bilgiler içerir.
sysdevices Hepsinde Diskteki her yedek dosyası, banttaki her yedek dosyası ve veritabanındaki her dosya için bir satır içerir.
sysfilegroups Hepsinde Veritabanındaki her dosya grubu için bir satır içerir. Bu tabloda ana dosya grubu için en az bir girdi mevcuttur.
sysfiles Hepsinde Veritabanındaki her dosya için bir satır içerir.
sysforeignkeys Hepsinde Veritabanındaki tanım tablosunda bulunan dış anahtar (foreign key) kısıtlamalarıyla ilgili bilgileri içerir.
sysfulltextcatalogs Hepsinde Tüm metin katalogları hakkında bilgiler içerir.
sysindexes Hepsinde Aktif veritabanındaki her tablo ve her dizin için bir satır içerir.
sysindexkeys Hepsinde Veritabanı dizinindeki anahtarlar veya kolonlar ile ilgili bilgileri içerir.
syslanguages Hepsinde SQL Server 2005’te mevcut olan tüm diller için bir satır içerir.
syslockinfo Hepsinde Beklemedeki, değişim halindeki ve kabul edilmiş tüm kilit değişiklikleriyle ilgili bilgileri içerir.
sysmembers Hepsinde Veritabanı görevindeki her üye için bir satır içerir.
sysobjects Hepsinde Her bir satırda o veritabanındaki objelerden birini içerir.
sysoledbusers Hepsinde Özel bağlı sunucuda her kullanıcı ve şifre eşleştirmesi için bir satır içerir.
sysperfinfo Hepsinde Windows Sistem Monitörü tarafından görüntülenebilen, SQL Server 2005’in performans ölçücü veritabanı motorunun gösterimini içerir.
syspermissions Hepsinde Veritabanındaki kabul ve reddedilmiş tüm kullanıcı, grup ve görev izinleri ile ilgili bilgileri içerir.
sysprocesses Hepsinde Microsoft SQL Server örneğinde geçerli tüm işlemlerle ilgili bilgileri içerir.
sysprotects Hepsinde GRANT ve DENY komutları yardımıyla veritabanındaki güvenlik hesaplarına verilen izinlerle ilgili bilgileri içerir.
sysreferences Hepsinde Veritabanındaki ilişkili kolonlarla DIŞ ANAHTAR (FOREIGN KEY) kısıtlama tanımlarının eşleştirmesini içerir.
sysremotelogins Hepsinde Microsoft SQL Server 2005 örneğinde stoklanmış işlemleri çağırmaya izinli tüm uzak kullanıcılar için bir satır içerir.
sysservers Hepsinde Bir Microsoft SQL Server 2005 örneğinin OLE DB veri kaynağı olarak erişebildiği tüm sunucular için bir satır içerir.
systranschemas Hepsinde Karşılıklı yayımlanan makale ve reklamlardaki şemalarda yapılan değişiklikleri takip etmek için kullanılır.
systypes Hepsinde Veritabanında, kullanıcı tarafından tanımlanmış ve sistemde bulunan her türlü veri için bir satır dönüştürür.
sysusers Hepsinde Her satırda bir NT kullanıcısı, NT grup, SQL Server kullanıcsı ya da SQL rolü içerir.
MSSQL Rebuild Index , Sql Server Index Yenileme

MsSql deki index lerimizi zaman zaman rebuild yapıp indexleri yenilememiz gerekir bunuda aşağıdaki script ile gerçekleştirebilir siniz

USE [Database]
GO
ALTER INDEX [Index_Adı] ON [dbo].[Tablo Adı]
REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 10)
GO
SQL Server İki Tablo Arası Update

Aşağıdaki script ile farklı tablolardan update işlemi yapılabilir


   UPDATE T1
   SET UPDATEALAN = T2.VERIALANI
   FROM UPDATETABLO T1
   JOIN VERITABLO T2
   ON T1.[UPDATEESLESMEALANI] = T2.VERIESLESME ALANI



Birden fazla alanı güncellemek için ise SET alanınındaki yerleri virgül ile ayırarak birden fazla alanı güncelleyebiliriz

       SET UPDATEALAN = T2.VERIALANI , UPDATEALAN2 = T2.VERIALANI2 , UPDATEALAN3 = T2.VERIALANI3
SQL Server Link Server Oluşturma
exec sp_addlinkedserver @server='LinkServerADI', @srvproduct='', @provider='SQLOLEDB', @datasrc='SERVERADI'
exec sp_addlinkedsrvlogin 'LinkServerADI', 'False', Null, 'SQLKullanıcı', 'SQLŞifre'


Script Çalıştırıldıktan sonra

Link server oluşturduğumuz serverdaki tabloları aşağı komut ile görüntüleyebiliriz

select * from LinkServerADI.Database.dbo.Tablo
SQL Server Log Dosyası Küçültme

Sql Server daki ldf dosyalarının boyutlarını aşağıdaki script ile küçültebiliriz

USE   DatabaseName
ALTER DATABASE  DatabaseName
SET RECOVERY SIMPLE
GO


USE   DatabaseName
DBCC SHRINKFILE (DatabaseName_Log, 500)  --- Buradaki 500 yazısı log dosyasının küçültüleceği boyutudur bu örnek de  500 mb olarak küçültülür
GO

USE   DatabaseName
ALTER DATABASE  DatabaseName
SET RECOVERY FULL
GO
Asp Sql Server uygun tarih çevirme function
Function TarihDondur(tarih)
			tarihParcalar = Split(tarih, ".")
			Dim gun
			gun = FormatNumber(tarihParcalar(0), 0)
			If Len(gun) = 1 Then
				gun = "0" & gun
			End If
			Dim ay
			ay = FormatNumber(tarihParcalar(1), 0)
			If Len(ay) = 1 Then
				ay = "0" & ay
			End If
			Dim yil
			yil = tarihParcalar(2)
			TarihDondur =  yil& "-" & ay & "-" & gun
	 	
	end function 

Kullanımı

  <%= TarihDondur("29.10.1986")%>
  Ekran Çıktısı : 1986-10-29