Для чего нужен sql-дамп?

Я знаю, что дамп SQL-это серия инструкций insert SQL, которые отражают все записи внутри базы данных. Но для чего он используется? Почему мы должны сбрасывать записи базы данных? Поддерживает ли каждая база данных функцию демпинга?

2 ответов


Как ни странно, это на самом деле обычный способ резервного копирования базы данных. Копирование самих файлов, которые фактически содержат данные, не является обычным методом резервного копирования по различным сложным причинам.

все базы данных работают таким образом, или, по крайней мере, я никогда не слышал о том, что нет: у всех есть возможность экспортировать кучу SQL-кода, который при выполнении воссоздаст базу данных в том же состоянии, в котором она была, когда дамп был запущен.

эти различные форматы обычно несовместимы из-за тонких различий между различными диалектами SQL, используемыми различными системами баз данных. Есть утилиты, которые могут конвертировать между некоторыми из них, но я не знаю ни одного "Розеттского камня", который обрабатывает каждый возможный случай.

, а также является основным методом резервного копирования базы данных, этот метод также полезен при проведении данных из приложений БД между разными серверами, т. е. от разработки до тестирования производство.


mysqldump создает SQL-представление данных для одной или нескольких таблиц или баз данных. Поскольку формат SQL, он будет работать на любом другом сервере MySQL, независимо от архитектуры или основной/минорной версии (очевидно, представления не будут работать на 4.X и т. д. но он в основном совместим с форвардами).

есть еще один инструмент, mysqlhotcopy, но поскольку этот инструмент создает двоичные файлы, они привязаны к машине, на которой они были созданы, и не могут быть использованы в другом месте. SQL имеет преимущество работы на любом сервере MySQL и не зависит от базового механизма хранения файлов базы данных.

два основных варианта использования для сброса SQL:

  • резервное копирование базы данных. SQL можно прочитать ("воспроизвести") на пустом сервере базы данных, и он будет повторно создавать таблицы и заполнять их строками.
  • перенос данных на другой сервер. Скажем, вы обновляетесь с MySQL 5.0 до 5.1. У вас две машины. Вы используете mysqldump для создания дампа SQL на машине 5.0 и подачи его в 5.1.

есть несколько менее распространенных применений. Например, SQL-снимок базы данных приложения можно использовать для модульного тестирования в известном состоянии. Также можно преобразовать код SQL в другой диалект, например PostgeSQL или SQLite, чтобы перенести данные в другую базу данных.

вы спросили, предоставляют ли другие базы данных функции дампа SQL. Этот ответ: да почти во всех случаях. PostgreSQL предоставляет помощью pg_dump, SQLite имеет и т. д.