Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Method_ЛР_БД(1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
921.09 Кб
Скачать

10.6 Контрольні питання

1.Напишіть скрипт з курсором по завданню викладача.

2.Як працює курсор?

3.Розкажить про курсор Вашої роботи або роботи іншого студента.

Лабораторна робота №11 розподілена база даних

11.1 Мета роботи

1. Набуття навичок аналізу систем зберігання даних.

2. Ознайомлення з засобами роботи з розподіленими БД.

3. Ознайомлення з реплікацією.

4. Налаштування реплікації.

11.2 Теоретичні відомості

Реплікація (replication) – механізм синхронізації вмісту БД, під яким розуміється копіювання даних з одного джерела на інший (або на декілька інших) і навпаки.

Реплікація може знадобитися з різних причин. Наприклад, для балансування навантаження; для створення резервної копії з другого сервера, щоб не зупиняти основний сервер; для побудови звітів з інтенсивним використанням БД, коли краще навантажувати не основну БД, а резервну. На рис. 11.1 показано, як працює реплікація.

Рис. 11.1 Схема розподіленої БД

11.3 Завдання

  1. Створити БД з трьох таблиць (лаб. робота №2), побудувати між ними зв’язки.

  2. Налаштувати реплікацію.

11.4 Методика виконання

11.4.1 Налаштування master-master реплікації

Маємо сервер Сервер №1 з адресою ІР 192.168.1.5 і Сервер №2 з адресою ІР 192.168.1.6. Всі кроки виконуються з урахуванням того, що в даний момент на Сервері №1 база знаходиться під навантаженням, в неї можуть вноситься зміни, тому не можна допустити втрату даних.

Весь процес налаштування можна умовно розділити на два етапи:

• на першому етапі організуємо master-slave реплікацію, де головним буде Сервер №1, а підлеглим буде Сервер №2;

• на другому етапі організовуємо зворотню master-slave реплікацію, і сервера починають збирати інформацію з логів один одного.

Перший етап. Налаштуємо master-slave реплікацію:

    1. На Сервері №1 налаштовуємо головний майстер-сервер. Для цього потрібно:

1. Зупинити MySql сервер;

2. перейти в його папку %Шлях до MySQL%\MySQL Server 5.Х\data\ і скопіювати в тимчасову папку його вміст або додати в архів. Конкретно нам потрібно скопіювати папки з необхідними БД, а також файл ibdata1; у разі, якщо використовуються таблиці типу MyISAM, то достатньо копіювання тільки папок, а копіювання файлу ibdata1 не потрібне.

3. перейти в папку %Шлях до MySQL%\MySQL Server 5.Х\ і додати в файл my.ini наступне:

auto_increment_increment=2

auto_increment_offset=1

 

# Master records

log-bin = my-bin

server-id = 1

slave-compressed = 1

binlog-do-db = db1

binlog-do-db = db2

auto_increment_increment і auto_increment_offset встановлюють для даного сервера автоматично призначення тільки непарних id. Цим самим уникнемо додавання запитів з однаковим id на різні сервера, і при синхронізації дані будуть цілісними;

log-bin – встановлює назву файлу лога транзакцій;

server-id – унікально ідентифікує сервер серед учасників реплікації;

slave-compressed - включає стиснення потоку;

binlog-do-db - вказує БД, за якими вести лог транзакцій.

4. стартувати MySQL сервер; 5. Створити обліковий запис з правами на реплікацію:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'192.168.1.6' IDENTIFIED BY 'password';

На Сервері №2 налаштовуємо підлеглий сервер. Потрібно:

6. зупинити сервер; 7. розпакувати архів БД серверу № 1 у відповідну папку % Шлях до MySQL% \ MySQL Server 5.Х \ data \ з заміною існуючих. 8. додати в my.ini такі записи:

auto_increment_increment=2

auto_increment_offset=2

 

# Slave records

server-id=2

relay-log=slave-relay-bin

relay-log-index=slave-relay-bin.index

 

master-host=192.168.1.5

master-user=slave_user

master-password=password

master-port = 3306

master-connect-retry=10

replicate-do-db=db1

replicate-do-db=db2

master-host – ім'я хоста головного сервера або IP-адреса для реплікації;

master-user – ім'я користувача, яке підлеглий сервер буде використовувати для аутентифікації при приєднанні до головного сервера; master-password – пароль, який буде використовуватися при приєднанні підлеглого сервера до головного сервера;

master-port – порт, який слухає головний сервер;

master-connect-retry – час очікування в секундах для потоку підлеглого сервера перед повторенням спроби встановити зв'язок з головним сервером у разі припинення роботи головного сервера або втрати зв'язку. За замовчуванням – 60;

replicate-do-db – повідомляє підлеглому серверу, що реплікуватись повинна тільки зазначена БД;

9. запустить MySQL сервер.

Другий етап. На Сервері №2 налаштовуємо головний майстер-сервер паралельно з робочим підлеглим:

10. Створимо обліковий запис з правами на реплікацію:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'192.168.1.5' IDENTIFIED BY 'password';

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]