El -10/01/37 13:59, Joel A. Iturra escribió:
Hola,

Te cuento mi idea para resolver un problema similar acá.

Tengo tres diferentes tipos de tablas, unas son de configuración del
sistema, por
ejemplo "ciudades", otras tablas de configuración de producción, por
ejemplo "clientes"
y otras tablas de datos, por ejemplo "facturas" (en mi caso son otras
cosas, pero te
hago ese ejemplo).

Las primeras tablas, tienen que estar si o si en la db de desarrollo.
Las segundas tablas, por asunto de integridad, también están completas
en la DB de desarrollo, pero
son solo miles de registros, no millones.
Y las últimas tablas, que son más de 100 millones de registros, las
tengo particionadas
por meses. Luego solo copio el último mes a la db de desarrollo, lo
que me significa tener muy pocos
datos (en comparación a la DB de producción).

Luego haces el DUMP filtrando todas las tablas de datos y agregando
las que te interesan (
del último mes en mi caso).

Otra opción es simplemente tener un set de datos (bien variado) para
desarrollo, ese set de datos
lo debes ir complementando con cada caso "extraño" con el que te vas
encontrando, pero en mi
experiencia, nada más extraño que la realidad (producción).


Suerte

Joel.


El día 4 de enero de 2011 13:06, Vladimir Damian
<[email protected]>  escribió:
Estimados
Felices fiestas antes que nada.
Tengo una base de datos extremadamente grande y se desea armar una base de
datos para desarrollo y esta debe tener un numero limitado de registros
no se dispone de un backup o politica parecida. y ante la necesidad
expuesta, deseo me orienten en el tema.
me explico:
1. O hacer que todas las tablas solo resguarden ejemplo 1,000 por tabla o
2. Poder determinar la cantidad de registros por cada  tabla.
--
Saludos,
Vladimir Damian
Lima Peru

Hace un tiempo hicimos algo muy parecido.
Tenemos una base de datos donde se concentra toda la información de las demas sucursales ( una tiendas de conveniencia ) y cuando hay que crear una tienda nueva debemos seleccionar solo la información correspondiente para sólo esa tienda. La solución, creamos un script ( bash ) que lo que hace es extraer la estructura de la base de datos.
$NCOM es el nivel de compresión de la db



#Se obtiene el esquema
echo Se obtiene el esquema...
pg_dump -U yepas -h $HOST -C -Fc -s -Z $NCOM ashura > /tmp/estructura_ashura.backup
echo Se obtiene esquema para migracion...
# cargando el esquema
echo Creando Esquema en la maquina Objetivo...
pg_restore -C -s -h $HOSTDESTINO -U yepas -d postgres /tmp/estructura_ashura.backup
echo Creando Esquema de migracion en la maquina objetivo...

Luego creamos tablas temporales, que llenamos con la informacion necesaria, aqui es donde delimitarias los datos o filtrarlos segun tus necesidades.

echo Obteniendo datos de la tabla Compras Tienda...
psql -U yepas -h $HOST -d ashura -c "BEGIN;create temp table compras_tienda_$SUCURSAL as select compras_tienda.id_compra,compras_tienda.id_proveedor,compras_tienda.id_sucursal,compras_tienda.fecha_generada,compras_tienda.fecha_Factura,compras_tienda.fecha_recepcion,compras_tienda.id_empleado_recibe,compras_tienda.fecha_cancelacion,compras_tienda.id_empleado_cancela,compras_tienda.folio_factura,compras_tienda.folio_remision,compras_tienda.total_factura_sin_impuesto,compras_tienda.total_impuesto_factura,compras_tienda.total_factura_con_impuestos,compras_tienda.observaciones,compras_tienda.aplicado,compras_tienda.id_contrarecibo,compras_tienda.numero_cheque,compras_tienda.id_estatus,compras_tienda.id_orden_compra_tienda,compras_tienda.sincronizado from compras_tienda join ordenes_compra_tienda on(compras_tienda.id_sucursal=ordenes_compra_tienda.id_sucursal and compras_tienda.id_orden_compra_tienda=ordenes_compra_tienda.id_orden_compra_tienda) where ordenes_compra_tienda.id_sucursal=$SUCURSAL and ordenes_compra_tienda.fecha_genera between '$(date -d "1 year ago" +%Y/%m/%d)' and '$(date +%Y/%m/%d)';copy compras_tienda_$SUCURSAL to '/tmp/compras_tienda.backup';ROLLBACK;"
echo Termino extraccion de la tabla Compras Tienda

Al final poblamos la tabla con los datos respaldados

echo Poblando Tabla Compras Tienda...
psql -U yepas -h $HOSTDESTINO -d ashura -c "copy compras_tienda from '/tmp/compras_tienda.backup';"
echo Poblado Terminado

Saludos

ISC Manuel Alejandro Estévez Fernández

Responder a