Все просто до неприличия :-)
1. Берем образ (Live GNOME или Live KDE).
2. Качаем Win32DiskImager
3. Распаковываем и запускаем
4. Выбираем образ - жмем Write
5. Безопасно извлекаем флешку и перегружаемся.
Остальное все как обычно.
Hardware, Laptop, ATI, nVIDIA, CentOS, Linux, Ubuntu, OpenSolaris, Solaris, FreeBSD, MS Windows, Vista, XP and etc...
вторник, 18 мая 2010 г.
понедельник, 17 мая 2010 г.
Настройка Master-Slave репликации в MySQL 5
Настройка Master-Slave репликации в MySQL
Исходные данные
- Хост №1 (mysql1) - будущий master, ОС ALT Linux Sisyphus, СУБД MySQL 5.0, существующая база replica;
- Хост №2 (mysql2) - будущий slave, ОС ALT Linux Sisyphus, СУБД MySQL 5.0.
Требуется
Настроить репликацию базы replica на хосте mysql1 на хост mysql2 в режиме master-slave.Порядок действий
На хосте mysql1
В файле конфигурации MySQL (/var/lib/mysql/my.cnf
):- Отключаем параметр skip-networking
- Добавляем параметры:
server-id=1 log-bin=/log/bin.log binlog-do-db=replica binlog-ignore-db=mysql binlog-ignore-db=testПерезапускаем демона.
#service mysqld restartВ консоли MySQL создаём на master-хосте пользователя с полномочиями на репликацию:
$mysql -uroot -p mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'slave'; mysql> FLUSH PRIVILEGES; mysql> USE replica; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; +------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------+----------+--------------+------------------+ | bin.000002 | 98 | replica | mysql,test | +------------+----------+--------------+------------------+Запоминаем параметры File и Position.
Далее создаём дамп реплицируемой базы:
$mysqldump -uroot -p replica > replica.dumpИ переносим этот дамп на slave-хост.
Внимание. Блокировка таблиц будет снята, если выйти из консоли MySQL. Для создания дампа базы и переноса его на slave-хост следует использовать другую пользовательскую сессию.
После выполнения всех операций на slave-хосте в консоли MySQL разблокируем таблицы:
mysql> UNLOCK TABLES;
На хосте mysql2
Создаём базу replica и наполняем её из дампа с master-хоста:$mysqladmin -uroot -p create replica $mysql -uroot -p replica < replica.dumpВ файле конфигурации MySQL (
/var/lib/mysql/my.cnf
):- Отключаем параметр skip-networking
- Добавляем параметры:
server-id=2 master-host=mysql1 master-user=slave_user master-password=slave master-connect-retry=60 replicate-do-db=replica relay-log=/log/slave-relay-bin relay-log-index=/log/slave-relay-bin.indexПерезапускаем демона.
#service mysqld restartЗатем запускаем процесс репликации в консоли MySQL (используя параметры File и Position с master-хоста):
$mysql -uroot -p mysql> SLAVE STOP; mysql> CHANGE MASTER TO -> MASTER_HOST='mysql1', -> MASTER_USER='slave_user', -> MASTER_PASSWORD='slave', -> MASTER_LOG_FILE='bin.000002', -> MASTER_LOG_POS=98; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\GУбеждаемся в том, что параметры Slave_IO_Running и Slave_SQL_Running установлены в Yes.
Краткое резюме
В принципе репликация работает.Потенциальные проблемы:
- Если что-либо меняется на slave-хосте, то, естественно, на master-хост изменения перенесены не будут. К сожалению параметр read-only в конфигурации slave-hosta не срабатывает.
- Если что-то меняется в реплицируемой базе на master-хосте без использования явного подключения к ней (например, запросами вида "
DELETE FROM replica.test_table;
" без предварительной директивы "USE replica;
"), то такие изменения не реплицируются. (Теоретически возможно использование конфигурационного параметра вида replicate-wild-do-table=replica.%, однако так оно работать не захотело.)
mysql> LOAD DATA FROM MASTER;На данный момент, судя по всему, альтернативы переносу данных с помощью дампа не существует.
Дополнительные источники информации
Подписаться на:
Сообщения (Atom)