Дублирующий MySQL

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Дублирующий MySQL

Непрочитанное сообщение kozak » 2007-07-21 19:06:43

Есть рабочие серверы с множеством служб используемых mySQL.
Рядом стоит mySQL сервер в чистом виде, используемый для хранения БД.

Иногда, когда сервер перегружен и максимальное количество запросов превышает допустимое значение,
сервер перестает принимать запросы. Это плохо=)
Появилась идея создания SLAVE-сервера.

По этому поводу появился вопрос по настройке DNS-сервера.
Как я понимаю нужно создать две A-зоны с адресами двух серверов.
И по-принципу "не работает - идем дальше" все должно работать.

Есть предложения?

P.S. Маны, доки читал, на mysql.com был.
Последний раз редактировалось kozak 2007-07-26 12:25:23, всего редактировалось 1 раз.
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Alex Keda » 2007-07-21 19:16:12

а о кластере не думал?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2007-07-21 19:29:05

Звучит страшно=) Нет не думал. С чего лучше начать!?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Alex Keda » 2007-07-21 19:29:46

думаю с официально сайта..
по крайней мере - я не делал...
Убей их всех! Бог потом рассортирует...

Sw%00p
проходил мимо

Re: Дублирующий MySQL

Непрочитанное сообщение Sw%00p » 2007-07-24 7:42:54

репликация думаю поможет

ginger22
рядовой
Сообщения: 10
Зарегистрирован: 2007-07-26 9:11:32

Re: Дублирующий MySQL

Непрочитанное сообщение ginger22 » 2007-07-26 9:12:54

Копай в сторону mysql-proxy
Или как то там.

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-05-29 13:58:51

Новичкам по теме рекомендую: http://www.onlamp.com/pub/a/onlamp/2006 ... ation.html
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
gfer
рядовой
Сообщения: 17
Зарегистрирован: 2009-07-24 10:51:33
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение gfer » 2009-07-24 11:33:44

Сатана был лучшим другом Церкви во все времена, поддерживая ее бизнес все эти годы!

Аватара пользователя
gfer
рядовой
Сообщения: 17
Зарегистрирован: 2009-07-24 10:51:33
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение gfer » 2009-07-24 11:42:09

Сатана был лучшим другом Церкви во все времена, поддерживая ее бизнес все эти годы!

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение weec » 2009-10-15 13:37:30

ndb советуйте ...
а юзает ли его кто в продакшене?

ndb-engine по типу запросов вообще сильно урезан

kozak, используй репликацию

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-15 13:57:47

Спасибо, уже собрал, забыл... работает! :smile:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-29 10:07:45

Вопрос по репликации.

Репликация не работает если не использовать функцию "USE database" перед SQL-запросом.

т.е. USE test; INSERT INTO `test`.`table` (`ID`, `Data`, `TS`) VALUES (NULL, 'value', CURRENT_TIMESTAMP); - реплицируется отлично.
но если убрать USE test; то этот запрос не добавляется в бинарный журнал репликации.

Является ли обязательным параметр выборки БД ("USE test") или есть другие варианты решения этой проблемы глобально на уровне сервера? :unknown:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-29 10:54:50

Чем именно репликацию делаете?
Глюк глюком вышибают!

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-31 11:30:03

В смысле, "чем"?

Сервер MySQL
Таблицы MyISAM
Формат BINLOG - STATEMENT

:unknown:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-31 11:42:04

kozak писал(а):В смысле, "чем"?

USE test; INSERT INTO `test`.`table` (`ID`, `Data`, `TS`) VALUES (NULL, 'value', CURRENT_TIMESTAMP);
Клиент какой?
Глюк глюком вышибают!

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-31 11:52:12

PHP mysql_query
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-31 12:08:18

Насколько я знаю, для каждого пакет-запроса PHP создает сессию и потом разрывает. При логине, он подключается к одной БД, которая может не совпадать с нужной.
Если же все запросы выполняются в одной сессии, то выбирать базу нужно только один раз.
Глюк глюком вышибают!

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-31 12:12:29

Тем не менее запрос "USE test;" необходим даже при запросе типа "INSERT INTO `test`.`table`...", где мы итак указываем таблицу test с которой будем работать?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-31 12:21:28

Запрос

Код: Выделить всё

USE test
указывает, что мы работаем с базой даных test.
Запрос

Код: Выделить всё

select, insert, update 
test указывает, что мы работаем с таблицой test

Вы случайно до этого с ФоксПро не работали активно? :)
Глюк глюком вышибают!

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-31 12:37:42

Спасибо, Gamerman.

Можно ли использовать опцию "DELAY_KEY_WRITE" для реплицирующихся таблиц?
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-31 12:40:21

А что мануал говорит по єтому поводу?
Глюк глюком вышибают!

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-31 12:43:39

If you set this variable to ALL (DELAY_KEY_WRITE), you should not use MyISAM tables from within another program (such as another MySQL server or myisamchk) when the tables are in use. Doing so leads to index corruption.
Вроде как нельзя. Но не уверен точно, т.к. используем не для всех тамлиц (ALL) а конкретно для некоторых. :unknown:
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-31 12:44:38

А что она делает?
Глюк глюком вышибают!

Аватара пользователя
kozak
сержант
Сообщения: 240
Зарегистрирован: 2007-07-20 15:22:54
Откуда: Запорізька Січ

Re: Дублирующий MySQL

Непрочитанное сообщение kozak » 2009-10-31 12:53:27

--delay-key-write=ALL

Don't flush key buffers between writes for any MyISAM table.
Діла добрих оновляться, Діла злих згинуть. Т. Г. Шевченко.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: Дублирующий MySQL

Непрочитанное сообщение Gamerman » 2009-10-31 13:00:04

delay_key_write Если включен (по умолчанию - включен), MySQL будет учитывать параметр DELAY_KEY_WRITE для команды CREATE TABLE. Это означает, что ключевой буфер таблиц с данным параметром будет сбрасываться на диск не при каждом обновлении индексов, а только при закрытии таблицы. Такой режим работы значительно ускоряет запись ключей, однако в случае использования данного параметра необходимо будет также добавить автоматическую проверку всех таблиц при помощи myisamchk --fast --force. Обратите внимание: если запустить mysqld с параметром --delay-key-write-for-all-tables, то все таблицы будут обрабатываться таким образом, как будто они были созданы с применением параметра delay_key_write. Этот флаг можно снять, запустив mysqld с параметром --skip-new или --safe-mode.
Глюк глюком вышибают!