Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   nbackup (error fichero ya existe) (https://www.clubdelphi.com/foros/showthread.php?t=93288)

glopez 18-07-2018 10:35:07

nbackup (error fichero ya existe)
 
hola estoy intentando hacer un script para hacer copias de seguridad programadas.
Mi idea es hacer un backup completo a primera hora:
nbackup -U SYSDBA -P masterkey -B 0 "c:\datos.fdb" "c:\datos.nbk"

Y luego ir haciendo backup incrementales cada cierto tiempo (30 min aprox)
nbackup -U SYSDBA -P masterkey -B 1 "c:\datos.fdb" "c:\datos.nbk"

El problema que tengo es que nbackup no sobrescribe el fichero cuando este existe. Es decir solo se ejecuta bien la primera vez. ¿Hay algún parámetro en nbackup para corregir esto?

Casimiro Notevi 18-07-2018 11:00:24

Es que si sobreescribes el primero, te quedas sin nada ;)
Tienes que poner nombres distintos a cada uno.
Si el backup completo es backup.nbk los siguientes serán backup-001.nbk backup-002.nbk etc.
Aunque más cómodo es crearlo mediante la fecha-hora para que quede algo asi:
backup-completo-20180718-105900.nbk
backup-incremental-20180718-110000.nbk
backup-incremental-20180718-113000.nbk
backup-incremental-20180718-120000.nbk
backup-incremental-20180718-123000.nbk
...

Mira esto.

glopez 18-07-2018 11:17:08

Hola Casimiro, no se si me he explicado bien.
Lo que quiero hacer es una rutina todos los dias.
Cuando hago el backup completo a primera hora, no me quedo sin nada. Ya tengo en este fichero la copia de seguridad. y después voy haciendo (solo un incremental) de los cambios del día. Quiero hacerlo así para que sea más rápido.

Ahora mismo lo estoy haciendo con gback pero me tarda bastante tiempo en realizar la copia. Y ralentiza el sistema.

Necesito que el fichero de copias tenga el mismo nombre porque estas copias las subo a la nube mediante un NAS y si son ficheros diferentes tiene que volver a subir los ficheros enteros y no sólo los bloques que han cambiado del archivo.

Casimiro Notevi 18-07-2018 11:58:00

Creo que no has leido en enlace que te he puesto antes, pero resumiendo:
Con nbackup 0 creas un backup completo.
Con nbackup 1 creas un backup incremental con los cambios que han habido desde que se hizo el backup completo.
Por lo tanto, necesitas el backup completo y cada uno de los backups incrementales para luego poder restaurar toda la base de datos.
Ese método (nbackup) tiene sus ventajas y desventajas (como todo), pero a mí no me convence porque si hay algún problema en cualquiera de los backups (total o incrementales) ya no podrás restaurar el backup.

Prefiero usar gbak y hacer backups completos. Que, por cierto, no suelen interferir con el resto de los procesos y los usuarios ni se enteran que se está haciendo. Dices que en tu caso es lento, habría que comprobar el motivo.

glopez 18-07-2018 12:45:48

Hola Casimiro, si he leído el enlace. De hecho ya lo había leído antes de escribir en el foro.
Se que para poder restaurar la base de datos necesito el backup completo y todos son incrementales. Lo que he querido decir es que cuando hago el backup completo a primera hora no necesito los incrementales puesto que este fichero contiene todos los cambios de la BD porque nadie está trabajando.

Quiero aplicar este método porque los backup incrementales apenas me tarda unos segundos en realizarlos y puedo hacerlos muy a menudo. En otros script también hago gbak cuando hay menos carga de trabajo.

Sólo quiero tener dos ficheros
1. Backup completo.nbk (Que se ejecuta antes de empezar a trabajar)
2. Backup incremental.nbk (Va a recoger todos los cambios de ese día)

Al día siguiente se reemplazarían los archivos.

Bueno resumiendo. ¿Hay alguna forma de decirle al nbackup que reemplace el archivo de copias (nbk) si este existe?.

Gracias.

Casimiro Notevi 18-07-2018 13:01:51

Ahora te entendí :D
No, creo que no tiene ningún parámetro para eso, si usas un ".bat" o similar, tendrás que renombrar antes la anterior.
Saludos.


La franja horaria es GMT +2. Ahora son las 04:21:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi