isql.exe
適切な引数を使用してを呼び出すC#アプリを作成しています。
準拠する必要のあるインターフェース:
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);
私はすでにこれをMSFTSQLServer 2008に実装しています。次のような優れたドキュメントがあります:http ://technet.microsoft.com/en-us/library/ms186865.aspx
私はそれを行う方法を思いついた(SQLServerの場合):
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
次に、コマンドラインで次の2つの方法のいずれかで呼び出します。
isql.exe -S {serverAlias} -U {user} -P {password} -i syb_bak.sql
isql.exe -S {serverAlias} -U {user} -P {password} < syb_bak.sql
オプションで、-o
フラグまたは出力リダイレクトを使用して出力>
を取得できます。
驚いたことに、バックアップファイルがクライアントではなくサーバー側にダンプされていることを除いて、すべてがうまく機能しています。