Skip to content

kinjalgor/BackupUtility

 
 

Repository files navigation

BackupUtility

Консольные утилиты для работы с бэкапами баз данных MS SQL Server.
Работают под .Net 2.0 и выше

SqlBackUpper.exe

Выполнение запросов к базам данных MS SQL Server для создания резервных копий
  1. Работа с СУБД MS SQL Server
  2. Работа с конфигурационным .xml файлом. По-умолчанию ищется в рабочем каталоге с именем приложения и расширением ".cfg". Также полное имя конфигурационного файла можно задать в качестве аргумента. При отсутствии конфиг.файла - работа программы прекращается. Формат описания:
        <Config [Атрибуты]>
         <Connection [Атрибуты]> 
         <Connection [Атрибуты]>
          ...
        </Config>
      

    Корневой тег Config - задание основных настроек. Атрибуты:

    • BackupNameMask (необязательный) - маска для формирования имени создаваемого бэкапа. Обязательно должна содержать местозаполнитель с индексом 0 ("{0}") для вставки текущей даты и времени. Значение по-умолчанию - "_{0:dd-MM-yyyy_HH-mm-ss}.bak"
    • ConnectionMask (необязательный) - маска для формирования строки подключения к определенному серверу и базе данных. Обязательно должна содержать местозаполнители с индексами 0-6 для вставки параметров подключения. Значение по-умолчанию - "Data Source={0};Initial Catalog={1};User ID={2};Password={3};Integrated Security={4};Persist Security Info={5};Trusted_Connection={6};"
    • ConnectionGroupMask (необязательный) - маска для формирования строки подключения к определенному серверу (используется, если UniteSameInst=True). Обязательно должна содержать местозаполнители с индексами 0-5 для вставки параметров подключения. Значение по-умолчанию - "Data Source={0};User ID={1};Password={2};Integrated Security={3};Persist Security Info={4};Trusted_Connection={5};"
    • SqlQueryMask (необязательный) - маска для формирования строки запроса к БД на создание бэкапа. Обязательно должна содержать местозаполнители с индексами 0-3 для вставки имени БД (BaseName), пути к хранищу (BackupPath) и имени файла бэкапа соответственно (BackupNameMask). Значение по-умолчанию - "BACKUP DATABASE [{0}] TO DISK = N'{1}\\{2}' WITH NOFORMAT, INIT, NAME = N'{3} - Full backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
    • Timeout (необязательный) - максимальное время в секундах, выделенное на выполнение запроса. Значение по-умолчанию - "30"
    • UniteSameInst (необязательный) - переключатель, необходимо ли группировать запросы к одинаковым серверам. Значение по-умолчанию - False
    • LogPath (необязательный) - путь для создания log-файла. По-умолчанию - ".\" (путь к рабочему каталогу)
    • MaxLogs (необязательный) - максимальное количество хранимых на диске (по указанному пути в LogPath) log-файлов. Удаляются лишние - наиболее старые. Поиск и удаление происходит по маске "*.log". Значение по-умолчанию - '5'.
    • WindowStyle (необязательный) - стиль отображения консольных окон приложения и 7-zip. Возможные значения: Hidden (по-умолчанию), Normal, Maximized, Minimized
    • ReadKeyInFinish (необязательный) - переключатель того, необходимо ли ожидать от пользователя нажатия любой клавиши клавиатуры перед завершением программы. Возможные значения: True (по-умолчанию), False. Действует только при WindowStyle = Normal | Maximized

    Тег Connection - задание экземпляра соединения с базой данных и выполнения запроса на создание бэкапа. Могут задаваться несколько тегов Connection. Атрибуты:
    • InstName (обязательный) - имя целевого сервера
    • BaseName (обязательный) - имя целевой БД
    • UserName (обязательный) - имя учетной записи для подключения к серверу
    • Password (обязательный) - пароль
    • BackupPath (необязательный) - путь к хранилищу - каталогу назначения. Если заданный путь отсутствует, программа создает его автоматически. Значение по-умолчанию - ".\" (путь к рабочему каталогу)
    • MaxBackups (необязательный) - максимальное количество хранимых на диске (по указанному пути в BackupPath) бэкапов. Удаляются лишние - наиболее старые. Поиск и удаление происходит по маске "<BaseName>*". Значение по-умолчанию - '5'.

    Примечание: Имя создаваемого файла бэкапа для каждого экземпляра Connection формируется как: BaseName + BackupNameMask

    Пример:

        <Config
          BackupNameMask="_{0:dd-MM-yyyy_HH-mm-ss}.bak" 
          SqlQueryMask="BACKUP DATABASE [{0}] TO  DISK = N'{1}\\{2}' WITH NOFORMAT, INIT,  NAME = N'{3} - Full backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10"
          Timeout="30"
          UniteSameInst="true"
          LogPath=".\" 
          MaxLogs="3" 
          WindowStyle="Normal" 
          ReadKeyInFinish="true" >
             <Connection InstName="(localdb)\V11.0" BaseName="master" UserName="" Password="" BackupPath="D:\Backup1\" MaxBackups="3"/>
             <Connection InstName=".\SQLExpress" BaseName="model" UserName="gee12-PC\gee12" Password="" BackupPath="D:\Backup2\" MaxBackups="5"/>
        </Config>
      
  3. Для работы необходима библиотека BackupLibrary.dll

