 |
Авг. 4, 2011, 3:40 п.п.
|
 |
 |
 |
 |
На сервере должен быть установлен php с поддержкой mysqli.
1. Необходимо создать базу данных, на которой будет производится мониторинг.
# mysqladmin -u root create system_monitor
2. Далее в этой базе данных необходимо создать 2 таблицы:
CREATE TABLE `master_status` (
`replication_date` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
CREATE TABLE `slave_status` (
`replication_date` datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
3. После этого необходимо добавить в крон следующий скрипт. Данный скрипт производит обновление поля Дата в своей таблицы и проверяет по Дата в таблице мастера, если время с текущем временем будет расходится более чем на 5 минут, будет выслано сообщение и рассинхронизации ...
|
| |
 |
Март 15, 2010, 12:04 п.п.
|
 |
 |
 |
 |
Иногда репликация MySQL сервера нарушается, без возможности легкого восстановления, и продолжить работу репликации можно только после повторной синхронизации.
Сделать это не так сложно, ниже будут описаны шаги, которые необходимо сделать.
Master server:
Введите в консоли
mysql – u root -p
use exampledb;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS\G;
File: replication.001784
Position: 20975236
Запишите данную информацию.
Далее произведите выход
quit;
Создайте дамп данных базы:
mysqldump -u root -p --opt exampledb --lock-all-tables --add-drop-table >exampledb.sql
Разблокируйте таблицы базы данных exampledb.
mysql -u root -p
UNLOCK TABLES;
quit;
Загрузите дамп на slave сервер:
sftp user@slaveIP:/home/user
put exampledb ...
|
| |
 |
Ноя. 6, 2009, 8:02 д.п.
|
 |
 |
 |
 |
Иногда возникают ситуации, когда необходимо очистить DB от таблиц, это можно сделать простым способом DROP DATABASE DBNAME; CREATE DATABASE DBNAME; , но иногда это метод не пригоден, если допустим используют симлинки в путях расположения DB. Чтобы заново не делать симлинк, можно просто очистить DB от таблиц. TRUNCATE DATABASE к сожалению не сработает, так как нет такой команды в синтаксисе MySQL, но можно пойти немного в обход, выполнив следующую команду вы удалите все таблицы из DB:
mysql -u root DBNAME -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "drop table " $1 ";"}' | mysql -u root DBNAME
|
| |
|
|