
- •Содержание
- •Лабораторная работа №1. Выбор и установка платформы для развёртывания сервера убд
- •1. Теоретические сведения
- •2. Пример выполнения практической части
- •Лабораторная работа №2. Установка и первоначальная настройка сервера xampp
- •2. Пример выполнения практической части
- •Лабораторная работа №3. Изучение основных возможностей phpmyadm для управления убд MySql
- •2. Пример выполнения практической части
- •3. Задания для самостоятельного выполнения
- •4.Содержание отчёта
- •5. Контрольные вопросы
- •Лабораторная работа №4. Установка и настройка прозрачного прокси-сервера squid
- •1. Теоретические сведения
- •2. Пример выполнения практической части
- •Лабораторная работа №5. Настройка клиентского программного обеспечения для работы с убд MySql
- •2. Пример выполнения практической части
- •3. Задания для самостоятельного выполнения
- •4.Содержание отчёта
- •5. Контрольные вопросы
- •Лабораторная работа №6. Настройка логирования squid в базу данных MySql с последующим разбором логов
- •1. Теоретические сведения
- •2. Пример выполнения практической части
- •3. Задания для самостоятельного выполнения
- •4.Содержание отчёта
- •5. Контрольные вопросы
- •Лабораторная работа №7. Настройка прав доступа к sql базе данных
- •1. Теоретические сведения
- •2. Пример выполнения практической части
- •3. Порядок выполнения работы
- •4. Варианты заданий
- •5. Содержание отчета
- •6. Контрольные вопросы
- •Лабораторная работа №8. Перенос базы данных MySql на другой компьютер
- •1. Теоретические сведения
- •2. Пример выполнения практической части
- •Лабораторная работа №9. Репликация убд
- •2. Пример выполнения практической части
- •Лабораторная работа №10. Поиск уязвимостей в убд
- •2. Пример выполнения практической части
- •Лабораторная работа №11. Исправление убд после программных или аппаратных сбоев
- •2. Пример выполнения практической части
- •3. Задания для самостоятельного выполнения
- •4. Содержание отчёта
- •5. Контрольные вопросы
- •Список основных консольных команд Ubuntu Server
- •Список часто используемых команд MySql
- •Литература
- •Необходимое программное обеспечение
Лабораторная работа №9. Репликация убд
Цель работы: ознакомиться с механизмом репликации удалённых баз данных
1. Теоретические сведения
Термин "репликация" может означать как простое копирование базы данных на другой компьютер, так и интерактивное обновление подобной второй базы данных при внесении изменений в основную базу данных. Если необходимо просто скопировать базу данных на другой компьютер, можно воспользоваться методом, описанным в лабораторной работе №8. Первые признаки возможностей интерактивного обновления появились только в версии MySQL 3.23.
Репликация может использоваться, что бы увеличить ошибкоустойчивость и быстродействие. Для ошибкоустойчивости нужно иметь две системы и использовать резервный сервер.
Дополнительное быстродействие может быть достигнуто, посылая часть запросов на выборку (select) данных на резервный сервер (где храниться точная копия данных).
Начинаясь с версии 3.23.15, MySQL поддерживает встроенную одностороннюю репликацию. Один сервер действует как главный(master), в то время как другой как резервный. Обратите внимание, что один сервер может быть, как и главным, так и резервным (в разных цепочках). Главный сервер сохраняет полный журнал изменений данных (binary log of updates).
Резервный сервер при соединении с главным, сообщает с какого этапа начать обновление и ждет ответа от главного насчет новых обновлений.
Обратим внимание — если копируется база данных, все модификации к этой базе данных должны быть сделаны на главном сервере! Другая выгода использования репликации — можно получить живые копии из системы, делая копию на резервном сервере, вместо главного.
В процессе настройки репликации могут быть использованы опции binlog-do-db=database_name - будет обрабатываться только указанная база данных binlog-ignore-db=database_name - будут игнорироваться указанные базы данных
При использовании команд mysqladmin refresh mysqladmin flush-logs SQL оператор «FLUSH LOGS» или перезапуска сервера к расширению имени файла журнала будет добавляться инкрементальный номер.
Чтоб учитывать какие файлы журналов использовались Mysqld создает индексный файл, у которого имя совпадает с полным журналом изменений данных(binary update log), и имеет расширение ‘.index’. Можно изменить имя этого файла, указав опцию —log-bin-index=[filename].
ВАЖНО! Полный журнал изменений данных (Binary Update Log) начинается с определенного момента времени. Резервные сервера должны иметь точные копии данных на момент запуска журнала.
При правильной конфигурации резервный сервер соединяется с основным и ждет данных по модификации. Если соединение прерывается, то резервный сервер пытается соединиться снова, каждые master-connect-retry сек. Резервный сервер отмечает момент отключения. Основной сервер не определяет, сколько подключено к нему резервных серверов.
2. Пример выполнения практической части
Создаём специального пользователя репликации на основном сервере с привилегией FILE и разрешением коннекта от всех резервных серверов. Если пользователь только делает репликацию — не даём ему никакие дополнительные привилегии. Например, пользователь repl
(с любых серверов)
GRANT FILE ON *.* TO repl@»%» IDENTIFIED BY »;
Рисунок 1 – Создание пользователя repl на основном сервере
Рисунок 2 – Добавление привилегий пользователю repl
Остановим основной сервер MySQL:
exit;
mysqladmin -u root -p shutdown;
Рисунок 3 – Останов основного сервера
Сделаем копию всей базы данных. (См. Лабораторную работу №8). Распакуем полученную копию на резервных серверах (в соответствующие каталоги).
На основном сервере в файле my.cnf, установим параметры:
[mysqld]
log-bin
server-id=1
server-id — должен отличатся от server_id резервных серверов, возможно — использовать что-то похожее на IP-адрес без точек.
Перезапустим mysql на основном сервере.
Рисунок 4 – Перезапуск основного сервера
На резервных серверах в файле my.cnf, установим параметры:
master-host=
master-user=
master-password=
master-port=
server-id=
После успешного соединения создается файл master.info в том же каталоге что и лог ошибок — он используется, чтоб отслеживать обработку полного журнала изменений данных (Binary Update Log) от основного сервера. Для того чтоб что-то изменить используем команду CHANGE MASTER TO.
3. Задания для самостоятельного выполнения
1. Используя данные основного сервера MySQL настроить репликацию сервера в локальной сети (192.168.100.232:3389) в свой локальный MySQL сервер в виртуальной машине.
4. Содержание отчёта
1. Тема и цель работы
2. Листинги команд терминала
3. Изменённые секции файла конфигурации my.cnf
4. Вывод о проделанной работе
5. Контрольные вопросы
1. Что такое репликация БД?
2. Сколько необходимо иметь серверов для осуществления репликации?
3. Какими привилегиями должен обладать пользователь, под которым выполняется репликация?
4. Назовите различные опции репликации.