Форум сетевых администраторов
Показаны 32 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- MySQL (http://netadmin.ws/forum/forumdisplay.php?forumid=40)
-- Правильный полный backup базы данных (http://netadmin.ws/forum/showthread.php?threadid=7383)


Помещено Varsosnill 27-12-2003 в 22:55:

Post Правильный полный backup базы данных

Перед нами стоит задача полной резервной копии одной из трёх
существующих баз данных.
На одном сайте мы прочитали, что следует для этого использовать команду: mysqldump -uLOGIN -pPASS DBNAME > dump.sql Хорошо, создаём этой командой дамп и получаем файл размером 25 мегабайт.

Но тут же находим стороннюю документацию, где сказано что самый правильный backup делается с ключем --opt. Тогда мы делаем команду: mysqldump --opt -uLOGIN -pPASS DBNAME > dump.sql и получаем файл уже размером не 25, а всего 14 мегабайт!

Скажите пожалуйста, как создать самый правильный полный backup, чтобы потом можно было бы без проблем полностью восстановить базу на вашем сервере и чем отличаются два вышеприведённых варианта? Почему получились такие разные объёмы?


Помещено RaZEr 27-12-2003 в 23:10:

С --opt используй. Объемы разные потому что с --opt используется многострочный insert (--extended-insert).

__________________
The time was broken ...


Помещено Varsosnill 28-12-2003 в 00:35:

RaZEr
а вот мне саппорт хостинга ответил:
Самый правильный - это
mysqldump -pпароль -uимябазы имябазы > dump.sql

Так какой-же самый правильный всё-таки? Если "opt используется многострочный insert", то как это отразится на дальнейшем восстановлении базы? Неужели из-за этого потерялось такое огромное количество мегабайт?

База у нас от форума vBulletin, если пользоваться встроенной в контрольную панель форума утилитой "forum backup", то создаётся вообще файл с размером аж 30 мегабайт!

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено polo 28-12-2003 в 01:39:

Да обьем данных большой, считай что там больше 300 000 строк, если добавить в каждой строке по одному символу то уже получится на 300 000 байт больше а это уже 292 kb так посчитай что если не заключать например имена таблиц в кавычки на сколько меньше получится бэкап. А вообще есть фак по вбулетин и там описано как создается бэкап в коммандной строке, я точно не помню как там с opt или без, но знаю что я этой коммандой создал не один бэкап, который в жатом виде превышал 200 мб и при помощи которого база саздавалась без проблем.

__________________
Всегда есть решение.


Помещено RaZEr 28-12-2003 в 10:07:

quote:
300 000 байт больше а это уже 292 kb
Странно ты перевел. Почему так?

__________________
The time was broken ...


Помещено Varsosnill 28-12-2003 в 10:41:

polo
ну вот берём файл, который прилагается к Beta 7 (или Гамме) и смотрим:

If you want to upgrade your forums to vBulletin 3 Beta 7, you should first close your board via the vBulletin 2 admin control panel, and then make a complete back-up your database using the following command from the system command line:

mysqldump --opt -uusername -p databasename > databasename.sql
(Where username is your MySQL username and databasename is the name of your database)

Так вот хостер рекомендует без --opt, а разработчики vBulletin c --opt. Вопрос! - при создании базы из файлов, созданных двумя этими вариантами, получится одна и таже база с одним и темже объёмом??

quote:
я этой коммандой создал не один бэкап, который в жатом виде превышал 200 мб и при помощи которого база саздавалась без проблем.
прости, я не совсем понял, ты именно с --opt создавал базу?

мда.. 200Мб в сжатом виде это круто. Думаю, что это не база форума vBulletin, ведь у нас в сжатом всего 6Мб и такой колоссальный объём как у тебя в ближайшем будущем не грозит. Хотя, кто знает..

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено RaZEr 28-12-2003 в 11:39:

quote:
получится одна и таже база с одним и темже объёмом??
Да. Одна база, одни данные.

__________________
The time was broken ...


Помещено Varsosnill 28-12-2003 в 13:17:

RaZEr
ok, если создали бэкап с помощью --opt, при распаковке надо указывать --opt?
Или просто mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME < dump.sql ?

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено RaZEr 28-12-2003 в 13:20:

Второе.

__________________
The time was broken ...


Помещено polo 28-12-2003 в 13:40:

RaZEr ошибся, сорри.
300000/8/1024

__________________
Всегда есть решение.


Помещено Rumata 31-12-2003 в 15:45:

Ну что вы, как маленькие? =))
http://www.mysql.com/doc/en/mysqldump.html

по доке - --opt - лучше, чем без. Хостер, наверное, про нее просто не знал.

