Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Как задампить базу в 22 гига
цитата
04/06/13 в 00:21
 andreich
вообщем сабж
никак не получается забакапить базу Mysql размером 22 гига
в консоле делаю
mysqldump --skip-opt -u USER -pPASS BASENAME > BASENAME.sql

получаю через некоторое время

mysqldump: Got error: 2013: Lost connection to MySQL server during query when retrieving data from server

и чего делать ?
цитата
04/06/13 в 01:13
 idk2045
таблицы MyISAM?
долгое время я работал с проектом с большими данными, в итоге самое просто решение было тупо копировать файлы из /var/lib/mysql/my_database
но InnoDB так вроде не копируется, а MyISAM вполне.
цитата
04/06/13 в 02:16
 Pentarh
Вообще я обычно кладу базы на LVM раздел. Очень удобно бекапать большие базы на живую.

1. Заходишь на сервер двумя консолями.
2. В первой: коннект через mysql: FLUSH TABLES WITH READ LOCK; из консоли мускуля НЕ выходить.
3. Во второй: lvcreate -s -L5G -n mybackup /dev/mapper/lvmysql
4. В первой: UNLOCK TABLES. выходим

Создался снапшот тома /dev/mapper/lvmysql под именем /dev/mapper/mybackup. ИЧСХ, создался когда в базу ничего не писалось.

Теперь можно замонтировать /dev/mapper/mybackup куда то и слить оттуда снапшоты всех файлов баз данных.

Ну и потом /dev/mapper/mybackup надо удалить.

Это очень удобно, однако
1. Базы уже должны лежать на томе LVM
2. В Volume Group должно хватать свободного места для снепшота.

http://www.pentarh.com/wp/2010/08/12/mysql-remote-encrypted-backup-lvm-snapshot/
цитата
04/06/13 в 02:21
 Stek
попробуй с ключем --skip-extended-insert
цитата
04/06/13 в 06:47
 div
andreich: какая цель действия? если бекап - проще средствами FS, для Linux - так как pentarh предложил или acronis trueimage for linux. mysqldump для бекапов не лучшее решение

если перенести - проще скопировать файлики. если весь сервер перетаскивать 1 в 1 - тупо всю ~mysql, пофиг innodb там или myisam, главное постарайся чтоб версии совпадали или по крайней мере новая была свежее.

если перенести на ходу - см. бекап
цитата
04/06/13 в 07:56
 SixFingers
Как вариант
http://sypex.net/ru/products/dumper/features/
Цитата:
Огромные базы данных
Sypex Dumper 2 умно работает с дампами, экономно расходуя память. При разработке и тестировании новой версии дампера использовались большие базы данных, свыше 1 000 МБ, в то время как большинству конкурентов, даже базы в 100 МБ доставляют проблемы. По сути, единственным ограничением для дампера являются ограничения PHP. 32-битные версии PHP не умеют работать с файлами более 4 ГБ.

Цитата:
Работа с таймаутами
Новая версия дампера умеет делать импорт/экспорт в несколько этапов. Т.е. если у вас на сервере жесткие ограничения по времени выполнения скриптов, дампер умеет автоматически останавливать и продолжать работу с места остановки, обходя ограничения сервера.
цитата
04/06/13 в 10:56
 atrius
Вот тут вроде пишут про эту проблему, почитай, вдруг поможет
http://stackoverflow.com/questions/6516943/lost-connection-to-mysql-server-during-query
цитата
14/06/13 в 20:53
 kisanetik
А не пробовали подключить второй MySQL как slave и стандартными утилитами мускула реплецировать просто базу в real-time времени?
badoo.com так реплицируют и другие базы в терабайты icon_smile.gif
цитата
14/06/13 в 20:57
 Pentarh

Для поднятия слейва базу мастера все равно нужно задумпить.
цитата
14/06/13 в 22:55
 Alexandr_Mrak
просто копирование спасает.
для начала. как вариант.( и инодб в том числе. вместе с логами.)

а вообще по правильному, конечно повысить в my.cnf таймаут, остановить работу сайта, на тех обслуживание.


но правильный вариант конечно у пентарха )тока блин думать об этом надо заранее. до того как зверёк прибежит.
цитата
16/06/13 в 10:55
 kisanetik
Оффтопик: Постинг ссылок разрешен только по достижению 30 постингов или 30 дней с момента регистрации
Pentarh писал:
Для поднятия слейва базу мастера все равно нужно задумпить.

хм, я не сталкивался может быть - но зачем дампить базу при сливе на слейв всех данных?
mysqldump лочит таблицы для экспорта, соответственно insert\update\delete становится в очередь и не выполняется, за время пока дампится очередь может переполниться и серв вылетит.
Частично спасает включение логирования запросов.
вот тут описаны основные способы, и комментарии - есть еще платные утилиты сторонних компаний - но ИМХО репликация самый лучший способ не останавливая серв забекапить базу.


Эта страница в полной версии