The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Перенос файлов БД mysql"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"Перенос файлов БД mysql"  
Сообщение от bda email(??) on 28-Дек-07, 02:48 
Уважаемые коллеги, большая просьба помочь. Задача: перенести файлы БД mysql 4.3 с одного раздела в другой, т.к. база растет, а текущий раздел ФС оказался недостаточно большим.

Просьба подсказать, правильная ли стратегия.

1. Останов базы
2. Правка конфига, изменение пути на новый.
3. перенос файлов
4. запуск базы.

Вероятно, этот способ - не правильный, просьба подсказать, как выполнить перенос наиболее корректным способом.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Перенос файлов БД mysql"  
Сообщение от Ночной админ (ok) on 28-Дек-07, 03:03 
>[оверквотинг удален]
>
>Просьба подсказать, правильная ли стратегия.
>
>1. Останов базы
>2. Правка конфига, изменение пути на новый.
>3. перенос файлов
>4. запуск базы.
>
>Вероятно, этот способ - не правильный, просьба подсказать, как выполнить перенос наиболее
>корректным способом.

А если попробовать сделать дамп базы и потом поменяв настройки сервера из дампа базу восстановить ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Перенос файлов БД mysql"  
Сообщение от bda email(??) on 28-Дек-07, 03:14 
>[оверквотинг удален]
>>1. Останов базы
>>2. Правка конфига, изменение пути на новый.
>>3. перенос файлов
>>4. запуск базы.
>>
>>Вероятно, этот способ - не правильный, просьба подсказать, как выполнить перенос наиболее
>>корректным способом.
>
>А если попробовать сделать дамп базы и потом поменяв настройки сервера из
>дампа базу восстановить ?

Т.е. это наиболее грациозное решение, через дамп? Может есть какой-либо гайд?

Кстати, как правильно выполнить дамп, чтобы во время его снятия - не помещалось ничего в базы сервера, т.е. не происходило записи в различные базы?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Перенос файлов БД mysql"  
Сообщение от Wing email(??) on 28-Дек-07, 04:16 
>[оверквотинг удален]
>>>корректным способом.
>>
>>А если попробовать сделать дамп базы и потом поменяв настройки сервера из
>>дампа базу восстановить ?
>
>Т.е. это наиболее грациозное решение, через дамп? Может есть какой-либо гайд?
>
>Кстати, как правильно выполнить дамп, чтобы во время его снятия - не
>помещалось ничего в базы сервера, т.е. не происходило записи в различные
>базы?

Если база в MyIsam - должен сработать простой перенос, если innodb - нужно делать дамп..

--
mysqldump --no-autocommit --default-character-set=cp1251 -q -e $DBNAME >  $BACKUPPATH

Таким образом я делаю бекап 11гиговой базы, не останавливая её: mysqldump лочит таблицы на время своей работы.

p.s. Правда, это всё относится к mysql 5.x - но не думаю, что в данной ситуации это играет роль...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Перенос файлов БД mysql"  
Сообщение от Wing email(ok) on 28-Дек-07, 04:20 
.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Перенос файлов БД mysql"  
Сообщение от bda email(??) on 28-Дек-07, 07:46 
>[оверквотинг удален]
>нужно делать дамп..
>
>--
>mysqldump --no-autocommit --default-character-set=cp1251 -q -e $DBNAME >  $BACKUPPATH
>
>Таким образом я делаю бекап 11гиговой базы, не останавливая её: mysqldump лочит
>таблицы на время своей работы.
>
>p.s. Правда, это всё относится к mysql 5.x - но не думаю,
>что в данной ситуации это играет роль...

Большое спасибо! Буду сейчас пробовать...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Перенос файлов БД mysql"  
Сообщение от deadmoroz2 email(??) on 28-Дек-07, 09:56 
1. Останавливаем базу
2. Переносим файлы на новой место
3. Делаем символическую ссылку, что бы путь к фалам остался тем же
4. Запускаем базу и радуемся

P.S. Извините, но через дамп делать перенос в пределах одной машины/версии как-то немного глупо что ли, если разве время некуда девать, IMHO.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Перенос файлов БД mysql"  
Сообщение от bda email(??) on 28-Дек-07, 12:34 
>1. Останавливаем базу
>2. Переносим файлы на новой место
>3. Делаем символическую ссылку, что бы путь к фалам остался тем же
>
>4. Запускаем базу и радуемся
>
>P.S. Извините, но через дамп делать перенос в пределах одной машины/версии как-то
>немного глупо что ли, если разве время некуда девать, IMHO.

