Как выполнить резервное копирование/восстановление базы данных Sybase 15 в/из файла с помощью isql.exe (командная строка)?

Я пишу приложение C#, которое будет вызывать isql.exe с соответствующими аргументами.

Интерфейс, которому мне нужно соответствовать:

    public void Backup(string serverName, string databaseName, string userName, string password, string backupDestinationPath);

    public void Restore(string serverName, string databaseName, string userName, string password, string restoreSourcePath);

Я уже реализовал это для MSFT SQL Server 2008. У них есть отличная документация, например: http://technet.microsoft.com/en-us/library/ms186865.aspx

Я придумал способы сделать это (для SQL Server):

BACKUP DATABASE MY_DB
TO DISK = 'C:\Temp\MY_DB.bak'
WITH INIT, SKIP, NOFORMAT, NOUNLOAD, 
CHECKSUM, STOP_ON_ERROR,
NAME = 'MY_DB.bak',
DESCRIPTION = 'Backup of MY_DB.';

RESTORE DATABASE MY_DB
FROM DISK = 'C:\Temp\MY_DB.bak'
WITH REPLACE, RECOVERY;

И назовите это так (синтаксис командного файла Windows):

sqlcmd -E -S %SERVERNAME% -U %USER% -P %PASSWORD% -d master -Q "%SQL_BACKUP_CMD%"

Мне не удалось найти в Интернете информацию о том, как это сделать для SyBase.

ИЗМЕНИТЬ:

Теперь я могу сделать это из командной строки. Сначала я создаю файл с именем syb_bak.sql, содержащий:

dump database mydb to "D:\Temp\mydb.bak"
go
exit

Затем я вызываю его в командной строке одним из двух способов:

isql.exe -S {serverAlias} -U {user} -P {password} -i syb_bak.sql
isql.exe -S {serverAlias} -U {user} -P {password} < syb_bak.sql

При желании я могу использовать флаг -o или перенаправление вывода > для захвата вывода.

Все отлично работает, за исключением того, что, к моему удивлению, файл резервной копии сбрасывается на стороне сервера, а не клиента.


person Hamish Grubijan    schedule 08.04.2011    source источник


Ответы (1)


Команда создания дампа базы данных

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.commands/html/commands/commands54.htm

f.e.

дамп БД базы данных в "/dev/nrmt0" с инициализацией

Восстановить базу данных

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.commands/html/commands/commands64.htm

f.e.

загрузить БД базы данных из "/dev/nrmt0"

person kolchanov    schedule 08.04.2011
comment
Это отличная ссылка, Товарисч! Если я сбрасываю его в файл на диск, а не на ленточный накопитель, нужно ли мне использовать параметр инициализации? Кстати, я делаю это на Windows, но это, вероятно, не повлияет на синтаксис. - person Hamish Grubijan; 09.04.2011
comment
Дамп в файл базы данных дампа Windows в c:\bakups\db.dat - person kolchanov; 10.04.2011