Koduleht » kuidas » Partii skript varukoopiate tegemiseks kõikidele teie SQL Serveri andmebaasidele

    Partii skript varukoopiate tegemiseks kõikidele teie SQL Serveri andmebaasidele

    Oleme juba käsitlenud, kuidas SQL Serveri andmebaasi varundada käsurealt, nii et mis siis, kui soovid varundada kõik oma andmebaasid korraga? Sa võid luua partii skripti, mis käivitab iga andmebaasi varukoopia, kuid seda skripti tuleb uuendada iga kord, kui andmebaasi lisatakse või eemaldatakse. Lisaks lisatakse kõik andmebaasi varukoopiad ühele failile, mis kasvab iga uue käivitamise ajal uue varukoopia suurusega. Selle asemel loome me „õige ja unustage” moel partii skripti, mis kohandub teie SQL Serveriga uute andmebaaside lisamise ja eemaldamise korral.

    Punkti paremaks muutmiseks on see varukoopia:

    @ECHO OFF
    SETLOCAL

    REM Hangi kuupäev kujul YYYY-MM-DD (eeldab, et asukoht on Ameerika Ühendriigid)
    FOR / F “märgid = 1,2,3,4 delims = /” %% A IN ('Kuupäev / T') DO SET NowDate = %% D - %% B - %% C

    REM Loo varundamiseks andmebaaside loend
    SET DBList =% SystemDrive% SQLDBList.txt
    SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; SELECT Name from master.dbo.sysDatabases WHERE [Name] NOT IN ('master', 'model', 'msdb', 'tempdb') '> “% DBList%”

    REM-i varukoopiad iga andmebaasi, andes kuupäeva failinimele
    FOR / F “märgid = *” %% I IN (% DBList%) DO (
    ECHO varundamise andmebaas: %% I
    SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%% I] Disk =" D: varukoopia% NowDate% _ %% I.bak ""
    ECHO.
    )

    REM Puhastage temp-fail
    KUI EXIST “% DBList%” DEL / F / Q “% DBList%”

    ENDLOCAL

    Eeldades, et kuupäev on 1/13/2009 ja teil on 3 andmebaasi nimega 'MyDB', 'AnotherDB' ja 'DB Name with Spaces', genereerib skript 3 varukoopia asukohta:

    • 2009-01-13_AnotherDB.bak
    • 2009-01-13_DB Nimi Spaces.bak'iga
    • 2009-01-13_MyDB.bak

    Partii skripti kohandamine ja käivitamine

    Loomulikult soovite skripti kohandada oma keskkonda, nii et siin on vaja teha järgmist:

    • Kui teie seadme asukoht ei ole USA-s määratud, ei pruugi käsk „Kuupäev / T” kuupäeva tagastada „Tue 01/13/2009” formaadis. Sellisel juhul ei anna NowDate muutuja soovitud vormingut ja seda tuleks kohandada. (1 koht)
    • Muutke 'MyServer', et see oleks teie SQL Serveri nimi (lisage vajadusel eksemplari nimi). (2 kohta)
    • Andmebaasid nimega "master", "mudel", "msdb" ja "tempdb" on andmebaasid, mis saadavad SQL Serveriga. Kui te ei soovi, et need varundatakse, saate sellele loetelule lisada täiendavaid andmebaasi nimesid. (1 koht)
    • Muuda varukoopia asukohta „D: Backup” (asukoht), kuhu soovite salvestada andmebaasi varukoopiad.

    Kui olete partii skripti kohandanud, siis ajastage see Windows Task Scheduleri kaudu administraatori õigustega kasutajana ja olete kõik seadistatud.