Ну единственно, в нее drop входит, может кому-то это не нужно.


Помещено zapimir 02-01-2004 в 15:13:

Varsosnill
Оба варианта правильные и одинаково хорошо работают, едиственное, вариант без --opt, является более старым, в котором для каждой строки БД используется один запрос, а с параметром --opt используется расширенные возможности команды INSERT (extended inserts), благодаря которым за один запрос вставляется несколько строк инфы. Так вот основное различие между ними, в том что в варианте без --opt много избыточной служебной информации, особенно, если таблица содержит много строк с небольшим количеством инфы. К тому же вариант с --opt быстрее обрабатывается при восстановлении.
Вообще-то, если проблемы с бекапом/восстановлением БД, рекомендую попробовать скриптик Site Keeper Dumper, он хорошо работает с дампами любых размеров (в отличии от phpMyAdmin), к тому же имеет такие полезные фичи, как умение работать с архивами GZip и Bzip2 (причем в обоих направлениях и при бекапе, и при восстановлении), фильтр таблиц (например, можно быстро сохранить таблицы от vb, достаточно в фильтр таблиц написать "vb_*")... Подробнее можно почитать на сайте. Кстати он работает в режиме аналогичном --opt


Помещено Vanish 02-01-2004 в 17:28:

zapimir
Пускай и офф, но за дампер респект. Советую всем кто с шеллом не дружит.

__________________
No pity, no mercy, no regret.


Помещено Orliha 03-01-2004 в 13:02:

а чо гзип и тар уже не катит?

__________________
RTFM (Уважаемые! Читайте документацию!)


Помещено Varsosnill 04-01-2004 в 18:25:

Всем большое спасибо, особенно за Site Keeper Dumper! Единственное плохо, что хороший Bzip2 на валуехосте не работает с этим скриптом, можно только в GZip..

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено zapimir 04-01-2004 в 20:30:

quote:
Единственное плохо, что хороший Bzip2 на валуехосте не работает с этим скриптом

Попроси админов чтобы включили. Ð_то один из стандартных модулей PHP и админы платных хостингов обычно без проблем включают его по первой просьбе


Помещено Varsosnill 06-01-2004 в 01:49:

zapimir
да он вообще-то включен, через ssh без проблем сжимаю всё что угодно (с большей эффективностью чем gzip), но вот с дампером не работает, хотя в документации к этому скрипту сказано, что Bzip2 поддерживается..

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено zapimir 09-01-2004 в 11:14:

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


Помещено AntiMozg 21-01-2004 в 03:58:

А мне сволота при дампе базы vB и такой строке:
mysqldump --opt -uroot -p vbforum > dump.sql
пишет: Permission denied
Делаю я все это в дирректории /root, как и написано в мануале по vBulletin.
Логин на mysql: root
пароля нет.

Как быть то?

Спасите

__________________
Folloving the Lenin's way!..


Помещено RaZEr 21-01-2004 в 05:04:

Значит нет аккаунта root, или пароль проставлен.

__________________
The time was broken ...


Помещено Slayer 27-01-2004 в 09:12:

вот еще скриптец http://zapimir.net/skdumper/

__________________
x-forum.info | x-search.info | xnt.info | kinokabra.ru | x-host.biz


Помещено RaZEr 27-01-2004 в 13:36:

2 Slayer: Тему еще раз прочитай.

__________________
The time was broken ...


Помещено Slayer 27-01-2004 в 14:27:

тьфу, линком ошибся http://www.bitesser.de/freeware/script.php?id=1

__________________
x-forum.info | x-search.info | xnt.info | kinokabra.ru | x-host.biz


Помещено zapimir 30-01-2004 в 04:56:

quote:
тьфу, линком ошибся http://www.bitesser.de/freeware/script.php?id=1

Попробовал ради интереса... Честно говоря не советовал бы её использовать. Зачем было придумывать свой формат сохранения бекапа, если фактически есть стандарт. Т.е. нельзя будет использовать альтернативный софт, чтобы восстановить базу после mysql commander.
При этом работа самого командера не впечатляет. При сравнении с дампером использовалась тестовая база (31 таблица, 1 018 648 записей, 24.41 МБ), которая содержит информацию разного типа, более 3000 новостей с реального сайта, таблица стастистики немного больше 1 млн. записей (в основном цифры) и т.п.
Попробовал бекапить с использованием gzip, но после этого командер не смог восстановить базу, уже один здоровый минус.
Бекап без сжатия длился более 3 минут (для сравнения дампер с использованием максимального Bzip2 сжатия справился за 63 секунды). Папочка с командерным бекапом весила 64 МБ, сжатый бекап дампера занимал всего 4,1 МБ.
После этого попробовал восстановить базу из бекапа, командеру понадобилось 11,5 минут.
Теперь запускаем дампер, восстановление из сжатаго бекапа заняло 49(!!) секунд.
Ну и еще стоит отметить, что при бекапе командером Апач занял более 90 метров памяти, против 13 когда работал дампер.


