Возможно вы искали: 'Freaky Tuner'

May 15 2025 19:08:56
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Настройка Mysql кластера (mysql cluster replication)

Настройка Mysql кластера (mysql cluster replication)

Ключевые слова: mysql, cluster, replication, (найти похожие документы)

From: TuxR <http://www.rostovlinux.ru>
Date: Mon, 20 May 2006 18:21:07 +0000 (UTC)
Subject: Настройка Mysql кластера

Оригинал: http://www.rostovlinux.ru/content/view/966/56/

Это руководство было написано более года назад и это отличный признак,
что оно не обновлялось с тех пор! Если у вас есть вопросы, пишите
или купите мою книгу (US).


Введение

У вас ДОЛЖЕН быть третий сервер, как управляющий узел, но он может
быть выключен после запуска кластера. Заметьте также, что я не
рекомендую выключать управляющий сервер (смотрите дополнительные
замечания внизу документа для получения более полной информации). Вы
не можете запустить mysql кластер всего лишь с двумя серверами И иметь
настоящую избыточность .

Вам следует также запретить SELinux или применить следующие правила:
(большое спасибо Robin Bowes который рассказал мне это):

allow mysqld_t port_t:tcp_socket name_connect;
allow mysqld_t var_lib_t:file append;
allow mysqld_t var_lib_t:sock_file create;
allow mysqld_t var_lib_t:file read;
allow mysqld_t var_lib_t:sock_file unlink;
allow mysqld_t var_lib_t:file { getattr write };


Несмотря на то, что возможно настроить кластер на двух физических
серверах вы НЕ ПОЛУЧИТЕ возможность "убить" один сервер и чтобы
кластер, при этом, продолжал нормально работать. Для этого вам нужен
третий сервер выполняющий управляющие функции.

Я продолжу разговор о трех серверах,

mysql1.domain.com 192.168.0.1
mysql2.domain.com 192.168.0.2
mysql3.domain.com 192.168.0.3


Сервер 1 и 2 будут парой, которая будет . Это должно быть отлично для
двух серверов за балансировщиком нагрузки или при использовании round
robin DNS, и это хорошая альтернатива репликации. Сервер 3 нуждается
только в минимальных изменениях и НЕ требует установки mysql. Это
может быть low-end компьютер и он может выполнять другие задачи.


Шаг 1: Установка mysql на первые два сервера:

Выполните следующие действия на обоих mysql1 и mysql2:

groupadd mysql
useradd -g mysql mysql
cd /usr/local/
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.15-linux-i686-glibc23.tar.gz
tar -zxvf mysql-max-5.0.15-linux-i686-glibc23.tar.gz
rm mysql-max-5.0.15-linux-i686-glibc23.tar.gz
ln -s mysql-max-5.0.15-linux-i686-glibc23 mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server


Пока не запускайте mysql.


Шаг 2: Установка и настройка управляющего сервера

Вам потребуются следующие файлы из каталога mysql bin/ : ndb_mgm и
ndb_mgmd. Загрузите весь тарболл mysql-max и извлеките
(достаньте/возьмите) их из каталога bin/.

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-5.0.15-pc-linux-gnu-i686.tar.gz/
tar -zxvf mysql-max-5.0.15-pc-linux-gnu-i686.tar.gz
rm mysql-max-5.0.15-pc-linux-gnu-i686.tar.gz
cd mysql-max-5.0.15-pc-linux-gnu-i686
mv bin/ndb_mgm .
mv bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd
rm -rf /usr/src/mysql-mgm


Теперь вам нужно отредактировать конфигурационный файл (для этого
управления):

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi [or emacs or any other editor] config.ini


Теперь вставьте следующее (измените немного, как указано):

