Дамп базы данных - блог кодера. Экспорт и импорт дампа базы данных Oracle с помощью утилит expdp и impdp

Перед восстановлением SQL дампа. все пользователи, которые владеют объектами или имеют права на объекты в базе данных, выгруженной в дамп, должны уже существовать. Если их нет, при восстановлении будут ошибки пересоздания объектов с оригинальными владельцами и/или правами. (Иногда, это и есть то, что вы хотите, но обычно нет). По умолчанию, если произойдёт ошибка SQL, программа psql продолжит своё выполнение. Вы можете захотеть запустить psql с установленной переменной ON_ERROR_STOP , чтобы изменить такое поведение и заставить psql выйти с кодом выхода 3, в случае возникновения ошибки SQL: psql --set ON_ERROR_STOP=on имя_БД < файл_дампа

В любом случае, у вас будет только частично восстановленная база данных. В качестве альтернативы, вы можете указать, что весь дамп должен быть восстановлен в одну транзацию, так что восстановление или будет полностью выполненно или полностью не выполнено. Данный режим может быть задан, с помощью опций командной строки -1 или --single-transaction для psql . Когда используется этот режим, будьте осторожны, даже маленькая ошибка может привести к откату процесса восстановления, который длится уже несколько часов. Однако, это может быть предпочтительней, чем ручная очистка сложной базы данных, после частично восстановленного дампа.

Возможность pg_dump и psql писать и читать из конвееров, делают возможным создание дампа базы данных напрямую с одного сервера на другой, например: pg_dump -h сервер1 имя_БД | psql -h сервер2 имя_БД

Important: Дампы, которые делает pg_dump являются относительными template0 . Это означает, что любые языки, процедуры и т.д. добавленные через template1 , также попадут в дамп при выполнении pg_dump . В итоге, при восстановлении, если вы использовали специально изменённый template1 , вы должны создать пустую базу данных из template0 , как показано в примере выше.

После восстановления резервной копии, мудрым будет запустить ANALYZE на каждую базу данных, чтобы оптимизатор запросов получил нужную статистику; подробности см. в see Section 23.1.3 и в Section 23.1.5 . Для того, чтобы узнать больше о том как эффективно загружать большие объёмы данных в PostgreSQL , см. Section 14.4 .

Для очень больших баз данных, вам может понадобиться сочетать split с одним из двух других методов.

/ mysql: как сделать дамп через консоль (терминал)

mysql: как сделать дамп через консоль (терминал)

Для бэкапа баз можно воспользоватся утилитой mysqldump. Она сделает дамп базы mysql в текстовый файл.

mysqldump -uuser -ppasswd -f database_name > dump.sql

Этой командой мы делаем бэкап базы данных под именем database_name в файл dump.sql

Еще несколько вариантов:

mysqldump -uuser -ppasswd -f --default-character-set=utf8 database_name | gzip -c > filename.sql.gz

Если нужно автоматизировать удаление старых архивов, можно воспользоваться cron и командой find. Запуская периодически

find ~/каталог-с-архивами -name "*.gz" -mtime +7 -exec rm -f {} ;

Тем самым Вы будете удалять архивы, которые "старше" 7 дней.

Несколько полезных параметров mysqldump:

Databases позволяет сделать так, что mysqldump включит в сценарий восстановления команды CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME и USE DBNAME. Это позволит создавать рабочие базы "с нуля". То есть, без использования --databases подразумевается, что пользователь восстанавливает одну базу данных и явно указывает, куда нужно помещать восстанавливаемые данные. Если же backup mysql создается с целью сделать полностью рабочую копию данных, например, на другом MySQL-сервере, то нужно использовать этот ключ;

All-databases позволяет сделать backup всех баз данных, которые существуют на данном MySQL-сервере. Если же нужно сделать копии только некоторых баз, нужно просто указать их через пробел при вызове mysqldump из командной строки (см. выше);

Add-drop-table - ключ, который заставит mysqldump добавлять в итоговый сценарий команду drop table перед созданием таблиц. Это позволит избежать некоторых ошибок при восстановлении базы из резервной копии. Конечно, нужно учитывать то, что таблицы, находящиеся в рабочей копии (если таблицы с таким же именем существуют в backup), перед восстановлением из резервной копии будут удалены из основной базы и пересозданы из backup;

No-data. С помощью этого ключа можно быстро сделать копию структуры таблицы/баз без самих данных. Например, Вы создали сложную таблицу и хотели бы сохранить на будущее ее структуру, а сами данные, которые находятся в этой таблице, Вам в резервной копии не нужны;

Восстановление из бэкапа

mysql -uroot -p --database DB --default-character-set=UTF-8

Оптимизация и обслуживание базы mysql

Есть и очень ленивая версия процесса, обработает все MyISAM таблицы во всех БД, доступных указанному пользователю и работает без остановки сервера MySQL:

mysqlcheck -u root -p --optimize --all-databases

Или в конкретной БД:

mysqlcheck -u root -p --optimize имя_базы_данных

Без оптимизации, только проверку и ремонт можно сделать и для таблиц типа InnoDB:

mysqlcheck -u root -p --auto-repair --check --all-databases

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

Следовательно, умение делать дамп базы данных MySQL немаловажно для любого веб-разработчика. Что это такое? Это файл, содержащий инструкции на языке SQL, за счет которых создается точная копия вашей БД как по содержанию, так и по структуре. Для каких ситуаций вам стоит сделать дамп базы MySQL:

  • Перенос БД на другой сервер

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

  • Резервное копирование базы данных

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

Как сделать дамп базы MySQL?

Существуют различные способы создания дампа, и далее мы рассмотрим основные варианты:

  • Делаем дамп при помощи консоли MySQL

В этом случае для создания дампа БД используется командная строка или консоль MySQL, где нужно ввести команду mysqldump -uuser -ppass db_name > file_to_save. При этом user - это имя пользователя БД с достаточными правами для создания дампа, pass - пароль от базы данных, db_name - имя нужной БД, а вместо file_to_save необходимо указать имя файла, куда будет сохраняться дамп.

После правильно введенной команды в указанном месте появится файл с расширением.sql, который и является дампом базы данных. Этот способ наиболее универсален и популярен среди пользователей Unix-систем, например, Ubuntu, если вдруг потребуется перенос MySQL на другой сервер. В том же случае, если вы не знаете консольных команд, вам потребуется дополнительное программное обеспечение.

  • Делаем дамп базы данных при помощи phpMyAdmin

Если вы предпочитаете использовать дополнительное программное обеспечение, то можно сделать дамп базы данных средствами PHP при помощи, например, phpMyAdmin. Для этого выполните следующие действия:

  1. Войдите в phpMyAdmin.
  2. Выберите нужную базу данных из общего списка.
  3. Авторизуйтесь в выбранной БД.
  4. После авторизации в левой колонке будет сама база данных и служебная информация, которая к ней относится. Теперь вам нужно повторно выбрать вашу БД.
  5. Перейдите во вкладку "Экспорт", после чего включите некоторые настройки, а именно:

    Добавить DROP TABLE/VIEW/PROCEDURE/FUNCTION/EVENT

    Данная опция позволит вам в дальнейшем без опаски восстановить базу MySQL из дампа. Все таблицы, имеющие одинаковые имена, сначала будут удалены, то есть исполнится команда dpop, а затем заменятся на аналогичные из вашего дампа. В итоге вы обезопасите себя от создания дублей таблиц и как следствие, неправильной работы базы данных.

    Упаковать zip

    Включение этой опции обеспечит архивацию вашего дампа БД, и в итоге вы получите файл с расширением.zip. Это позволит вам быстро и корректно сохранить дамп даже при невысокой скорости соединения.

  6. Получаете готовый к использованию дамп БД. Если все было правильно сделано, то у вас будет архив, внутри которого находится файл с расширением.sql - дампом нужной вам базы данных.

Теперь вы знаете, как сделать дамп MySQL, если вам вдруг потребуется перенос базы на другой сервер или возникнет любая другая ситуация, когда может пригодиться резервная копия БД. Конечно, существует еще достаточно много способов создания дампа, помимо описанных выше. Но даже владение самыми простыми вариантами и регулярное применение их на практике позволит вам более уверенно чувствовать себя в любой непредвиденной ситуации, ведь достаточно будет просто развернуть дамп MySQL и быстро восстановить все базы данных.

