Copia de seguridad de MySQL db con Coldfusion
coldfusion-9 (1)
Hacer una copia de seguridad de los archivos de la base de datos es una buena idea, pero si los respalda en la misma unidad, y la unidad falla, está jodido. Realizo una copia de seguridad de mis bases de datos a diario en mi sistema local. Aquí está el script que uso en un archivo .bat
@ECHO OFF
@REM Set dir variables. Use ~1 format in win2k
SET basedir={directory where zip files will be put}
SET workdir={Working directory}
SET mysqldir=c:/PROGRA~1/mysql/mysqls~1.5/bin
SET gzipdir=c:/PROGRA~2/GnuWin32/bin
SET mysqlpassword={db password}
SET mysqluser={db user}
SET host={host IP or domain name}
for /f "tokens=1-4 delims=/ " %%a in (''date/t'') do (
set mm=%%a
set dd=%%b
set yy=%%c
)
ECHO Check connection
PING -n 1 %host%|find "Reply from " >NUL
IF NOT ERRORLEVEL 1 goto :SUCCESS
IF ERRORLEVEL 1 goto :END
:SUCCESS
ECHO Connection found, run backup
@REM Change to mysqldir
CD %mysqldir%
@REM dump database. This is all one line
mysqldump -h %host% -u %mysqluser% -p%mysqlpassword% --databases {space delimited list of databases to backup >%workdir%/backup.sql
@REM Change to workdir
CD %workdir%
@REM Zip up database
%gzipdir%/gzip.exe backup.sql
@REM Move to random file name
MOVE backup.sql.gz %basedir%/%yy%_%mm%_%dd%_backup.gz
@REM Change back to base dir
CD %basedir%
:END
ECHO No connection, do not run
Uso el programador de tareas de Windows para ejecutar esto todas las noches. Probablemente podría actualizarlo para eliminar copias de seguridad anteriores.
Deberá asegurarse de tener instalado gzip.
Esto colocará copias de la base de datos en su sistema local; a continuación, uso un servicio de copia de seguridad para hacer una copia de seguridad de las copias de seguridad en otro sistema externo.
Lo que quiero hacer es ejecutar una tarea de respaldo en Coldfusion (probablemente en una tarea programada) que hará una copia de seguridad de la estructura y los datos en una base de datos MySql.
El servidor de alojamiento que uso siempre bloquea el uso de cfexecute por razones de seguridad, así que no puedo usar mysqldump.
p.ej
<cfexecute name="c:/program files/mysql/mysql server 4.1/bin/mysqldump"
arguments="--user=xxx --password=yyy dharma"
outputfile="#expandPath("./ao.sql")#" timeout="30"/>
(De Raymond Camden)
¿Hay alguna otra opción disponible para mí?