Я знаю, что дамп SQL является серией SQL-операторов вставки, которые отражают все записи в базе данных. Но для чего это используется? Почему мы должны вывести записи базы данных? Каждая поддержка БД функция дампа?
Как ни странно, это обычный способ резервного копирования базы данных. Копирование самих файлов, которые фактически содержат данные, не является обычным методом резервного копирования по разным сложным причинам.
Все реляционные базы данных работают таким образом, или, по крайней мере, я никогда не слышал о такой, которая не работает: все они имеют возможность экспортировать кучу кода SQL, который при выполнении воссоздает базу данных в том же состоянии. это было при запуске дампа.
Однако эти различные форматы обычно несовместимы из-за тонких различий между различными диалектами SQL, используемыми различными системами баз данных. Существуют утилиты, которые могут преобразовывать некоторые из них, но я не знаю ни одного «Розеттского камня», который обрабатывал бы все возможные случаи.
Помимо того, что этот метод является основным методом резервного копирования базы данных, он также полезен при промежуточном размещении данных приложений БД между разными серверами, то есть от разработки до тестирования и производства.
mysqldump создает SQL-представление данных для одной или нескольких таблиц или баз данных. Поскольку форматом является SQL, он будет работать на любом другом сервере MySQL, независимо от архитектуры или основной / вспомогательной версии (очевидно, что представления не будут работать на 4.x и т. Д., Но в основном он совместим с продвижением вперед).
Существует еще один инструмент, mysqlhotcopy , но поскольку этот инструмент создает двоичные файлы, они привязаны к машине, на которой они были созданы, и не могут использоваться где-либо еще. Преимущество SQL заключается в том, что он работает на любом сервере MySQL и не зависит от базового механизма хранения файлов баз данных.
Два основных варианта использования дампа SQL:
Есть несколько менее распространенных применений. Например, моментальный снимок SQL базы данных вашего приложения может быть использован для модульного тестирования по известному состоянию. Также возможно преобразовать код SQL в другой диалект, например PostgeSQL или SQLite для переноса ваших данных в другую базу данных.
Вы спросили, предоставляют ли другие базы данных функцию дампа SQL. Ответ положительный почти во всех случаях. PostgreSQL предоставляет pg_dump , SQLite имеет команду .dump
и т. Д.