BackupArchiver.exe

Запуск 7-zip с необходимыми аргументами для архивирования резервных копий БД (или других файлов в целевом каталоге) в хранилище
  1. Работа с архиватором 7-zip (необходимо наличие установленного 7-zip)
  2. Работа с конфигурационным .xml файлом (см.пункт 1 в SqlBackUpper.exe). Формат описания:
        <Config [Атрибуты]>
         <Folder [Атрибуты]> 
         <Folder [Атрибуты]>
          ...
        </Config>
      

    Корневой тег Config - задание основных настроек. Атрибуты:

    • ZipPath (необязательный) - путь к каталогу с 7-zip. Небходимо наличие 7z.exe, 7z.dll и 7-zip.dll. По-умолчанию ищет в рабочем каталоге, 'C:\Program Files\' или в 'C:\Program Files (x86)\'
    • ZipArgs (необязательный) - аргументы для 7-zip. Значение по-умолчанию - "a -tzip -y"
    • TailMask (необязательный) - маска для формирования "хвостовой" части имени создаваемого архива. Обязательно должна содержать местозаполнитель с индексом 0 ("{0}") для вставки текущей даты и времени. Значение по-умолчанию - "{0:dd-MM-yyyy_HH-mm-ss}.zip"
    • LogPath (необязательный) - см.пункт 1 в SqlBackUpper.exe
    • MaxLogs (необязательный) - см.пункт 1 в SqlBackUpper.exe
    • WindowStyle (необязательный) - см.пункт 1 в SqlBackUpper.exe
    • ReadKeyInFinish (необязательный) - см.пункт 1 в SqlBackUpper.exe

    Тег Folder - задание целевого каталога и хранилища. Могут задаваться несколько тегов Folder. Атрибуты:
    • SourcePath (обязательный) - путь к целевому каталогу. Если заданный путь отсутствует, текущий Folder не обрабатывается
    • DestPath (необязательный) - путь к хранилищу - каталогу назначения. Если заданный путь отсутствует, 7-zip создаст его автоматически. Значение по-умолчанию - ".\" (путь к рабочему каталогу)
    • HeadMask (необязательный) - маска для формирования "головной" части имени создаваемого архива. Значение по-умолчанию - "Backup"
    • MaxArchives (необязательный) - максимальное количество хранимых на диске (по указанному пути в DestPath) архивов. Удаляются лишние - наиболее старые. Поиск и удаление происходит по маске "<HeadMask>*". Значение по-умолчанию - '5'.

    Примечание: Имя создаваемого файла архива для каждого экземпляра Folder формируется как: HeadMask + TailMask

    Пример:

        <Config 
          ZipPath="C:\Program Files\7-Zip\" 
          TailMask="{0:dd-MM-yyyy_HH-mm-ss}.zip" 
          ZipArgs="a -tzip -y" 
          LogPath="D:\" 
          MaxLogs="3" 
          WindowStyle="Normal" 
          ReadKeyInFinish="true">
                <Folder HeadMask="backup1_" 	 SourcePath="C:\Backup1" 	DestPath="D:\Archive1" MaxArchives="3" />
                <Folder HeadMask="backup2_" 	 SourcePath="D:\Backup2" 	DestPath="D:\Archive2" MaxArchives="10" />
        </Config>
      
  3. Для работы необходима библиотека BackupLibrary.dll

About

Console utilities for work with database backup's

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%