Поиск по этому блогу

четверг, 2 июня 2011 г.

с баша

Дима:
плохо он задачи ставит

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


xxx: Фары с надписью "CDЕПАНО В РОССNN" вызывают у меня сомнения о месте своего производства

вторник, 31 мая 2011 г.

Настройка репликации в MySQL

На главном сервере (мастере).
Правим файл /etc/mysql/my.cnf (my.ini – если MySQL сервер работает под Windows):
[mysqld]
# уникальный ID сервера
server-id               = 1
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
# База, которая будет реплицироваться
binlog_do_db           = test_db
Перезапускаем mysql:
/etc/init.d/mysql restart (net stop mysql, net start mysql – под Windows)
Создаем пользователя replication (10.0.0.2 – адрес slave сервера) с паролем slave_password с правами на репликацию:
mysql -u root
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.0.2' IDENTIFIED BY 'slave_password';
FLUSH PRIVILEGES;
Смотрим статус мастера (пример):
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      107 | test_db      |                  |
+------------------+----------+--------------+------------------+
1 row in set
Выгружаем данные из БД:
mysqldump -u root -p --single-transaction --master-data --flush-logs test_db > test_db.sql
Копируем полученный файл test_db.sql на slave сервер.


На slave сервере (реплике):
Правим test_db.sql. Находим строчку
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin. 000003’, MASTER_LOG_POS=107;
и удаляем ее. Сохраняем файл.
Правим файл /etc/mysql/my.cnf на реплике:
[mysqld]
# ID slave должен отличаться от главного сервера
server-id              = 2
binlog_do_db           = test_db
relay-log              = /var/log/mysql/mysqld-relay-bin.log
Перезапускаем сервер:
/etc/init.d/mysql restart
Останавливаем репликацию:
mysql> stop slave;
mysql> reset slave;
Задаем параметры репликации:
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=107, MASTER_HOST='10.0.0.1', MASTER_USER='replication', MASTER_PASSWORD='slave_password', MASTER_CONNECT_RETRY=60;
P.S. Вообще-то как я читал, предыдущую команду можно было прописать в test_db.sql (вместо удаления строчки), но у меня не сработало
Загружаем
данные:

mysql -u root < test_db.sql
Запускаем репликацию:
mysql> start slave;
Смотрим статус репликации:
mysql> show slave status;
Параметры  Slave_IO_Running, Slave_SQL_Running должны быть равны yes.
Для проверки репликации меняем что-нибудь на мастере (создать таблицу, добавить записей и т.п.) и смотрим изменения на реплике.

понедельник, 30 мая 2011 г.

Сегодня..

Надо было сегодня остаться после работы: mysql-ную базу почты с одного сервера на другой перенести и репликацию настроить. Думал по-быстрому :)
Задержался минут на 30 всего, подхожу к выходу - закрыто. Вахтерша ушла, дверь закрыла, сигнализацию включила (на полчаса раньше положенного). Пришлось звонить своему начальнику, он начальнику АХО, а тот уже вахтерше. Еще плюс 30 минут пока она пришла и открыла дверь.
На остановке сажусь в автобус, только отъехали - заглох. Минут 10 водитель ковырялся. Поехали. Ура! Правда в 2 раза медленней чем обычно. Пока доехал, еще пару раз останавливались ) Перед последней остановкой не выдержал, пошел пешком. Обогнал его )
Дошел до дома, поднимаюсь на 5 этаж (надо на 7), навстречу малышня с великом, просят: "Помогите спустить" . Движемся толпой на первый этаж :) А потом опять на седьмой

После отпуска

Встречаются два приятеля после отпуска:
— Ну как отдохнул, где был?
— Неплохо, на юге был — море, фрукты, женщины...
— Да-а, хорошо. А я на даче — болото, огурцы и бабы.