Страница 1 из 2
Дублирующий MySQL
Добавлено: 2007-07-21 19:06:43
kozak
Есть рабочие серверы с множеством служб используемых mySQL.
Рядом стоит mySQL сервер в чистом виде, используемый для хранения БД.
Иногда, когда сервер перегружен и максимальное количество запросов превышает допустимое значение,
сервер перестает принимать запросы. Это плохо=)
Появилась идея создания SLAVE-сервера.
По этому поводу появился вопрос по настройке DNS-сервера.
Как я понимаю нужно создать две A-зоны с адресами двух серверов.
И по-принципу "не работает - идем дальше" все должно работать.
Есть предложения?
P.S. Маны, доки читал, на mysql.com был.
Re: Дублирующий MySQL
Добавлено: 2007-07-21 19:16:12
Alex Keda
а о кластере не думал?
Re: Дублирующий MySQL
Добавлено: 2007-07-21 19:29:05
kozak
Звучит страшно=) Нет не думал. С чего лучше начать!?
Re: Дублирующий MySQL
Добавлено: 2007-07-21 19:29:46
Alex Keda
думаю с официально сайта..
по крайней мере - я не делал...
Re: Дублирующий MySQL
Добавлено: 2007-07-24 7:42:54
Sw%00p
репликация думаю поможет
Re: Дублирующий MySQL
Добавлено: 2007-07-26 9:12:54
ginger22
Копай в сторону mysql-proxy
Или как то там.
Re: Дублирующий MySQL
Добавлено: 2009-05-29 13:58:51
kozak
Re: Дублирующий MySQL
Добавлено: 2009-07-24 11:33:44
gfer
Re: Дублирующий MySQL
Добавлено: 2009-07-24 11:42:09
gfer
Re: Дублирующий MySQL
Добавлено: 2009-10-15 13:37:30
weec
ndb советуйте ...
а юзает ли его кто в продакшене?
ndb-engine по типу запросов вообще сильно урезан
kozak, используй репликацию
Re: Дублирующий MySQL
Добавлено: 2009-10-15 13:57:47
kozak
Спасибо, уже собрал, забыл... работает!

Re: Дублирующий MySQL
Добавлено: 2009-10-29 10:07:45
kozak
Вопрос по репликации.
Репликация не работает если не использовать функцию "USE database" перед SQL-запросом.
т.е.
USE test; INSERT INTO `test`.`table` (`ID`, `Data`, `TS`) VALUES (NULL, 'value', CURRENT_TIMESTAMP); - реплицируется отлично.
но если убрать
USE test; то этот запрос не добавляется в бинарный журнал репликации.
Является ли обязательным параметр выборки БД ("USE test") или есть другие варианты решения этой проблемы глобально на уровне сервера?

Re: Дублирующий MySQL
Добавлено: 2009-10-29 10:54:50
Gamerman
Чем именно репликацию делаете?
Re: Дублирующий MySQL
Добавлено: 2009-10-31 11:30:03
kozak
В смысле, "чем"?
Сервер
MySQL
Таблицы
MyISAM
Формат BINLOG -
STATEMENT

Re: Дублирующий MySQL
Добавлено: 2009-10-31 11:42:04
Gamerman
kozak писал(а):В смысле, "чем"?
USE test; INSERT INTO `test`.`table` (`ID`, `Data`, `TS`) VALUES (NULL, 'value', CURRENT_TIMESTAMP);
Клиент какой?
Re: Дублирующий MySQL
Добавлено: 2009-10-31 11:52:12
kozak
PHP mysql_query
Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:08:18
Gamerman
Насколько я знаю, для каждого пакет-запроса PHP создает сессию и потом разрывает. При логине, он подключается к одной БД, которая может не совпадать с нужной.
Если же все запросы выполняются в одной сессии, то выбирать базу нужно только один раз.
Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:12:29
kozak
Тем не менее запрос "USE test;" необходим даже при запросе типа "INSERT INTO `test`.`table`...", где мы итак указываем таблицу test с которой будем работать?
Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:21:28
Gamerman
Запрос
указывает, что мы работаем с
базой даных test.
Запрос
test указывает, что мы работаем с
таблицой test
Вы случайно до этого с ФоксПро не работали активно?

Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:37:42
kozak
Спасибо, Gamerman.
Можно ли использовать опцию "DELAY_KEY_WRITE" для реплицирующихся таблиц?
Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:40:21
Gamerman
А что мануал говорит по єтому поводу?
Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:43:39
kozak
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) а конкретно для некоторых.

Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:44:38
Gamerman
А что она делает?
Re: Дублирующий MySQL
Добавлено: 2009-10-31 12:53:27
kozak
--delay-key-write=ALL
Don't flush key buffers between writes for any MyISAM table.
Re: Дублирующий MySQL
Добавлено: 2009-10-31 13:00:04
Gamerman
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.