¿Hay alguna forma de reducir el tamaño del archivo de volcado de una base de datos Sybase?

StackOverflow https://stackoverflow.com/questions/206787

  •  03-07-2019
  •  | 
  •  

Pregunta

Cuando vuelco una base de datos Sybase, no parece importar si hay datos en las tablas o no, el tamaño del archivo es el mismo. Me han dicho que esto se debe al hecho de que mi archivo de volcado es binario y no lógico, por lo que el archivo del archivo de volcado se basa en el tamaño asignado de la base de datos. Sé que Oracle puede usar archivos de volcado lógico, pero ¿puedo hacer que Sybase haga algo similar, o hay alguna otra forma astuta de reducir el tamaño del archivo de volcado?

¿Fue útil?

Solución

Desde algún lugar cerca de la versión 12, ha podido realizar volcados comprimidos en ASE.

La sintaxis es: dump database database_name a file_name [con compresión = compress_level]

compress_level es 0-9. 0 es sin compresión y 9 es lo máximo. Cuanto más comprima, mayor será el uso de la CPU mientras ejecuta el volcado. Solo necesita realizar algunas pruebas para encontrar el equilibrio adecuado entre tamaño y rendimiento.

No se necesitan comandos especiales para cargar el volcado.

Otros consejos

Si ya está utilizando compress_level 9 y aún desea más compresión, es posible volver a comprimir el archivo con bzip2.

Si simplemente bzip2 el archivo comprimido, obtendrá una mejora de ~ 10%. Si descomprime y vuelve a comprimir, puede ver mejoras en el rango del 30%. Sin embargo, ten en cuenta que tendrás que descomprimir o gzip el archivo nuevamente para que Sybase lo cargue.

gunzip -c pubs_1.dmp | bzip2 > pubs.dmp.bz2

Si bien el enlace (la sintaxis es) es obviamente correcto, ya que apunta a la documentación de Sybase, los comentarios son engañosos.

La sintaxis en formato simple es:

dump database {database_name} a " compress :: {# compress_level} :: {stripe_device} " ir

por ejemplo: dump database mydb to " compress :: 1 :: / sybase_dumps / mydb_17022009 "

En términos de cargar el volcado de la base de datos, la opción :: compress; debe volver a darse.

por ejemplo. cargar la base de datos mydb desde " compresss :: / sybase_dumps / mydb_17022009 "

Observe que no se requiere el nivel de compresión ni los dos puntos de separación adicionales que siguen.

La prueba para encontrar su saldo es un buen punto, recuerde que cuanto más alto vaya, espere que el volcado se prolongue considerablemente. Creo que 1-3 es más que suficiente, nunca he superado los 6, los rendimientos decrecientes no valen la pena.

Si estuviera desesperado, bzip2 el archivo como se describe anteriormente {punto ganado}. Si se tratara de un host de producción, enviaría el archivo a otro host y lo haría. El impacto de los recursos puede ser considerable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top