Tengo una tarea para construir una plantilla de máquina virtual de desarrollo.
Necesito agregar al servidor las bases de datos MySQL de cada uno de los productos de mi compañía para que los nuevos desarrolladores tengan la capacidad de desarrollar para cada uno de los productos.
La mayoría de las bases de datos son más pequeñas que 1 GB.
Pero tengo algunas bases de datos que son enormes (alrededor de 160G), pero estoy limitado en el tamaño de la plantilla que estoy tratando de crear, y no es razonable agregar una base de datos de 160GB.
Por lo tanto, estoy tratando de encontrar el método correcto para extraer, digamos, los valores del mes pasado de esta enorme base de datos y agregarlos al servidor para que el desarrollador pueda "sentir" cómo es trabajar en esta base de datos.
¿Es posible hacer tal cosa y cómo se hace? ¡Gracias!
Editar:
Desafortunadamente, no hay una opción para un servidor de base de datos principal separado que contendrá todas las bases de datos de desarrollo, tampoco hay un requisito para actualizar los datos regularmente, solo necesito presentar los mismos datos que en los servidores de producción (en un período de tiempo aleatorio) como entorno de sandbox para nuevos desarrolladores.
Esto es extremadamente dependiente del tipo de datos en la base de datos. En algunos casos, puede ser tan fácil como
mientras que en otros casos, es imposible separar esto debido a la estructura de los datos. Al final, probablemente será una mezcla y será muy difícil acertar.
fuente
Recientemente tuvimos la situación de que un cliente quería extraer los últimos 30 días de una base de datos. Si TODAS las tablas tienen el mismo atributo donde puede definir la fecha y hora, puede hacer un
mysqldump --where = 'datetimefield> "2014-06-28"'
pero quería mezclar diferentes tablas con datos antiguos y nuevos. Entonces, ¿no fue una solución para él, pero podría ser una para ti?
fuente