Autor(es): | Leonardo J. Caballero G. |
---|---|
Correo(s): | leonardocaballero@gmail.com |
Lanzamiento: | 0.1 |
Fecha: | 16 de Feb del 2013 |
Compactar la ZODB remueve las versiones de objetos viejos. Similar a un VACUUM en PostgreSQL.
Todo
Terminar este concepto.
Para esto utilizaremos configuraciones para programar tareas con crontab para el compactación de la ZODB.
A continuación se describen dos ejemplos útiles:
Si tu instalación es una Zope standalone y estas usando zc.buildout debes crearte un script que cada cierto tiempo realice tareas de compactar la ZODB, a continuación un ejemplo de configuración:
# Pack once a month
[zodbpack]
recipe = collective.recipe.template
output = ${buildout:bin-directory}/zodbpack
mode = 600
input = inline:
wget -O/dev/null -q --post-data='days:float=10' --user=admin --password=admin http://localhost:8080/Control_Panel/Database/main/manage_pack
# Pack once a month
[packups]
recipe = z3c.recipe.usercrontab
times = 0 0 1 * *
command = ${buildout:bin-directory}/bin/zodbpack
Si tu instalación es un ZEO Cluster y usando zc.buildout puede usar el script llamado zeopack que ofrece esta instalación para que cada cierto tiempo realice tareas de compactar la ZODB, a continuación un ejemplo de configuración:
Truco
Un script zeopack sera generado para usted en el directorio bin del proyecto buildout, a menos que usted cambien eso con la opción zeopack-script-name, en este caso el script sera llamado como el nombre que usted especifique en este parámetro.
[backup]
recipe = collective.recipe.backup
# Backup daily
[backups]
recipe = z3c.recipe.usercrontab
times = 0 0 * * *
command = ${buildout:bin-directory}/bin/backup
# Pack once a month
[packups]
recipe = z3c.recipe.usercrontab
times = 0 0 1 * *
command = ${buildout:bin-directory}/bin/zeopack
Truco
Si le gustaría usar este script para compactar un punto de montaje diferente, usted necesitara especificar el parámetro -S nombre_punto_montaje. Usted puede especificar la opción -B para no usar el por defecto directorio blob.
Existe otra forma de realizar tareas de compactar la ZODB automáticamente sin usar tareas crontab.
Para esto agregue el producto Products.ClockServer en su seccion egg en su archivo buildout.cfg.
Además agregue la siguiente configuración en la sección instance en su archivo buildout.cfg como se muestra a continuación:
zope-conf-additional =
<clock-server>
method /pack_it_all
period 86400
user admin
password password
host localhost
</clock-server>
Ejecute de nuevo el buildout y luego inicie el servidor Zope, entonces diríjase al raíz de Zope desde la ZMI, y cree un “Script(Python)” con el id pack_it_all y agregue en su contenido algo como esto:
dbs = context.Control_Panel.Database
names = dbs.getDatabaseNames()
for name in names:
if name != 'temporary':
dbs[name].manage_pack(days=3)
print "packed %s" % name
return printed
Con esto se compactara la ZODB cada tres días.
El código fuente de este archivo esta hospedado en GitHub. Todos pueden actualizar y corregir errores en este documento con unos clic - sin necesidad de descargar.
Para mas información básica acerca de como actualizar este manual y referencia a sintaxis Sphinx, por favor consulte la guía Escribiendo y actualizando el manual.