Veritabanı ile çalışmanın en zorlu kısımlarından birisi de şüphesiz ki yedekleme işlemidir. Bu bölümde veritabanlarını tek tek değil de bütün bir şekilde topluca yedekleme işlemi yapacağız. Öncelik olarak yedeklemeye dahil olacak olan veritabanlarının ekran görüntüsünü paylaşalım.
Sonrasında tüm veritabanlarını yedekleyeceğimizi bildirmiştik. Bu noktada ufak bir yedekleme sql scripti yazalım
SQL Yedekleme Scripti
DECLARE @DosyaAdi VARCHAR(50) DECLARE @Patika VARCHAR(256) DECLARE @DosyaAdiYeni VARCHAR(256) DECLARE @DosyaAdiEk VARCHAR(20) SET @Patika = 'D:\yedekler\' SELECT @DosyaAdiEk = CONVERT(VARCHAR(20), GETDATE(), 120); SET @DosyaAdiEk = REPLACE(@DosyaAdiEk, ' ','-') SET @DosyaAdiEk = REPLACE(@DosyaAdiEk, ':','') DECLARE dbCursor CURSOR READ_ONLY FOR SELECT name FROM master.sys.databases WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb') AND state = 0 AND is_in_standby = 0 OPEN dbCursor FETCH NEXT FROM dbCursor INTO @DosyaAdi WHILE @@FETCH_STATUS = 0 BEGIN SET @DosyaAdiYeni = @Patika + @DosyaAdi + '_' + @DosyaAdiEk + '.bak' BACKUP DATABASE @DosyaAdi TO DISK = @DosyaAdiYeni; FETCH NEXT FROM dbCursor INTO @DosyaAdi END CLOSE dbCursor DEALLOCATE dbCursor
Not: Script içerisinde SET @Patika = 'D:yedekler' şeklinde nereye yedekleneceğini belirttik. Sizler onu kendi değerlerinize göre düzenleyebilirsiniz. SQL Server Management Studio üzerinde bu scripti çalıştıralım.
Buraya kadar her şey iyi gitti. Sıra geldi bat dosyası ile bu scripti "SQL Server Management Studio" tarzı bir arayüze girmeden yapmaya çalışalım. Ben sql scripti ve bat dosyasını masaüstünde çalıştıracağım için patikalar masaüstü olacak şekilde ayarlı. Bat dosyası ve sql scriptinin masaüstündeki ekran görüntülerini paylaşalım.
Örnek olması açısından dosyaları indirip kendi bilgilerinize göre yedekleme işlemlerini yapabilirsiniz.
Script üzerinde biraz daha detaylı çalışılarak otomatik yedekleme işlemleri yapılabilir. Mesela bat dosyasını windows zamanlanmış görevlerde çalıştırabilirsiniz. Böylece istediğniz zaman otomatik yedekleme işlemleri başlamış olacaktır.
güzel yöntem fakat bat ile sql yedekleme çok tercih edilmez. ama alınan yedekleri sıkıştırma farklı yerlere kopyalama falan yapılabilir. sql yedeklemeyi job ve plan tasks ile sql e yaptırmak daha mantıklı. ben çalıştığım şirketin veritabanlarını windows servis ile sizinki gibi sql sorguyla yapıp sonrasında rar layıp rarları harici disk ve buluta aktarım yaptırıyorum. paylaştığınız bat dosyanız böyle daha etkili olacak şekilde geliştirilebilir.
Öncelik olarak yedeklemeye dahil olacak olan veritabanlarının ekran görüntüsünü paylaşalım.
Veritabanları
< Resime gitmek için tıklayın >
Sonrasında tüm veritabanlarını yedekleyeceğimizi bildirmiştik. Bu noktada ufak bir yedekleme sql scripti yazalım
SQL Yedekleme Scripti
Not: Script içerisinde SET @Patika = 'D:yedekler' şeklinde nereye yedekleneceğini belirttik. Sizler onu kendi değerlerinize göre düzenleyebilirsiniz.
SQL Server Management Studio üzerinde bu scripti çalıştıralım.
Scripti Çalıştıralım
< Resime gitmek için tıklayın >
Yedekleme sonuçlarını alt kısımda bize bildirmiş oldu. Yedekleme klasörünü kontrol edelim.
Yedeklenen Veritabanları
< Resime gitmek için tıklayın >
Buraya kadar her şey iyi gitti. Sıra geldi bat dosyası ile bu scripti "SQL Server Management Studio" tarzı bir arayüze girmeden yapmaya çalışalım.
Ben sql scripti ve bat dosyasını masaüstünde çalıştıracağım için patikalar masaüstü olacak şekilde ayarlı. Bat dosyası ve sql scriptinin masaüstündeki ekran görüntülerini paylaşalım.
Bat ve SQL Dosyası
< Resime gitmek için tıklayın >
Bat dosyasının içeriğini kontrol edelim.
Bat Dosya İçeriği
< Resime gitmek için tıklayın >
İşaretli olan kısımları SQL Server bilgilerine ve yedekleme scriptinin patikasına göre dolduralım. Daha sonra bat dosyasını çalıştıralım.
Bat Dosyasını Çalıştıralım
< Resime gitmek için tıklayın >
Bat dosyasının çalışması sonrasında yedekleme klasörümüzü kontrol edelim. Yedekler oluştu mu diye.
Bat Çalışma Sonrası Yedekler
< Resime gitmek için tıklayın >
Örnek olması açısından dosyaları indirip kendi bilgilerinize göre yedekleme işlemlerini yapabilirsiniz.
Script üzerinde biraz daha detaylı çalışılarak otomatik yedekleme işlemleri yapılabilir. Mesela bat dosyasını windows zamanlanmış görevlerde çalıştırabilirsiniz. Böylece istediğniz zaman otomatik yedekleme işlemleri başlamış olacaktır.
Kaynak: https://www.ontedi.com/sql/bat-dosyasi-ile-sql-server-veritabanlari-yedekleme-islemi