Cómo hacer copia de seguridad/restaurar una base de datos de Sybase 15 a/desde archivo usando isql.exe (línea de comandos)?

Estoy escribiendo un C# app que iba a llamar a la isql.exe con los argumentos adecuados.

La interfaz que necesito para ajustarse a:

    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);

Ya han implementado esta para MSFT SQL Server 2008. Tienen una gran documentación, tales como: http://technet.microsoft.com/en-us/library/ms186865.aspx

Se me ocurrió maneras de hacerlo (para 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;

Y lo llaman así (archivo por lotes de Windows sintaxis):

sqlcmd -E -S %SERVERNAME% -U %USER% -P %PASSWORD% -d master -Q "%SQL_BACKUP_CMD%"

No he sido capaz de encontrar mucho en internet sobre cómo hacer esto para SyBase.

EDICIÓN:

Que ahora puedo hacerlo desde la línea de comandos. Primero creo un archivo llamado syb_bak.sql contiene:

dump database mydb to "D:\Temp\mydb.bak"
go
exit

Luego me llaman en la línea de comandos en una de dos maneras:

isql.exe -S {serverAlias} -U {user} -P {password} -i syb_bak.sql
isql.exe -S {serverAlias} -U {user} -P {password} < syb_bak.sql

Opcionalmente puedo usar el -o bandera de salida o redirigir > a tomar la salida.

Todo funciona muy bien, excepto que, para mi sorpresa, el archivo de copia de seguridad está siendo objeto de dumping en el lado del servidor y no del cliente.

1 Kommentar

  1. 3

    De volcado de base de datos de comando

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

    f.e.

    de volcado de base de datos DB a «/dev/nrmt0» con init

    Restaurar la base de datos de

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

    f.e.

    de carga de la base de datos DB de «/dev/nrmt0»

    • Esta es una gran referencia, Tovarisch! Si yo soy el dumping a un archivo en el disco en lugar de una unidad de cinta, entonces necesito para utilizar la función «init» opción? Por cierto, estoy haciendo esto en Windows, pero esto probablemente no afectaría a la sintaxis.
    • Volcado a un archivo de volcado de windows base de datos DB a «c:\bakups\db.dat»

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea