Мы ўжо распавядалі, як рэзервовае капіраванне базы дадзеных SQL Server з каманднага радка, і што, калі вы хочаце зрабіць рэзервовую копію ўсіх баз дадзеных адразу? Вы можаце стварыць пакетны сцэнар, які выконвае каманду рэзервовага капіявання для кожнай базы дадзеных, але гэты сцэнар павінен быць абноўлены кожны раз, калі дадаецца або выдаляецца база дадзеных. Акрамя таго, усе рэзервовыя копіі базы дадзеных будуць далучаны да аднаго файла, які будзе павялічвацца на памер новай рэзервовай копіі з кожным запускам. Замест гэтага, па-сапраўднаму "усталюйце яго і забудзьце", мы створым пакетны сцэнар, які адаптуецца да вашага SQL Server па меры дадання і выдалення новых баз дадзеных.

Каб перайсці да справы, гэта сцэнар рэзервовага капіявання:

@ECHO OFF SETLOCAL REM Атрымайце дату ў фармаце YYYY-MM-DD (мяркуецца, што гэта мова ЗША) FOR / F "лексемы = 1,2,3,4 delims = /" %% A IN ("Дата / Т" ) НЕ НАСТАВЛЯЙце заразDate = %% D - %% B - %% C REM Стварыце спіс баз дадзеных для рэзервовага капіявання SET DBList =% SystemDrive% SQLDBList.txt SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ВКЛ; ВЫБАРІЦЬ ІМЯ З master.dbo.sysDatabases WHERE [Імя] NOT IN ('master', 'model', 'msdb', 'tempdb') »>«% DBList% »REM Рэзервовае капіраванне кожнай базы дадзеных, папярэдне датуючы да імя файла FOR / F “лексемы = *” %% I IN (% DBList%) DO (Рэзервовае капіраванне базы дадзеных ECHO: %% I SqlCmd -E -S MyServer -Q “BACKUP DATABASE [%% I] TO Disk = 'D: Рэзервовае капіраванне% NowDate% _ %% I.bak '"ECHO.) REM Ачысціце тэмп-файл, АСКУЛЬНАСЦЬ"% DBList% "DEL / F / Q"% DBList% "ENDLOCAL

Калі дата будзе 13.01.2009 і ў вас ёсць 3 базы з назвамі "MyDB", "AnotherDB" і "Імя БД з прабеламі", сцэнар атрымае 3 файла ў пазначаным месцы рэзервовага капіявання:


  • 2009-01-13_AbodyDB.bak 2009-01-13_DB Імя з Spaces.bak 2009-01-13_MyDB.bak

Налада і запуск пакетнага сцэнарыя

Вядома, вы хочаце наладзіць сцэнар пад сваё асяроддзе, таму вось што вам трэба зрабіць:

  • Калі для мовы вашай машыны не ўстаноўлена амерыканская, каманда "Дата / Т" не можа вярнуць дату ў фармаце "вт 13.01.2009". У гэтым выпадку зменная NowDate не выдасць патрэбны фармат і павінна быць скарэкціравана. (1 месца) Змяніце "MyServer" на імя вашага SQL Server (дадайце імя асобніка, калі гэта дастасавальна). (2 месцы) Базы дадзеных з назвамі "майстар", "мадэль", "msdb" і "tempdb" - гэта базы дадзеных, якія пастаўляюцца з SQL Server. Вы можаце дадаць дадатковыя імёны баз дадзеных у гэты спіс, калі вы не хочаце, каб яны былі рэзервовыя копіі. (1 месца) Змяніце месца рэзервовай копіі з "D: Рэзервовае капіраванне" на месца, дзе вы хочаце захаваць файлы рэзервовай копіі базы дадзеных.

Пасля таго, як вы настроілі пакетны сцэнар, запланіруйце яго запуск з дапамогай планавальніка задач Windows, як карыстальніка з правамі адміністратара, і вы ўсё настроены.