Если вы решились купить dedicated server в нашей компании, то Вам выдается 100 ГБ на удаленном сервере бекапов, куда можно настроить автоматическое резервное копирование сайтов и баз данных. В таком случае, у вас всегда будет свежий дамп MySQL.

В том случае, когда у вас все же возникают сложности при создании дампа и смене сервера или хостинга, вы можете обратиться к сотрудникам техподдержки RigWEB, и они ответят на любые ваши вопросы в рамках своей компетенции. Если же вы по каким-то причинам не можете заниматься этим самостоятельно, наши специалисты бесплатно займутся переносом вашего сайта с другого хостинга на наш. Также мы обеспечим регулярное резервное копирование и своевременное предоставление актуальных копий ваших данных при необходимости. Пользуясь профессиональным хостингом RigWEB, вы можете быть уверены в максимальной защите своего проекта от любых неожиданностей!

Нет необходимости убеждать опытного Джумловода о регулярном бекапе сайта (backup - резервное копирование данных). Нередки взломы сайтов, бывают сбои у хостера, наконец, не исключена и "ошибка пилота", когда вы сами, случайно (тренируясь с командами Unix Shell , например), удалите весь сайт.

В CMS Joomla есть два объекта, которые нужно периодически резервировать: база данных MySQL и собственно файлы самой Joomla. Сущестует несколько способов создания и сохранения резервных копий, каждый имеет свои достоинства и недостатки. Для наглядности приведу их в виде табличек:

Резервное копирование средствами хостинг-провайдера.

Некоторые хостеры ежедневно делают резервную копию базы данных Joomla (и не только этой CMS) и файлов сайта. В случае необходимости, их можно восстановить одновременно или в отдельности.

Достоинства Недостатки
  • Все происходит автоматически, вам не нужно беспокоитсья, что забудете сделать резервную копию вовремя
  • Существуют несколько копий, бэкапы делаются каждые сутки. Вы можете восстановить, например, сайт на состояние 3 дня назад
  • Резервные копии отнимают дисковое пространство, отведенное вам хостером
  • Хранится ограниченное количество копий (как правило не более семи) за последние дни
  • Соответственно, если вы не вовремя заметили необходимость восстановления - вы рискуете потерять нужную резервную копию
  • Нет возможности настроить - какие директории подлежат бекапу, а какие нет

Резервное копирование средствами с помощью специальных компонентов Joomla (например - "JoomlaPack")

Достоинства Недостатки
  • Устанавливается в Joomla как стандартный компонент и всегда "под рукой"
  • Некоторые из них могут работать по расписанию и отсылать бекап базы MySQL на e-mail
  • Долгое время работы (создания бекапа)
  • Не всегда достаточно отведенного на хостинге времени для завершения работы скрипта (по умолчанию PHP скрипту дается 30 секунд)
  • Ненадежная работа на больших сайтах
  • Для компонентов, использующих Ajax-технологию (почти все) - требуется надёжное Интернет - соединение

Резервное копирование сторонними программами файлов и базы данных по-отдельности

Достоинства Недостатки
  • Работают не только с Joomla, но и с другими CMS
  • Позволяет выбрать какие директории резервировать, а какие нет
  • Доступны некоторые дополнительные функции, например: работа с файлами на хостинге, сброс (восстановление) пароля CуперАдминистратора Joomla
  • Позволяет создавать и распаковывать ZIP - архивы на сервере
  • Приходится устанавливать отдельные скрипты на хостинг, настраивать их, заводить для них отдельные пароли
  • "Полуавтоматическая" работа - вы должны сами указывать какие папки резервировать и следить за процессом
  • Создание бекапа файлов по частям (из-за 30 секундного ограничения работы скрипта)
  • Потенциальная опасность удалить (из-за невнимательности) нужные файлы или папки
  • Не всегда работает на бесплатных хостингах (например сайт, www.110mb.com)

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

Как сделать дамп базы данных MySQL. Создание резервной копии базы данных CMS Joomla

Программа создает резервную копию базы данных MySQL , независимо от того, какой CMS вы пользуетесь. Это отдельный PHP - скрипт.