sql - 如何使用 isql.exe(命令行)将 Sybase 15 数据库备份到文件或从文件恢复?

标签 sql command-line sybase database-backups database-restore

我正在编写一个 C# 应用程序,它将使用适当的参数调用 isql.exe

我需要符合的接口(interface):

    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 标志或输出重定向 > 来获取输出。

一切都很好,除了令我惊讶的是,备份文件被转储到服务器端而不是客户端。

最佳答案

关于sql - 如何使用 isql.exe(命令行)将 Sybase 15 数据库备份到文件或从文件恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5597921/

相关文章:

mysql - 试图弄清楚为什么没有使用索引

windows - 如何从命令行使用 svn+ssh 和 Tortoise SVN

java - 如何将命令行参数作为密码传递给gradle项目?

drawing - 如何在PowerDesigner中隐藏符号编号?

java - 创建返回 jdbc statements.getWarning 的 sybase 存储过程

sql - 在 Golang 中动态创建 PostgreSQL 表

sql - 如何在 sqlite 中使用 like 运算符进行复杂查询

sql - 服务器迁移后从 TFS 和 SQL 中删除 "dead"用户帐户

php - 如何将变量从 php 页面传递到命令行

sql - 名字或姓氏大小写更改查询,不会产生意外后果。