Скрипт резервного копирования всех баз MSSQL | VBScript backup all databases on MSSQL server

Необходимость резервного копирования сомнений не вызывает. Тем более резервное копирование баз данных. Но, будучи человеком ленивым (как и любой ТРУ админ), решил упростить себе жизнь. Тем более, что получилось прикрутить архиватор - сжымать архив каждой базы. Для автоматизации процесса резервного копирования, написал скрипт бэкапа ВСЕХ баз сервера MSSQL. А дальше только Scheduled Tasks с необходимой периодичностью)


Особенности:

  • аутентификация - Windows (не требует в скрипте указывать логин/пароль доступа к серверу)
  • резервируются ВСЕ базы, за исключением системных
  • базы сжимаются архиватором, для экономии места (у меня они забираются на ленту, по этому не реализовывал дату в имени)
  • все файлы перезаписываются
  • логирование процесса (в разработке)

ВАЖНО! Используется архиватор 7zip. Для работы скрипта, нужно скопировать 7z.exe в %WINDIR%\system32.

Перед запуском скрипта меняем значения констант в начале скрипта ('-- SQL Server Values)

Option Explicit
'===========================================================================
'  VBScript backup and zip all databases MS SQL Server
'===========================================================================
'  Date    : 30/10/2009
'  Auth    : Ruslan Sheremet
'  Updt : -
'===========================================================================

    '--  SQL Server Values
    Const SQL_SERVER = "sql-server-name"
    Const DirSourse      = "dir to backup"        '-- like D:\tmp\
    Const DirDestination = "dir to zip"            '-- like D:\tmp\zip\
    Const SQLDMOBackup_Database         = 0        '
    Const SQLDMOBackup_Log_Truncate     = 0        '
    '-- SQL Variables   
    Dim oSQLBackUp, oSQLServer, oDB, X, strFileName, strFullPath

    '-- Connect to MSSQL Server Windows Authentication
    set oSQLServer = CreateObject("SQLDMO.SQLServer")
        oSQLServer.LoginSecure = True
        oSQLServer.Name = SQL_SERVER
        oSQLServer.Connect

    '-- SQL Back Up
    Set oSQLBackUp = CreateObject("SQLDMO.BackUp")
    '-- Check Connection Status
    If oSQLServer.Status = 1 Then

        '-- Loop Thru Databases
        For X = 1 To oSQLServer.Databases.Count
            Set oDB = oSQLServer.Databases(X)

            '-- Ignore System Objects
            If oDB.SystemObject = False Then
                '-- Name to Back Up To
                strFileName = Trim(oDB.Name) & ".BAK"
                strFullPath = DirSourse & Trim(oDB.Name) & ".BAK"
                '-- Back Up database
                oSQLBackUp.Action               = SQLDMOBackup_Database
                oSQLBackUp.BackupSetName        = "BackUp " & oDB.Name
                oSQLBackUp.BackupSetDescription = "BackUp " & oDB.Name
                oSQLBackUp.Database             = oDB.Name
                oSQLBackUp.Files                = strFullPath
                oSQLBackUp.TruncateLog          = SQLDMOBackup_Log_Truncate
                oSQLBackUp.Initialize           = True                            '-- Overwrite existing .bak file
                oSQLBackUp.SQLBackup oSQLServer
                '-- zip ".bak" file
                '-- 7z.exe must be in %WINDIR%\system32\
                Dim WshShell
                Set WshShell = WScript.CreateObject("WScript.Shell")
                WshShell.Run "7z.exe a -tzip " & DirDestination & strFileName & ".zip " & strFullPath & " > " & DirDestination & strFileName & ".log",0,1
            End If
        Next
    End If

    '-- Disconnect
    oSQLServer.DisConnect
    oSQLServer.Close

    '-- Destroy SQL Objects
    Set oSQLBackUp = Nothing
    Set oDB        = Nothing
    Set oSQLServer = Nothing

 

Post new comment

Filtered HTML

  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Дозволені теги HTML: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Рядки та параграфи відокремлюються автоматично.

Plain text

  • HTML теґи не відображаються
  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Рядки та параграфи відокремлюються автоматично.
By submitting this form, you accept the Mollom privacy policy.
© rublin.org, 2009 - 2012 Буду вдячний за зворотнє посилання, при використанні матеріалів сайту. Powered by Rublin Team.