【问题标题】:How to backup/restore a Sybase 15 database to/from file using isql.exe (command line)?如何使用 isql.exe(命令行)在文件中备份/恢复 Sybase 15 数据库?
【发布时间】:2011-04-08 16:15:32
【问题描述】:

我正在编写一个 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 标志或输出重定向&gt; 来获取输出。

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

【问题讨论】:

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


    【解决方案1】:

    【讨论】:

    • 这是一个很好的参考,Tovarisch!如果我将它转储到磁盘上的文件而不是磁带驱动器上,那么我需要使用“init”选项吗?顺便说一句,我在 Windows 上这样做,但这可能不会影响语法。
    • Dump to file on windows dump database DB to "c:\bakups\db.dat"
    猜你喜欢
    • 2013-05-31
    • 2011-02-13
    • 1970-01-01
    • 2017-03-09
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 2012-06-14
    相关资源
    最近更新 更多