Как сделать резервную копию / восстановить базу данных Sybase 15 в / из файла, используя isql.exe (командная строка)? - PullRequest
2 голосов
/ 08 апреля 2011

Я пишу приложение на 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 отметьте или перенаправьте вывод >, чтобы получить вывод.

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

1 Ответ

3 голосов
/ 08 апреля 2011

Команда дамп базы данных

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

F.E.

сбросить базу данных базы данных в "/ dev / nrmt0" с помощью init

Восстановление базы данных

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

F.E.

загрузка базы данных из "/ dev / nrmt0"

...