Для чего нужен sql-dump? - PullRequest
       24

Для чего нужен sql-dump?

13 голосов
/ 25 марта 2010

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

Ответы [ 2 ]

24 голосов
/ 25 марта 2010

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

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

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

Этот метод не только является основным методом резервного копирования базы данных, но и полезен при размещении данных приложений БД между различными серверами, т. Е. От разработки до тестирования и производства.

3 голосов
/ 25 марта 2010

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 имеет команду .dump и т. Д.

...