2

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フラグまたは出力リダイレクトを使用して出力>を取得できます。

驚いたことに、バックアップファイルがクライアントではなくサーバー側にダンプされていることを除いて、すべてがうまく機能しています。

4

1 に答える 1

4

データベースのダンプコマンド

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

fe

initを使用してデータベースDBを「/dev/nrmt0」にダンプします

データベースを復元する

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

fe

「/dev/nrmt0」からデータベースDBをロードします

于 2011-04-08T19:20:28.767 に答える