10 maneras de hacer copia de tu mysql – método 1
Relay | marzo 16, 2009El método 1: Copiar automáticamente la base de datos a Amazon S3
Mucho usuarios hoy en día usan las capacidades de Amazon S3 para realizar las copias de mysql. Aquí tenemos un pequeño script que, aparte de realizar la copia, se encarga de subirlo a Amazon S3 (en django).
Cosas a cambiar antes de usar dicho script:
1) Hay que poner la libreria de Amazon S3 propia para python en el path del sistema (para que sea visible). Podeis bajar dicha libreria en este link: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=134
2) Hay que mantener el script mysql_to_amazons3.py en el mismo directorio que settings.py.
3) Definir las siguientes variables en el fichero settings.py
- MYSQL_DUMP_PATH= “/usr/bin/mysqldump”
mysqldump es el comando con el que se hace la copia (se hace un volcado realmente) de la base de datos.Hay que darle todo el path al ejecutable.
- AWS_ACCESS_KEY_ID = ”
Esto es la clave para acceder a los servicios de Amazon. Esto se da tras darse de alta.
- AWS_SECRET_ACCESS_KEY = ”
La secret key (o password) que también da Amazon para poder acceder.
- BUCKET_NAME = ‘tempstore’
El nombre del contenedor donde guardar el fichero final de copia. Bucket es básicamente un contenedor (al pagar a Amazon S3 por el espacio ocupado, crear contenedores vendría a ser como crear directorios/carpetas).
- ARCHIVE_NAME = » «
Nombre del fichero final que se va a guardar.
- Hay que cambiar las variables DATABASE_NAME , DATABASE_USER y DATABASE_PASSWORD
para que contengan los valores de la base de datos a copiar, y el usuario y contraseña para poder hacer dicha copia.
Ejecutando el script:
- Basta con ejecutar ‘python mysql_to_amazons3.py’ (sin comillas) para que se haga la copia y se suba a la cuenta de Amazon, con el nombre de fichero definido en el ‘contenedor’ designado.
- El script deja una copia de la base de datos que se ha enviado en el directorio donde se encuentra dicho script.
- El archivo contiene dos ficheros: _data.sql que contiene los datos, _struct.sql que contiene la estructura básica de la abse de datos. Esto se ha hecho intencionadamente, es una buena práctica.
- Si se quiere hacer una tarea programada, lo mejor es usar crontab –e con el usuario que quiera lanzarlo para hacer la definicion.
¿Cual es el flujo de trabajo del script?
1.Usa subprocesos. Básicamente, usa la función Popen (pipe open) para ejecutar varios comandos (mysqldump – – – ).
2. Se lee la salida de estas tuberias para crear el fichero .tar.gz
3. Usa la API de Amazon S3 para subir el fichero.
Via | Uswaretech
[...] Anterior método - Siguiente método [...]
Para colores, 32 Bits » 10 maneras de hacer copia de tu mysql - método 2 | marzo 18, 2009[…] Anterior método – Siguiente método […]