Ну тогда, все-таки подскажите, как делать правильно - по хрестоматии, так сказать...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Перенос файлов БД mysql"  
Сообщение от idle (ok) on 28-Дек-07, 12:48 
>[оверквотинг удален]
>>2. Переносим файлы на новой место
>>3. Делаем символическую ссылку, что бы путь к фалам остался тем же
>>
>>4. Запускаем базу и радуемся
>>
>>P.S. Извините, но через дамп делать перенос в пределах одной машины/версии как-то
>>немного глупо что ли, если разве время некуда девать, IMHO.
>
>Ну тогда, все-таки подскажите, как делать правильно - по хрестоматии, так сказать...
>

Не множьте сущностей...
Делайте как написали в первом посте.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Перенос файлов БД mysql"  
Сообщение от Arifolth email(ok) on 28-Дек-07, 13:04 
>[оверквотинг удален]
>
>Просьба подсказать, правильная ли стратегия.
>
>1. Останов базы
>2. Правка конфига, изменение пути на новый.
>3. перенос файлов
>4. запуск базы.
>
>Вероятно, этот способ - не правильный, просьба подсказать, как выполнить перенос наиболее
>корректным способом.

когда у вас база ещё увеличиться - будете повторять это шаманство?
IMHO Volume Managers (типа lvm/gvinum и т.п.) - единственный правильный способ. туда можно допихивать диски и увеличивать разделы (resize2fs, growfs) до безобразия

т.е. план такой
создать группу томов
застопить базу
добавить раздел с базой
добавить другой диск/раздел
расширить партицию на кот сидит база (может расширить слайс/раздел)
запустить базу.

впоследствии прийдётся только стопить базу допихивать диски расширять партицию и снова запускать базу.

вроде всё

а чтобы дампить инодбшную базу по быстрому используйте
--opt --single-transaction --flush-logs

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Перенос файлов БД mysql"  
Сообщение от bda email(??) on 28-Дек-07, 13:45 
>[оверквотинг удален]
>расширить партицию на кот сидит база (может расширить слайс/раздел)
>запустить базу.
>
>впоследствии прийдётся только стопить базу допихивать диски расширять партицию и снова запускать
>базу.
>
>вроде всё
>
>а чтобы дампить инодбшную базу по быстрому используйте
>--opt --single-transaction --flush-logs

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

1. Есть ли возможность перейти на LVM, при этом нет свободного места, т.е. нет ли какого хитрого способа?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Перенос файлов БД mysql"  
Сообщение от Arifolth email(ok) on 28-Дек-07, 14:53 
>[оверквотинг удален]
>>вроде всё
>>
>>а чтобы дампить инодбшную базу по быстрому используйте
>>--opt --single-transaction --flush-logs
>
>Спасибо большое за  развернутый ответ! Единственно, он вызывает у меня массу
>других вопросов. Если не сложно, подскажите хотя бы на следующий:
>
>1. Есть ли возможность перейти на LVM, при этом нет свободного места,
>т.е. нет ли какого хитрого способа?

свободное место всё таки нужно, так как партиции прийдётся переразмечать перед добавлением. правда нужно его ровно столько сколько база занимает (примерно).
почитайте lvm howto там всё это есть в подробностях

грубый пример - сперва берём пустую, скажем /dev/hdb1
база например на /dev/hda3
fdisk'ом ставим тип партиции 8e
создаём physical volume - pvcreate /dev/hdb1
создаём volume group - vgcreate vg00 /dev/hdb1
создаём logical volume - lvcreate --name lv00 --size 1G vg00
затем создать ext3/reiserfs на /dev/vg00/lv00
>затем её замонтировать и скопировать содержимое раздела с базой<

fdisk'ом ставим тип партиции 8e на ту где раньше была база
добавляем vgextend vg00 /dev/hda3
потом экстендим logical volume - lvextend --size +1G /dev/vg00/lv00
а потом ресайзим /dev/vg00/lv00 -resize2fs/resize_reiserfs
всё

уф
вроде фсё
может где то ошибся но в общем примерно так

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Перенос файлов БД mysql"  
Сообщение от angra (ok) on 30-Дек-07, 08:48 
Вы не указали основной момент - насколько критичен по времени простой сервера, а также размер и тип баз. Если время простоя равное времени копирования сырых файлов вас устраивает, то делаем следующим образом
1. запрос flush tables with read lock
2. копирование всех файлов относящихся к базам(в общем случае все в /var/lib/mysql)
3. запрос unlock tables
4. запуск второго экземпляра сервера с соответствующими опциями и проверка работоспособности
5. если все в порядке правим конфиг с рестартом основного сервера.

Не надо использовать mysqldump. Это очень медленно и при неверном использовании может привести к искажению информации, также требует уйму дополнительного места.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру