
New post on medium.com
https://medium.com/@ahmetrende/sql-server-unattended-installation-with-powershell-d12c7a732b00
Thanks.
New post on medium.com
https://medium.com/@ahmetrende/sql-server-unattended-installation-with-powershell-d12c7a732b00
Thanks.
Merhaba,
SQL Server 2012 ile birlikte hayatımıza AlwaysOn teknolojisi girmişti. Bu teknoloji ile HA/DR çözümlerinde önemli adımlar atılmış oldu.
En az 2 node ile kurulan yapıda veritabanlarını full ve log backup – restore ile dağıtmamız gerekiyordu.
Okumaya devam et
Herkese merhaba,
Bu yazımda SQL Server 2016 RC0 versiyonu ile hayatımıza giren “STRING_SPLIT” fonksiyonunu ele alacağım. Bu fonksiyon, adından da anlaşılacağı gibi parametre olarak verilen yazıyı belli bir ayraç ile ayırıp geriye tablo döndürüyor.
Aslında, neredeyse hepimiz bu işlemi ya custom function yazarak ya da CLR gibi çözümlerle yapabiliyorduk. SQL Server 2016 ile birlikte ise built-in table valued function olarak geliyor.
Merhaba,
SQL Server 2016 ile gelecek harika özelliklerden biri olan Dynamic Data Masking sayesinde operasyonel hiçbir iş yapmadan verilerimizi kolaylıkla maskeleyebileceğiz.
Öncelikle maskeleme nedir ona bakalım;
Veri maskeleme, veritabanları içindeki hassas veya gizli verilere erişimi engelleyen bir güvenlik yöntemidir. Bu yöntem, gerçek verilerin yerine gerçek olmayan ancak uygun verilerin yerleştirilmesiyle gerçekleştirilir. (alıntı)
Merhaba herkese,
Bu yazımda, Merge statement’ı kullanımında bizlere kolaylık sağlayacak scripti paylaşacağım. Merge, hayatımıza SQL Server 2008 ile girmişti. Çok işlevsel olmasına karşın alışkanlıklardan uzak olduğundan olsa gerek pek yaygın kullanılmıyor.
Merge’ün ne yaptığına burada değinmeyeceğim. Bunun için birçok makale mevcut. Fakat özetlemek gerekirse; 2 tablo arasında belli kurallara göre yapılan senkronizasyon ya da upsert işlemlerinde kullanılan bir statement diyebiliriz. Okumaya devam et
Merhaba,
2 sql server arası bir veya daha fazla veri tabanını taşıma ihtiyacı her zaman olmuştur. Tek tek backup alıp, diğer tarafa kopyaladıktan sonra tek tek restore etmemiz gerekirdi. Eğer kopyalanacak veri tabanı sayısı fazla ise bu işlem çok uzun ve can sıkıcı olabiliyor.
Bu işlemleri otomatize etmek için bir script geliştirdim. Parametre olarak verdiğimiz veri tabanlarını ilgili serverlar arası backup-restore yöntemi ile kopyalıyor.
Script size yeni bir script üretecek. Bu scripti management studio’da “SQLCMD” modunda çalıştırmanız gerekiyor.
Always On ya da mirroring kurulumu sırasında bu script oldukça işe yarayacaktır.
Okumaya devam et
Merhaba,
Bildiğiniz gibi databaselerimizin data ve log dosyalarını fiziksel olarak taşımak için detach / attach yöntemini kullanıyoruz.
Fakat bu işlem birden fazla database için yorucu olabilir.
Bunun için bir script geliştirdim. Bu script ile tüm databaseleri detach etmeden taşıyabiliyoruz. Veya isterseniz parametre olarak veriğiniz tek bir database için bu işlemi yapabilirsiniz.
Scriptin çalışması şu şekilde;
Veritabanı Log (.LDF) dosyalarımızın hepsini birden shrink etme ihtiyacımız olabilir. Recovery Model Simple olsa dahi bazen bunu yapmamız gerekebilir*
Yazmış olduğum SP ile tüm LDF dosyalarını topluca shrink edebilirsiniz. Bu SPyi tek olarak çalıştırabilir ya da sadece script ürettirebilirsiniz.
* Not: Shrink işleminin periyodik olarak ya da plansız yapılması önerilmeyen bir işlemdir. Shrink bir operasyon olarak ele alınmalı ve bilinçli bir şekilde yapılandırılmalı.
Kullanımı şu şekilde;
EXEC sp_shrinkLogFiles @executeNumber = 2, -- Kaç kes çalışsın? @execute = 1 -- 1: çalıştırır 0: sadece script üretir
SP’nin create scripti;
CREATE PROC sp_shrinkLogFiles @executeNumber INT = 1, @execute BIT = 0 AS DECLARE @cmd varchar(max) SELECT @cmd = COALESCE(@cmd + ' ', '') + ' USE [' + DB_NAME(database_id) + '] DBCC SHRINKFILE (N'''+ name + ''' , 0, TRUNCATEONLY)' FROM sys.master_files WHERE database_id > 4 AND [type] = 1 AND [state] = 0 IF (@execute = 1) BEGIN PRINT '--- Started: ' + CONVERT(NVARCHAR(19),GETDATE(), 104) + ' ' + CONVERT(NVARCHAR(20),GETDATE(), 114) + ' ---' PRINT '' WHILE (@executeNumber > 0) BEGIN EXEC(@cmd) SET @executeNumber -= 1 END PRINT '' PRINT '--- Finished: ' + CONVERT(NVARCHAR(19),GETDATE(), 104) + ' ' + CONVERT(NVARCHAR(20),GETDATE(), 114) + ' ---' END ELSE BEGIN SELECT @cmd = REPLACE(@cmd,'TRUNCATEONLY)','TRUNCATEONLY) GO ' + (SELECT CASE @executeNumber WHEN 1 THEN '' ELSE CAST(@executeNumber AS VARCHAR) END)) SELECT @cmd END
Merhaba;
Aşağıda yazmış olduğum script ile serverda bulunan tüm databaselerin en son restore bilgilerini elde edebilirsiniz.
Serverda bulunmayan databaselerin bilgilerini almak için ise scriptin alt satırlarında bulunan “sys.databases” JOIN modelini LEFT JOIN yapabilirsiniz.
Eğer tek bir databasein bilgilerini istiyorsanız “SET @dbname = NULL” parametresine db ismini yazmanız yeterli.
Merhaba;
Bir önceki yazımda bir klasördeki backup dosyalarının nasıl restore edileceğine bakmıştık. Bu yazımda da bir klasörde ki tüm transaction log backuplarının restore edilmesine bakacağız.
Geçen haftalarda SQL Server 2012 Always On mimarisine geçtik. Geçiş sırasında hem full backup hem de Tlog backupların restore edilmesi gerekiyordu. Bu senaryoda bu script oldukça işime yaradı.
Scripti isterseniz SP haline dönüştürebilirsiniz. Parametrelerin açıklamalarını script içinde bulabilirsiniz.