Резервируйте сервер MySQL

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

http://www.redhat.com/magazine/008jun05/features/schedulers/

http://wlug.org.nz/LinuxIoScheduler

6
21.09.2016, 05:08
2 ответа

1) Да, это выведет содержание всех баз данных как серия ВСТАВКИ sql команды, таким образом, можно будет восстановить всех с mysql < backup.sql. Просто для пользы wieldability, я рекомендовал бы сделать это для каждой базы данных вместо использования --all-databases поскольку Вы получаете один гудящий большой файл, содержащий ВСЕ, и это не легко доступно для поиска.

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

2) Информация о пользователе и управление доступом хранятся в mysql база данных; --all-databases действительно включает тот.

6
27.01.2020, 20:25
  • 1
    , блестящий, спасибо за ответ.:) Существует ли простой способ цикличного выполнения через все базы данных и создающий резервную копию каждого отдельно? Учитывая, что мы можем добавить новые базы данных в любое время (и устранить их столь же легко). –  Thomas Clayson 10.05.2012, 17:41
  • 2
    , блестящий, спасибо за ответ.:) Существует ли простой способ цикличного выполнения через все базы данных и создающий резервную копию каждого отдельно? Учитывая, что мы можем добавить новые базы данных в любое время (и устранить их столь же легко). –  Thomas Clayson 10.05.2012, 17:41

Если Вы работаете mysqldump удаленно и хочу отдельный файл дампа для каждой базы данных, необходимо будет вести список баз данных, которых Вы хотите создать резервную копию. Если Вы работаете mysqldump локально на сервере базы данных, можно циклично выполниться через базы данных, которые существуют в mysql каталог данных (такой как /var/lib/mysql). Если mysqldump должен быть выполнен удаленно, Вы могли записать сценарий, который соединяется через SSH, получает список баз данных, затем разъединяется и работает mysqldump с именами базы данных.

Я не использовал бы --all-databases не указывая отдельные имена базы данных и дополнительно использовал бы опцию --add-drop-database. Это будет также включать SQL-операторы в файл дампа для создания базы данных, если это не будет существовать или отбрасывать базу данных, если это действительно существует и воссоздает его. От man 1 mysqldump:

--add-drop-database
  Add a DROP DATABASE statement before each CREATE DATABASE statement.      
  This option is typically used in conjunction with the --all-databases 
  or --databases option because no CREATE DATABASE statements are written
  unless one of those options is specified.

Это - быстрый и грязный сценарий, разработанный для выполнения локально на сервере базы данных, который скопирует базы данных, указанные в $DB переменная, приводящая к файлу дампа для каждой базы данных. Это также удаляет любые предыдущие файлы дампов, которые являются более старыми, чем 15 дней.

#!/bin/sh

PATH=/bin:/usr/bin
DATE="`date +%Y%m%d`"
DB="mysql drupal drupaldev"
DUMP_DIR="/u01/mysql_dump"

for db in `echo $DB`
 do
  mysqldump -u root --password=password --databases --add-drop-database $db > $DUMP_DIR/$db.$DATE.dmp
  gzip -9 $DUMP_DIR/$db.$DATE.dmp
  find $DUMP_DIR/* -mtime +14 -exec rm -f '{}' \;
done
3
27.01.2020, 20:25
  • 1
    Спасибо за это. Я считаю, что мог сделать это на сервере и rsync это к локальной машине.:) Я должен найти способ получить список всех баз данных, хотя и делают по одному.:) Я изучу это. Спасибо помощник. :) –  Thomas Clayson 11.05.2012, 11:42
  • 2
    Спасибо за это. Я считаю, что мог сделать это на сервере и rsync это к локальной машине.:) Я должен найти способ получить список всех баз данных, хотя и делают по одному.:) Я изучу это. Спасибо помощник. :) –  Thomas Clayson 11.05.2012, 11:42

Теги

Похожие вопросы