|
|
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые! Имеем базы на mariadb5.5 стоящих на Win7Pro :) Подскажите как мне его бэкапировать без остановки? Почитал документацию, можно делать дамп всех баз в плоский файл через >mysqldump.exe -uroot -proot --all_databases >allbase.bkp Вроде делает. Вопрос: когда он создает дамп и параллельно пользователи могут вносить изменения в базу, то дамп получается согласованным и непротиворечивым? Если нет, то как нужно бекапить? PS: Хотелось бы так (навеяло ораклом :)): -Запускаем некую команду заморозки файлов (т.е. изменения начинают попадать в некий лог) -копируем файлы базы -размораживаем файлы -отключаем логирование -добавляем файл лога к бэкапу Прошу прощения, но опыта админской работы с MySQL маловато... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 14:02:00 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Порылся в инeте. База у меня стоит с движком myisam, т.е. транзакции не поддерживает и блокировки идут на уровне таблицы. При бэкапировании базы через mysqldump утилита последовательно проходит по таблицам, блокируя их, сбрасывает в дамп данные и структуру таблиц базы и разблокирует их. И так для каждой таблицы. Т.е. риск что данные в разных таблицах базы будут несогласованными есть. Я правильно понял, что mysqldump перед бэкапом базы ее не блокироет на изменение целиком, а блокирует последовательно по мере бэкапирования таблиц? Есть ли команда блокировки базы целиком на запись перед бекапированием и потом разблокировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 12:04:22 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smm, http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html авторFor storage engines that represent each table using its own files, tables can be backed up by copying those files. For example, MyISAM tables are stored as files, so it is easy to do a backup by copying files (*.frm, *.MYD, and *.MYI files). To get a consistent backup, stop the server or lock and flush the relevant tables: Код: sql 1. 2. You need only a read lock; this enables other clients to continue to query the tables while you are making a copy of the files in the database directory. The FLUSH TABLES statement is needed to ensure that the all active index pages are written to disk before you start the backup. See Section 13.3.5, “LOCK TABLES and UNLOCK TABLES Syntax”, and Section 13.7.6.3, “FLUSH Syntax”. You can also create a binary backup simply by copying all table files, as long as the server isn't updating anything. The mysqlhotcopy script uses this method. (But note that table file copying methods do not work if your database contains InnoDB tables. mysqlhotcopy does not work for InnoDB tables because InnoDB does not necessarily store table contents in database directories. Also, even if the server is not actively updating data, InnoDB may still have modified data cached in memory and not flushed to disk.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 12:42:09 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Про LOCK TABLE видел, только там нужно все таблицы базы перечислять, а хотелось бы командой сразу все таблицы базы в режим READ LOCK перевести. Есть такие способы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 15:31:37 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Можно ли сделать бекап таким образом 1) запускаем батник который подключается к базе и выполняет команду Код: sql 1. 2. 2) командой COPY windows копируем файлы базы в другое место (копируем в т.ч. и системную базу mysql вместе с настроечным файлом my.ini) 3) запускаем батник который подключается к базе и выполняет команду Код: sql 1. 2. Типа: "Все правильно сделал"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 16:25:27 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
вроде еще надо переменную установить... 1) запускаем батник который подключается к базе и выполняет команду Код: sql 1. 2. 3. 2) командой COPY windows копируем файлы базы в другое место (копируем в т.ч. и системную базу mysql вместе с настроечным файлом my.ini) 3) запускаем батник который подключается к базе и выполняет команду Код: sql 1. 2. 3. Типа: "Все правильно сделал"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2015, 16:48:21 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smmЯ правильно понял, что mysqldump перед бэкапом базы ее не блокироет на изменение целиком, а блокирует последовательно по мере бэкапирования таблиц? А ничего там в инете хорошего не пишутъ с момента появления поисковых систем. Мануал на mysqldump почитали бы : Есть ключ --lock-tables, -l который и делает блокировки. Блокирует последовательно, но не занимается в это время выгрузкой данных. Вам будет достаточно. Так же есть ключ --lock-all-tables - точно то, что вы хотели, но глобальная блокировка не всегда хороша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 11:40:55 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Спасибо за пояснение по mysqldump Я вот думаю использовать все таки не mysqldump, а копировать все файлы баз (пользовательских и системных), предварительно запретив вносить изменения в базу через глобальную переменную. Глобальную переменную вынужден использовать потому, что после FLUSH делается выход из сессии (батник закрывается) и чтобы запрет на изменения остался. Далее делаем твердые копии файлов базы и запускаем батник, который открывает новую сессию в которой возвращает глобальную переменную обратно. Кстати вопрос: Я так понял, что в последнем батнике (который будет сбрасывать запрет на изменения) запускать команду UNLOCL TABLES после сброса глобальной переменной READ_ONLY=OFF уже не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 12:54:02 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smmЯ вот думаю использовать все таки не mysqldump, а копировать все файлы баз (пользовательских и системных), предварительно запретив вносить изменения в базу через глобальную переменную.Сервер останавливать придётся, а Вы хотите бекапить без остановки сервера. Можете попробовать использовать mysqlhotcopy, но её собираются выкинуть в обозримом будущем, насколько понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 13:20:53 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smmГлобальную переменную вынужден использовать потому, что после FLUSH делается выход из сессии (батник закрывается) и чтобы запрет на изменения остался. значит вам нужно сделать "батник", который удерживает соединение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 13:35:09 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
У меня Win поэтому mysqlhotcopy использовать нет возможности. Вроде если установили глобальную переменную и батник закрывается, то состояние глобальной переменной сервером запоминается и используется, поэтому держать батник открытым смысла нет. Или я что-то не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 15:52:05 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smm, вроде в windows не только педально-шаговые батники может запускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 16:50:44 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
наверное да, я просто не в курсе... Подскажите? И подведя итог, вариант: 1) запускаем первый батник который подключается к базе и выполняет команду Код: sql 1. 2. 3. 2) командой COPY windows копируем файлы базы в другое место (копируем в т.ч. и системную базу mysql вместе с настроечным файлом my.ini) 3) запускаем второй батник который подключается к базе и выполняет команду Код: sql 1. 2. Даст нормальный полный бэкап без остановки сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 17:51:01 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smm, вообще, я имел ввиду Windows PowerShell. Или любое известное вам средство автоматизации. Зачем себя ограничивать ? Но для начала можно попробовать из и батника запускать параллельный блокирующий процесс с помощью start.exe, а с помощью taskkill останавливать его. И больших проблем в использовании mysqldump я не вижу. От прямого копирования выиграете немного, а сами еще понапишите что-нибудь ненадежное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2015, 19:25:18 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smmУ меня Win поэтому mysqlhotcopy использовать нет возможности. актуально? под Win писал свою утилиту mysqlhotcopy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 07:51:45 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
to netwind Про PowerShell слышал, но еще не пользовался, как-то обычных батников всегда хватало :)) Мне кажется параллельный батник не нужен, если сервер переводится в режим READ_ONLY, ведь это динамическая управляющая переменная сервера. to Yed Интересно было бы взглянуть на этот скрипт mysqlhotcopy под Win. Давно уже и в каком режиме пользуетесь? Хотел бы еще раз повторить вопрос: Если создали сессию с сервером MySQL и в этой сессии установили глобальную переменную READ_ONLY=ON и закрыли сессию, то сервер останется в режиме read_only и ничего в файлы баз данных и логи писать будет и файлы базы можно безопасно копировать? Кто-то делал так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 09:22:39 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smmto Yed Интересно было бы взглянуть на этот скрипт mysqlhotcopy под Win. Давно уже и в каком режиме пользуетесь? Мне было проще программу на c++ написать, чем скрипт. Так и сделал :) Работает так: копирует потаблично MyISAM базу. В копию попадают таблицы из вывода "SHOW FULL TABLES FROM <base>", которые имеют тип "BASE TABLE". Копируются файлы frm, myd, myi с помощью вызовов "copy". Перед копией блокируется конкретная таблицы "LOCK TABLES <table> WRITE". Делал для своих нужд, работает с марта 2014 года - запускается по расписанию на сервере каждое воскресенье. Почему потаблично, а не сразу всю папку? У меня есть большие таблицы, которые копируются достаточно долго, поэтому чтобы не блокировать сразу все таблицы базы сделал так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 09:29:58 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Понятно. Я тоже думал, что-то мутить с последовательной блокировкой таблиц, потом подумал, что можно использовать управляющую переменную Read_only. Вот пока пытаюсь понять работоспособен и безопасен данный вариант или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 10:44:10 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
YedКопируются файлы frm, myd, myi с помощью вызовов "copy". Перед копией блокируется конкретная таблицы "LOCK TABLES <table> WRITE". Делал для своих нужд, работает с марта 2014 года - запускается по расписанию на сервере каждое воскресенье. не уверен что lock table достаточно для того чтобы все данные вытеснились на диск. потенциально это опасный метод. вот flush tables with read lock, как это делают утилиты, точно работает. авторЕсли создали сессию с сервером MySQL и в этой сессии установили глобальную переменную READ_ONLY=ON и закрыли сессию, то сервер останется в режиме read_only и ничего в файлы баз данных и логи писать будет и файлы базы можно безопасно копировать? он будет ошибки выдавать на обычные запросы и приложению это не понравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 13:17:05 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Про выдачу ошибок при бэкапировании это понятно, но на данный момент это не критично - ночью с базой никто не работает. А какие еще способы бэкапирования, чтобы приложение могло работать без ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 13:25:24 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smm, я не пойму что вы из мухи слона делаете ? есть mysqldump - разберитесь. По законам жанра в windows полагается конечно украсть цветастую программку, но внезапно она бесплатна. Вот почитайте как этот процесс предлагают делать devart https://www.devart.com/ru/dbforge/mysql/studio/mysql-backup.html По мне так совершенно бесполезная фича, но на нее почему-то есть спрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 13:35:31 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
Да никто слона не раздувает, вы о чем? есть утилита mysqldump попробовал ее использовать. Делает sql-ый дамп базы с блокировкой таблиц. Для восстановления базы нужно данные из файла бэкапа заливать в восстанавливаемую базу. Мне показалось это сложновато по сравнению с простым копированием файлов базы. Опять же восстанавливать просто -скопировал файлы в папку базы и запустил сервис mysql и все работает, а при mysqldump нужно ждать пока зальет, а это дольше чем просто скопировать файл. и вот об этом варианте я на форуме и написал с вопросом -нормальный ли вариант при условии, что работоспособность приложения на время бекапирования и восстановления не критично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 14:05:14 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
smmМне показалось это сложновато по сравнению с простым копированием файлов базы. ну вы же видите сколько всего вам нужно учесть и написать. это намного более простой и надежный способ чем вам кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 14:15:26 |
|
||
|
Подскажите по способам бекапирования MariaDB5.5
|
|||
|---|---|---|---|
|
#18+
netwindне уверен что lock table достаточно для того чтобы все данные вытеснились на диск. потенциально это опасный метод. вот flush tables with read lock, как это делают утилиты, точно работает. Конечно, я "флюшу" таблицы, просто забыл написть! Но, команда выше не поддерживается в MySQL 5.0 так что делаю последовательно - lock, flush для совместимости. netwindsmm, я не пойму что вы из мухи слона делаете ? есть mysqldump - разберитесь. Например, в моем случае mysqldump выполняется часами. А файлы таблицы копируются за 10 мин. mysqlhotcopy имеет право на жизнь и развитие :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 15:20:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38860859&tid=1833648]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 368ms |

| 0 / 0 |
