Backup Access Database Diariamente / Semanalmente

Tenemos una base de datos de Microsoft Access dividida en backend / frontend. Lo que estoy buscando es poder hacer una copia de seguridad automática de estos archivos diaria o semanalmente. ¿Cuál es la mejor manera de hacerlo? No queremos tener que preocuparnos por las copias de seguridad de la base de datos, solo sepa que se está produciendo automáticamente en un horario.

Gracias.

Respuesta

(Tomando prestado de mi respuesta anterior aquí …)

re: realizar realmente la copia de seguridad

Hacer una copia de seguridad de una base de datos nativa de Access es simplemente una cuestión de copiar todo el archivo de la base de datos ( .mdb para Access_2003 y anteriores, .accdb para Access_2007 y posteriores). Cualquier lenguaje de programación funcionaría, incluso un simple archivo por lotes de Windows que haga algo como

copy /Y d:\apps\databases\mydatabase.accdb z:\backups\databases\*.* 

re: programación automática de la copia de seguridad

El programador de tareas de Windows podría encargarse de eso por usted Una vez que haya creado su secuencia de comandos para copiar los archivos de la base de datos, puede crear una tarea programada para ejecutarla periódicamente. Consulte el artículo de MSDN Uso del Programador de tareas (Windows) para obtener más información.

Comentarios

  • que ' es básicamente lo que ' m después. ¿Hay algún problema con la división de la base de datos en frontend / backend? ¿Qué sucede si ' está en uso en el momento de la copia de seguridad? Gracias.
  • [1] re: frontend / backend: el archivo de backend es el que cambia constantemente, de modo que ' es el que necesita (más ) copias de seguridad periódicas. [2] re: file (puede estar) en uso – No hay una respuesta simple para eso. Las bases de datos de archivos compartidos no tienen las mismas ventajas que las bases de datos cliente-servidor en ese sentido.
  • ¿Qué significa esto? ¿Es posible copiarlo mientras está en uso?
  • @Parhs Sí, es posible copiar un archivo de base de datos de Access mientras está en uso (a menos que se haya abierto como exclusivo). Sin embargo, copiar cualquier archivo mientras está en uso activo generalmente no es una buena idea.
  • @Parhs Si bien es muy poco probable que el archivo de origen (original) se corrompa, es posible que el archivo de destino no sea una copia de seguridad confiable si se escribieran en el archivo de origen mientras se estaba copiando.

Respuesta

Puede escribir un sub para hacer una copia de seguridad de la base de datos en una carpeta específica y ejecutar este sub cuando se inicia la base de datos. Hay muchas formas de hacer esto, pero yo personalmente uso las siguientes:

Function fMakeBackup() As Boolean Dim Source As String Dim Target As String Dim retval As Integer Source = CurrentDb.Name Target = "Z:\My Apps\Backups\YourFielName" Target = Target & Format(Date, "mm-dd") & " " Target = Target & Format(Time, "hh-mm") & ".accdb" " create the backup retval = 0 Dim objFSO As Object Set objFSO = CreateObject("Scripting.FileSystemObject") retval = objFSO.CopyFile(Source, Target, True) Set objFSO = Nothing End Function 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *