• 14-05-2022, 19:24:52
    #1
    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.
    Veritabanları

    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.

    Scripti Çalıştıralım

    Yedekleme sonuçlarını alt kısımda bize bildirmiş oldu. Yedekleme klasörünü kontrol edelim.

    Yedeklenen Veritabanları

    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ı

    Bat dosyasının içeriğini kontrol edelim.

    Bat Dosya İçeriği

    İş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

    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

    Ö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
  • 14-05-2022, 19:39:51
    #2
    mikro adlı üyeden alıntı: mesajı görüntüle
    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.
    Veritabanları

    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.

    Scripti Çalıştıralım

    Yedekleme sonuçlarını alt kısımda bize bildirmiş oldu. Yedekleme klasörünü kontrol edelim.

    Yedeklenen Veritabanları

    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ı

    Bat dosyasının içeriğini kontrol edelim.

    Bat Dosya İçeriği

    İş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

    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

    Ö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
    Faydalı içerik mürit.
  • 15-05-2022, 04:05:58
    #4
    Sistem üzerinden zamanlanıp cloud ile senkronize edildiğinde önemli bir ihtiyacı kolayca çözmüş olur bu script. Teşekkürler paylaşım için.