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

#sql #command-line #sybase #database-backups #database-restore

#sql #командная строка #sybase #база данных-резервные копии #база данных-восстановление

Вопрос:

Я пишу приложение на 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:TempMY_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:TempMY_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:Tempmydb.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:

Команда Dump database

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

например.

дамп базы данных DB в «/dev/nrmt0» с инициализацией

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

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

например.

загрузить базу данных DB из «/dev/nrmt0»

Комментарии:

1. Это отличная ссылка, товарищ! Если я сбрасываю ее в файл на диске, а не на ленточном накопителе, нужно ли мне использовать опцию «инициализация»? Кстати, я делаю это в Windows, но это, вероятно, не повлияет на синтаксис.

2. Дамп в файл в Windows дамп базы данных DB в «c:bakupsdb.dat »