Anasayfa » nasıl » Tüm SQL Server Veritabanlarınızı Yedeklemek için Toplu Komut Dosyası

    Tüm SQL Server Veritabanlarınızı Yedeklemek için Toplu Komut Dosyası

    Bir SQL Server veritabanını komut satırından nasıl yedekleyeceğimizi zaten açıkladık, peki ya tüm veritabanlarınızı bir kerede yedeklemek istiyorsanız? Her veritabanı için yedekleme komutunu çalıştıran bir toplu komut dosyası oluşturabilirsiniz, ancak bu komut dosyasının bir veritabanı eklendiğinde veya kaldırıldığında güncellenmesi gerekir. Ek olarak, veritabanı yedeklemelerinin tümü, her çalıştırıldığında yeni yedeklemenin boyutuna göre büyüyecek olan bir dosyaya eklenecektir. Bunun yerine, gerçek “ayarla ve unut” modasında, yeni veritabanları eklenip kaldırılırken SQL Server'ınıza uyarlanacak bir toplu komut dosyası oluşturacağız.

    Doğru noktaya gelince, bu yedekleme betiği:

    @EKO KAPALI
    SETLOCAL

    REM YYYY-AA-GG biçiminde tarih al (yerel ayarın ABD olduğunu varsayar)
    FOR / F “belirteçleri = 1,2,3,4 sınır = /” %% A IN ('Tarih / T') AYARLA Şimdi YapınDate = %% D - %% B - %% C

    REM Yedeklenecek veritabanlarının bir listesini oluşturun
    SET DBList =% SystemDrive% SQLDBList.txt
    SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount AÇIK; Master.dbo.sysDatabases from SELECT Adı NEREDE [Adı] IN IN ('master', 'model', 'msdb', 'tempdb') ”>>%% DBList"

    REM Her bir veritabanını yedekleyin, tarihin dosya adına göre hazırlanması
    FOR / F “belirteçleri = *” %% I IN (% DBList%) DO (
    ECHO Veritabanını yedekleme: %% I
    SqlCmd -E -S MyServer -Q “YEDEKLEME VERİTABANI [%% I] Diske =" D: Yedekleme% NowDate% _ %% I.bak "
    EKO.
    )

    REM Temp dosyasını temizle
    Varsa “% DBList%” DEL / F / Q “% DBList%”

    ENDLOCAL

    Tarihin 1/13/2009 olduğunu ve 'MyDB', 'AnotherDB' ve 'Boşluklu DB Adı' adlı 3 veritabanınız olduğunu varsayarak, komut dosyası belirtilen yedekleme konumunda 3 dosya üretecektir:

    • 2009-01-13_AnotherDB.bak
    • 2009-01-13_DB Spaces.bak Adı
    • 2009-01-13_MyDB.bak

    Toplu Komut Dosyasını Özelleştirme ve Çalıştırma

    Elbette, betiği ortamınıza göre özelleştirmek isteyeceksiniz, işte yapmanız gerekenler:

    • Makinenizin yerel ayarı ABD’ye ayarlanmamışsa, 'Tarih / T' komutu tarihi “Tue 01/13/2009” biçiminde döndürmeyebilir. Bu durumda, NowDate değişkeni istenen formatı üretmez ve ayarlanması gerekir. (1 yer)
    • SQL Server'ınızın adı olarak 'MyServer'ı değiştirin (varsa örnek adını ekleyin). (2 yer)
    • 'Master', 'model', 'msdb' ve 'tempdb' isimli veritabanları SQL Server ile birlikte gelen veritabanlarıdır. Yedeklenmelerini istemiyorsanız, bu listeye ek veritabanı adları ekleyebilirsiniz. (1 yer)
    • Yedekleme konumunu 'D: Yedekle' konumundan veritabanı yedek dosyalarının depolanmasını istediğiniz konuma değiştirin.

    Toplu betiği özelleştirdikten sonra, Windows Görev Zamanlayıcı üzerinden Yönetici haklarına sahip bir kullanıcı olarak çalışacak şekilde zamanlayın ve hazırsınız..