#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
например.
дамп базы данных DB в «/dev/nrmt0» с инициализацией
Восстановить базу данных
например.
загрузить базу данных DB из «/dev/nrmt0»
Комментарии:
1. Это отличная ссылка, товарищ! Если я сбрасываю ее в файл на диске, а не на ленточном накопителе, нужно ли мне использовать опцию «инициализация»? Кстати, я делаю это в Windows, но это, вероятно, не повлияет на синтаксис.
2. Дамп в файл в Windows дамп базы данных DB в «c:bakupsdb.dat »