2010-03-25 18 views
6

Sé que un volcado SQL es una serie de instrucciones SQL insertadas que reflejan todos los registros dentro de la base de datos. Pero, ¿para qué se usa? ¿Por qué deberíamos volcar los registros de la base de datos? ¿Admite cada base de datos una función de dumping?¿Para qué sirve sql-dump?

Respuesta

14

De forma un tanto extraña, esta es la forma habitual de hacer una copia de seguridad de una base de datos. Copiar los archivos en sí que contienen los datos no es el método habitual de copia de seguridad, por varias razones complicadas.

Todas las bases de datos funcionan de esta manera, o al menos nunca he oído hablar de una que no: todas tienen la posibilidad de exportar un montón de código SQL que, cuando se ejecute, recreará la base de datos en el mismo estado Fue en cuando se inició el vertedero.

Sin embargo, estos diversos formatos son generalmente incompatibles, debido a diferencias sutiles entre los diferentes dialectos de SQL utilizados por los diferentes sistemas de bases de datos. Hay utilidades que pueden convertir algunas de ellas, pero no conozco ninguna 'Rosetta Stone' que maneje todos los casos posibles.

Además de ser el método principal para realizar copias de seguridad de una base de datos, esta técnica también es útil al organizar los datos de las aplicaciones de db entre diferentes servidores, es decir, desde el desarrollo hasta las pruebas de producción.

2

mysqldump produce una representación SQL de los datos para una o más tablas o bases de datos. Como el formato es SQL, se ejecutará en cualquier otro servidor MySQL, independientemente de la arquitectura o la versión principal/secundaria (obviamente, las vistas no funcionarán en 4.x etc., pero en su mayoría es compatible con versiones anteriores).

Hay otra herramienta, mysqlhotcopy, pero como esta herramienta produce archivos binarios, están vinculados a la máquina en la que se han generado y no se pueden usar en ningún otro lado. SQL tiene la ventaja de ejecutarse en cualquier servidor MySQL y ser independiente del mecanismo subyacente de almacenamiento de archivos de la (s) base (s) de datos.

Los dos casos de uso principales para el vertido de SQL son:

  • Copia de seguridad de los datos de base de datos. El SQL se puede leer ("reproducir") en un servidor de base de datos vacío y volverá a crear las tablas y rellenarlas con filas.
  • Migrando los datos a otro servidor. Digamos que está actualizando de MySQL 5.0 a 5.1. Tienes dos máquinas. Utiliza mysqldump para producir un volcado de SQL en la máquina 5.0 y alimentarlo en 5.1.

Hay algunos usos menos comunes. Por ejemplo, se puede tomar una instantánea de SQL de la base de datos de su aplicación para probar la unidad con un estado conocido. También es posible transformar el código SQL en otro dialecto, p. PostgeSQL o SQLite, para transferir sus datos a otra base de datos.

Ha preguntado si otras bases de datos proporcionan la funcionalidad de volcado de SQL. La respuesta es sí en casi todos los casos. PostgreSQL proporciona pg_dump, SQLite tiene un comando .dump, etc.