
- •Содержание
- •Лабораторная работа №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
- •Литература
- •Необходимое программное обеспечение
2. Пример выполнения практической части
Используем метод прямого копирования, который заключается в непосредственном копировании файлов таблиц. Как правило, эта процедура выполняется с помощью таких утилит, как ср, tar или cpio. В примерах этой лабораторной работы используется программа ср.
Как уже отмечалось, применяя методы прямого копирования, обязательно нужно убедиться, что таблицы в процессе резервирования не используются другими пользователями. Если сервер изменяет какую-либо таблицу во время копирования, ее копия окажется искаженной.
Лучший способ обеспечить целостность копий — временно приостановить работу сервера, скопировать файлы и затем снова запустить сервер.
Итак, предположим, что работа сервера временно приостановлена либо подлежащие копированию таблицы защищены от изменения. В таком случае резервирование всей базы данных samp_db в каталог резервирования (DATADIR в этом примере — каталог данных сервера) выполняется посредством следующих команд:
% cd DATADIR
% cp -r samp_db /usr/archive/mysql
Для резервирования отдельных таблиц введём следующие команды:
% cd DATADIR/samp_db
% ср member.* /usr/archive/mysql/samp_db
% ср score.* /usr/archive/mysql/samp_db
По завершению процедуры резервирования можно перезапустить сервер (если его работа была приостановлена) или снять блокировку с таблиц (если сервер все же работал).
Для переноса зарезервированных методом прямого копирования файлов на другой компьютер достаточно еще раз скопировать их в соответствующий каталог базы данных другого компьютера. Однако прежде необходимо убедиться, что файлы соответствуют MyISAM-таблицам и оба компьютера имеют одинаковую аппаратную архитектуру. Иначе содержимое таблицы на втором компьютере может выглядеть очень странно. Следует также проверить, что в процессе инсталляции файлов на другой компьютер пользователи сервера не пытались получить к ним доступ.
Восстановление базы данных
Сначала, если речь идет о восстановлении базы данных mysql с таблицами разрешений, необходимо запустить сервер с опцией —skip-grant-tables. Иначе сервер выдаст сообщение о невозможности поиска таблиц разрешений. После восстановления таблиц разрешений выполните команду mysqladmin flush-privileges, чтобы заставить сервер загрузить и использовать таблицы разрешений.
Скопируйте содержимое каталога базы данных в другое место. Оно может потребоваться в будущем для изучения оставшихся данных поврежденных таблиц.
Загрузите базу данных, используя файлы самых последних архивов. Если эти файлы были созданы программой mysqldump, используйте их в качестве ввода в mysql. Если же восстановление информации выполняется из файлов, непосредственно скопированных из каталога базы данных (например, с помощью команд tar или ср), скопируйте их обратно в каталог данных. В последнем случае перед копированием файлов необходимо временно приостановить работу сервера, а по завершении переноса — снова запустить.
Используя журналы обновлений, повторно запустите все запросы на изменение базы данных, которые были исполнены с момента последнего резервирования. Для этого содержимое журнала обновлений можно представить в качестве ввода для mysql. Если необходимо, определите опцию —one-database, чтобы сервер mysql исполнил запросы только к той базе данных, которая представляет интерес. Если для восстановления информации необходимо использовать все журналы обновлений, запустите в каталоге с этими журналами следующую команду:
%ls -t -r -l update.[0-9]*|xargs cat|mysq| —one-database db_name
Команда Is воспроизводит список файлов журналов обновлений, отсортированный сервером в порядке создания. (Об этом следует помнить, поскольку неаккуратное изменение имен файлов журналов может привести к восстановлению их запросов в неправильном порядке).
В большинстве же случаев используются не все, а только часть журналов обновлений. Например, если запросы к базе данных, выполненные после последнего резервирования, хранятся в файлах с именами update.392, update.393 и т.д., повторно запустить их можно с помощью следующих команд:
% mysql —one-database db_name < update.392
% mysql -one-database db_name < update.393
Если процедура восстановления применяется для устранения результатов случайного выполнения операторов DROP database, drop table или delete, не забудьте перед запуском команды удалить эти операторы из журнала!
Восстановление отдельных таблиц
Восстанавливать отдельные таблицы сложней. Если для восстановления применяется файл архива, созданный утилитой mysqldump и содержащий данные для множества таблиц, администратору придется извлечь из него строки, соответствующие требуемой таблице, и использовать их в качестве ввода для mysql. Это самая легкая часть процедуры восстановления. После нее необходимо из журнала обновлений извлечь записи, соответствующие требуемой таблице. Для выполнения этой процедуры весьма полезной может оказаться утилита mysqlfindrows, возможности которой позволяют извлекать многострочные запросы из журнала обновлений. Еще один вариант — восстановить всю базу данных на другом сервере, а затем скопировать нужную таблицу в исходную базу данных. Эта процедура гораздо проще! Необходимо лишь убедиться, что работа сервера с исходной базой данных приостановлена в процессе копирования файлов в исходную базу.
3. Задания для самостоятельного выполнения
1. Напишите сценарий для переноса своей БД MySQL из ЛР№1-ЛР№6
2. Предоставьте листинги выполненных команд
4. Содержание отчета
Тема и цель работы.
Описание выполнения самостоятельных заданий.
6. Контрольные вопросы
1. Какие инструменты для переноса БД вы знаете?
2. Как выполняется резервирование БД?
3. Опишите последовательность прямого переноса БД.
4. Для чего используются журналы обновлений?
5. Расскажите порядок использования программы mysqldump.