/sqlpipe

Command-line SQL Server backup utility

Primary LanguageC++OtherNOASSERTION

Текущее состояние - В разработе

SqlPipe: command-line SQL Server backup utility

Утилита для создания резервных копий в STDOUT/STDIN

Использование

Программу необходимо запускать от администратора ОС с привилегией создания резервных копий sysdba

Синтаксис

синтаксис ::= sqlpipe <действие> { <действие> }
<действие> ::= <имя действия> | <параметры действия>
<имя действия> ::= backup | restore
<параметры действия> ::= -sql       <Текст sql команды>
                       | -sqlenv    <Имя переменной содержащей sql команду>
                       | -conn      <Строка соединения с СУБД>
                       | -connenv   <Имя переменной содерж. строку соединения>
                       | -login     <Логин СУБД>
                       | -loginenv  <Имя переменной содерж. Логин СУБД>
                       | -passwd    <Пароль СУБД>
                       | -passwdenv <Имя переменной содерж. Пароль СУБД>

Текст sql команды - В данном случаи это SQL команда содержащая инструкции резервного копирования. Например такая:

BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '${guid}'

${guid} - Подстановочное значение куда при выполнении будет подставлен сгенерированый GUID виртуального устройства.

При каждом выполнении GUID будет новый, в специфике работы VDI интерфейса считается нормальной практикой.

Примеры

Пример 1: Резервное копирование от Администратора ОС

user@TESTVM01 C:\Users\user\Documents\code\sqlpipe\Debug
$ SqlPipe.exe backup -conn "Provider=SQLOLEDB; Data Source=.; Initial Catalog=master; Integrated Security=SSPI;" -sql "BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '${guid}'" > C:\backup\test04.bak
passed sql command: BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '${guid}'
action: backup
created guid: {3222731B-AC0D-4CF6-A89C-B018A04658DA}
prepared sql: BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '{3222731B-AC0D-4CF6-A89C-B018A04658DA}'
target: stdout
connect: Provider=SQLOLEDB; Data Source=.; Initial Catalog=master; Integrated Security=SSPI;
1664512 bytes written

В примере указана SQL команда BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '${guid}'. При выполнеии будет создан GUID равный {3222731B-AC0D-4CF6-A89C-B018A04658DA}, а сама команда будет транслирована в следующую BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '{3222731B-AC0D-4CF6-A89C-B018A04658DA}'

Пример 2: Резервное копирование от Адмнистратора ОС и специального пользователя backup

user@TESTVM01 C:\Users\user\Documents\code\sqlpipe\Debug
$ SqlPipe.exe backup -conn "Provider=SQLOLEDB; Data Source=.; Initial Catalog=master;" -login backup -passwd backuppswd -sql "BACKUP DATABASE [test] TO VIRTUAL_DEVICE = '${guid}'" > C:\backup\test04.ba

Спецификация VDI

Uses SQL Server's Virtual Backup Device Interface as detailed in the SQL Server 2005 Virtual Backup Device Interface (VDI) Specification.