Помещено Varsosnill 30-01-2004 в 23:51:

zapimir
да, видно модуль не включен, спасибо за пояснение..

А вообще по поводу отдельных скриптов для дампа, то дампер рулит однозначно! Спасибо за ссылку на него, это просто чудо.

__________________
www.ulver.com - сайт о Скандинавии и Язычестве
valhalla.ulver.com - конференция Valhalla


Помещено polo 31-01-2004 в 01:02:

Я кстати по случайности использовал сайт кипер, когда нетадмин прикрыли мне оставили доступ только к базе, задача стояла в удаленном подключении к базе (т.е. с моего компа) забрать дамп на 50 мб, phpmyadmin загнулся сразу, думаю дай попробую киппер, ниче при set_time_limit(0) за пару часиков справился, правдо восстановить базу из шелла (mysql) не удалось (выдавало ошибку встроке xxxx, строку смотрел вроде все нормально было), восстанавливал темже кипером.

polo добавил 31-01-2004 в 01:04:56:
да, и выбор таблиц там неудобный, т.е. его вообще там нет, пришлось приделать.

__________________
Всегда есть решение.


Помещено zapimir 31-01-2004 в 02:10:

quote:
за пару часиков справился

Пару часов дамп создавался? Что такой сервак загруженный?
quote:
правдо восстановить базу из шелла (mysql) не удалось (выдавало ошибку встроке xxxx

Я даже знаю какую, там в мускуле по умолчанию ограничен размер запроса до одного метра, а поскольку дамп создается с использованием extended inserts, то и скорее всего получился запрос больше допустимого. Поскольку у дампера свой алгоритм парсинга дампов (при восстановлении), которому не важен размер запроса, то особо не заморачивался над этим. Т.к. любые дополнительные проверки это дополнительное время, а главная задача дампера - это скорость и гарантированный бекап/восстановление баз любого размера.
quote:
да, и выбор таблиц там неудобный, т.е. его вообще там нет, пришлось приделать.

Ну кому как Там нет выбора таблиц, но есть фильтр, т.к. обычно дампится всё. А поскольку все современные скрипты используют приставки в названиях таблиц, то лично мне проще, набрать в фильтре vb_* (например для дампа только таблиц vb), чем выбрать 30-40 таблиц
Хотя в полной версии планируется сделать и фильтр и выбор таблиц из списка.


Помещено polo 31-01-2004 в 02:15:

quote:
Пару часов дамп создавался? Что такой сервак загруженный?

ну дык говорю что удаленно создавался, сервак тут ни при чем.
quote:
Ну кому как Там нет выбора таблиц, но есть фильтр, т.к. обычно дампится всё.
Ситуации разные бывают, я обычно дамплю все но тут вот пришлось дампить выборочно, так как еслибы дампил все то наверное сутки бы ждал а не 2 часа.

__________________
Всегда есть решение.


Помещено he][es 17-02-2004 в 18:19:

Господа, у меня вопрос родился, а вот когда я дамп заливаю, то БД "дополняется" или полностью переписывается из файла?
Т.е. записи существующие в БД но отсутствующие в заливаемом дампе удалятся?

__________________
Админ - вождь Апачей...


Помещено Vanish 17-02-2004 в 21:43:

he][es все зависит от запросов =)
Но обычно

quote:
полностью переписывается из файла


quote:
Т.е. записи существующие в БД но отсутствующие в заливаемом дампе удалятся?

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

Если же таблица не удаляется:
1. будет ругаться на создание таблицы, при попытке создать такую же но из дампа.
2. будет ругаться если попытаешься добавить данные уже содержащиеся в этой таблице.
3. новые добавятся без проблем, другими словами записи существующие в БД но отсутствующие в заливаемом дампе останутся.

__________________
No pity, no mercy, no regret.


Помещено he][es 17-02-2004 в 22:16:

Блин... вот я ступил
(Надо отвыкать просить о таком... Нет чтобы взять и открыть файл и посмотреть... блин... даже стыдно как то....)

__________________
Админ - вождь Апачей...


Помещено Bochkarev_D.S. 18-02-2004 в 14:14:

у меня 1.5 Gb база с --opt, разворачивается такая долго, дампится за минут 15


Формат времени GMT. Текущее время 07:25.
Показаны 32 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.