[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server (управляющий сервер)
[NDB_MGMD]
# the IP of THIS SERVER (IP этого сервера)
HostName=192.168.0.3
# Storage Engines (Движки хранилищ)
[NDBD]
# the IP of the FIRST SERVER (STORAGE NODE) (IP первого сервера)
HostName=192.168.0.1
DataDir= /var/lib/mysql-cluster
[NDBD]
# the IP of the SECOND SERVER (STORAGE NODE) (IP второго сервера)
HostName=192.168.0.2
DataDir=/var/lib/mysql-cluster
# 2 MySQL Clients (2 клиента MySQL)
# Я оставил это пустым, чтобы позволить быстрые изменения клиентов MySQL
# Вы можете ввести ниэних двух серверов здесь - Я предлагаю вам этого не делать
[MYSQLD]
[MYSQLD]


Теперь запустите управляющий сервер:

ndb_mgmd


Это управляющий сервер mysql, не консоль управления. Следовательно, не
ожидайте никакого вывода (мы запустим консоль позже).


Шаг 3: Настройка серверов хранения БД / SQL и запуск mysql

На каждом из двух серверов хранения БД / SQL (192.168.0.1 и
192.168.0.2) введите следующее (измените немного, как указано):

vi /etc/my.cnf


Нажмите i для перехода в режим вставки снова и вставьте это на обоих
серверах (измените IP адреса на IP адреса управляющего сервера который
вы настроили на шаге 2):

[mysqld]
ndbcluster
# the IP of the MANAGMENT (THIRD) SERVER (IP управляющего (третьего) сервера)
ndb-connectstring=192.168.0.3
[mysql_cluster]
# the IP of the MANAGMENT (THIRD) SERVER(IP управляющего (третьего) сервера)
ndb-connectstring=192.168.0.3


Знайте, что все в секции [mysql_cluster] заместит умолчания в [mysql],
поэтому, если вы определите nodeid, а затем попытаетесь запустить
несколько демонов на тех-же машинах, вам следует знать это!

Сейчас мы создадим каталог данных и запустим движок базы:

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd --initial
/etc/rc.d/init.d/mysql.server start


Если вы сделали один сервер, теперь вернитесь назад к началу шага 3 и
повторите в точности ту же процедуру на втором сервере. Заметьте, что
вам следует использовать только --initial , если вы начали сначала или
сделали изменения в файле config.ini на управляющем сервере.


Шаг 4: Проверка работоспособности

Теперь вы можете вернуться к управляющему серверу (mysql3) и войти в
консоль управления:

/usr/local/mysql/bin/ndb_mgm


Введите команду SHOW, чтобы видеть что происходит. Пример вывода
выглядит так:

[root@mysql3 mysql-cluster]# /usr/local/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.1 (Version: 5.0.15, Nodegroup: 0, Master)
id=3 @192.168.0.2 (Version: 5.0.15, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.3 (Version: 5.0.15)

[mysqld(API)] 2 node(s)
id=4 (Version: 5.0.15)
id=5 (Version: 5.0.15)

ndb_mgm>


Если вы видите

not connected, accepting connect from 192.168.0.[1/2/3]


в первой или в последних двух строках, то у вас проблемы. Пожалуйста,
напишите мне, предоставив столько подробностей, сколько возможно, и я
могу попытаться найти, где вы сделали ошибку и изменить это HOWTO ,
чтобы исправить это.

Если же здесь все в порядке - время проверить MySQL. На любом сервере
mysql1 или mysql2 введите следующие команды: Заметьте, что мы еще не
имеем пароля root.

mysql
use test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest () VALUES (1);
SELECT * FROM ctest;


Вы должны увидеть 1 возвращенный ряд (со значением 1).

Если это работает, теперь идите к другому серверу и запустите такой же
SELECT, и посмотрите, что вы получите. Сделайте Insert с этого хоста и
идите назад к хосту 1, и посмотрите, работает ли это. Если это
работает, поздравляем.

Последний тест - это убить один из серверов, чтобы посмотреть, что
произойдет. Если вы имеете физический доступ к машине, просто
отключите ее сетевой кабель и смотрите, что другой сервер продолжает
работать хорошо (попробуйте запрос SELECT). Если вы не имеете
физического доступа, сделайте следующее:

ps aux | grep ndbd


Вы получите вывод, похожий на этот:

root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd
root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd


В этом случае, игнорируйте команду "grep ndbd" (Последнюю линию), но
убейте первые два процесса, выполнив команду kill -9 pid pid:

kill -9 5578 5579


Потом попробуйте сделать select на другом сервере. Пока вы здесь,
запустите команду SHOW на управляющем узле, чтобы посмотреть, что
сервер отключился. Для рестарта просто введите

ndbd


ЗАМЕТЬТЕ, не

--inital!


Дополнительные замечания об установке

Я настоятельно рекомендую вам прочесть все (и добавить эту страницу в
закладки). Это сэкономит вам много времени поиска.


Управляющий сервер

Я настоятельно рекоммендую, чтобы вы не останавливали управляющий
сервер после запуска по следующим причинам:

* Сервер почти не расходует любые серверные ресурсы.


* Если сервер упадет, вы захотите иметь возможность просто зайти на
него по ssh и написать ndbd для его запуска. Вы не захотите
возиться с другим сервером.


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


* Лог кластера пересылается на управляющий сервер, так что, поэтому
чтобы проверить, что происходит на кластере или или произошло в
последнее время, это хороший инструмент.


* Все команды с клиента ndb_mgm посылаются на управляющий сервер и
таким образом нет команд управления, если нет управляющего
сервера.


* Управляющий сервер необходим в случае реконфигурации кластера
(поломка сети или обрыв сети). В случае, когда он не запущен,
произойдет сценарий "split-brain" (). Арбитражная роль
управляющего сервера требуется для этого типа установки, чтобы
предоставить лучшую сбоеустойчивость (устойчивость к поломкам).


Однако, вы все равно можете остановить сервер, если предпочитаете.


Автоматический запуск и остановка ndbd при загрузке

Чтобы сделать это, выполните следующие команды на обоих узлах mysql1 и
mysql2:

echo "ndbd" > /etc/rc.d/init.d/ndbd
chmod +x /etc/rc.d/init.d/ndbd
chkconfig --add ndbd


Заметьте, что это действительно быстрый скрипт. Перед тем, как
написать его, вам следует проверить, что ndbd уже запущен на машине.



Использование hostname

Вы заметите, что я использую IP-адреса специально для этой установки.
Это для того, что использование hostname просто увеличивает количество
вещей, которые могут пойти неправильно. Mikael Ronstr пояснил:
"Hostname, конечно, работают с кластером MySQL. Но использование
hostname приводит к появлению нескольких источников ошибок, так
система DNS lookup должна быть установлена, иногда /etc/hosts должен
быть отредактирован и они могут быть заблокированы, гарантируя, что
связь между определенными машинами невозможна, кроме как через
определенные порты". Я настоятельно рекомендую, чтобы во время
тестирования вы использовали IP-адреса, если это возможно, а когда это
все заработает изменить их на hostname.


RAM

Используйте следующую формулу для вычисления объема RAM , который вам
потребуется на каждом узле базы:

(Size of database * NumberofReplicas * 1.1) / Number of storage nodes
[ (Размер БД * КоличествоРепликаций * 1.1)/Количество узлов ]

NumberofReplicas по-умолчанию, равен 2. Вы можете изменить его в
config.ini , если вы этого хотите. Так, например, чтобы запустить базу
данных на 4GB с NoOfReplicas , установленным на 2, вам потребуется
всего около 9GB RAM (4 * 2 * 1.1), так что, если у вас есть два узла
БД, вам будет нужно 4.5GB RAM на каждом узле. Для узлов SQL и
управляющего узла вам не требуется много памяти. Помните, что если у
вас поля переменной ширины в MySQL Cluster 4.0 или 5.0, вы можете
обнаружить, что вам потребуется НАМНОГО больше RAM, чем вычисляется по
указанной формуле.


Замечание: Многие люди присылали мне вопросы по вышеприведенной
математике! Помните, что кластер является отказоустойчивым, и каждый
фрагмент данных сохраняется на, как минимум, двух узлах. (2
по-умолчанию, как установленно в NumberOfReplicas). Так что вам
потребуется ДВОЙНОЕ пространство, нужное для одной копии данных,
помноженное на 1.1 для запаса.


Добавление узлов БД

Если вы желаете добавить узлы БД, помните, что 3 - не оптимальное
значение. Если вы переходите с 2 (выше) , то переходите на 4.


Добавление узлов SQL

Если вы хотите добавить другие узлы SQL (например, у вас есть другой
сервер, который вы хотите добавить в кластер, но вам не нужно делать
его узлом БД), поэтому просто добавьте следующее в /etc/my.cnf на
сервере (это должен быть сервер mysql-max):

[mysqld]
ndbcluster
# the IP of the MANAGMENT (THIRD) SERVER (IP управляющего (третьего) сервера)
ndb-connectstring=192.168.0.3
[mysql_cluster]
# the IP of the MANAGMENT (THIRD) SERVER(IP управляющего (третьего) сервера)
ndb-connectstring=192.168.0.3


Далее вы должны убедиться, что есть еще одна линия [MYSQLD] в конце
файла config.ini на управляющем сервере. Перезапустите кластер
(смотрите важное замечание далее) и перезапустите mysql на новом API.
Он должен быть подключен.


Важное замечание по изменению config.ini

Если вы всего лишь изменили config.ini , вы должны остановить весь
кластер и перезапустить его для повторного чтения файла конфигурации.
Остановите кластер командой SHUTDOWN к пакету ndb_mgm на управляющем
сервере , а затем перезапустите все узлы БД.

Несколько полезных опций конфигурации, которые вам потребуются, если у
вас большие таблицы:

DataMemory: определяет пространство, доступное для хранения актуальных
(текущих) записей в БД. Вся DataMemory будет распределена (выделена) в
памяти , поэтому важно, чтобы машина содержала достаточное количество
памяти для обработки размера DataMemory. Заметьте, что DataMemory
также используется для хранения упорядоченных индексов. Упорядоченные
индексы используют около 10 байтов на запись. По-умолчанию: 80MB
IndexMemory IndexMemory - это параметр, который контролирует
пространство, используемое для хэш-индексов кластера MySQL.
Хэш-индексы всегда используются для индексов первичного ключа,
уникальных индексов, и уникальных constraints
(принуждать/ограничивать). По-умолчанию: 18MB MaxNoOfAttributes Этот
параметр определяет количество атрибутов, которые могут быть
определены в кластере. По- умолчанию: 1000 MaxNoOfTables Очевидно
(помните, что каждое поле BLOB создает другую таблицу по различным
причинам - это тоже надо учитывать). По-умолчанию: 128

Смотрите эту страницу на mysql.com для полной информации об
опциях, которые вы можете включить в секцию [NDBD] файла config.ini


Замечание о безопасности

Кластер MySQL не является безопасным. По-умолчанию, каждый может
подключиться к вашему управляющему серверу и все испортить. Я
предлагаю следующие меры предосторожности:

* Установите APF и заблокируйте все порты, за исключением
используемых вами ( НЕ включая любые порты кластера MySQL).
Добавьте IP-адреса узлов вашего кластера в файл
/etc/apf/allow_hosts.


* Запускайте кластер MySQL через вторую сетевую карту на второй
изолированной сети.



Другие ресурсы

Я нахожу следующие ресурсы очень полезными:

* Документация MySQL-кластера. Она постепенно переписывается и
сейчас действительно хороша.



* On-line Backup of MySQL Cluster.



* Defining MySQL Cluster Storage Nodes для информации, которая
вам потребуется, чтобы разрешить больший объем памяти для БД или
большее количество таблиц, индексов, уникальных индексов.


* MySQL Cluster mailing list.


* Google.


* MySQL Forums.


* IRC-канал #mysql на freenode и EFNet. Если вам нужен (open
source) IRC-клиент, я рекомендую Bersirc.



Благодарности

Я должен поблагодарить several others who have contributed to this:
Mikael Ronstr из MySQL AB за помощь мне заставить это работать и
исправление моих глупых ошибок в самом конце, Lewis Bergman за
внимательное чтение этой страницы и указание на возможные улучшения, и
Martin Pala за объяснение окончательных причин для сохранения
управляющего сервера запущеным, как и несколько маленьких изменений.
Спасибо также Terry из Advanced Network Hosts который платил мне
за установку кластера и одновременное написание HOWTO.


Комментарии/Изменения

Я восхищен всеми, кто посылал любые исправления или комментарии; вы
можете сделать это на Этот адрес e-mail защищен от спам-ботов.
Чтобы увидеть его, у Вас должен быть включен Java-Script . Если вы
также действительно затрудняетесь я могу помочь вам.

Пожалуйста, не копируйте этот документ; просто сделайте ссылку на
него. Это просто для предотвращения появления еще большего количества
устаревшей информации в Интернет. Я буду обновлять его. Если вы хотите
что-то изменить, пожалуйста, напишите мне.
1343 Прочтений •  [Настройка Mysql кластера (mysql cluster replication)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Настройка Mysql кластера (mysql clu... Ukraine Vova 08.05.2012
• Настройка кластера MySQL (mysql dat... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка