
- •Содержание
- •Лабораторная работа №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. Пример выполнения практической части
Разработаем комплекс мер для подготовки к возможному сбою базы данных MySQL.
Пункт #1 «проверка таблиц при загрузке системы»
Так как для загрузки демона MySQL используется «rc.d» системы Ubuntu Server, то логично было бы, встроить проверку таблиц в скрипт «/etc/rc.d/mysql» это также даcт возможность вынести нужные опции проверки в главный конфигурационный файл - /etc/rc.conf.
Конечно, можно не встраивать проверку таблиц в стартовый скрипт «/etc/rc.d/mysql», помня то - что «/etc/rc.d/mysql» просто запускает другой скрипт «mysqld_safe», а тот в свою очередь уже имеет нужные строчки по проверке таблиц их только нужно найти и раскомментировать.
Пример: «/etc/rc.d/mysql»:
4 #!/bin/sh
5 # PROVIDE: mysql
6 # REQUIRE: NETWORKING SERVERS
7 # BEFORE: DAEMON
8 # KEYWORD: FreeBSD
9 #
10 # Add the following line to /etc/rc.conf to enable mysql:
11 # mysql_enable (bool): Set to "NO" by default.
12 # Set it to "YES" to enable MySQL.
13 # mysql_limits (bool): Set to "NO" by default.
14 # Set it to yes to run `limits -e -U mysql`
15 # just before mysql starts.
16 # mysql_dbdir (str): Default to "/var/db/mysql"
17 # Base database directory.
18 # mysql_args (str): Custom additional arguments to be passed
19 # to mysqld_safe (default empty).
20 #
21 . /etc/rc.subr
22 name="mysql"
23 rcvar=`set_rcvar`
24 load_rc_config $name
25 : ${mysql_enable="NO"}
26 : ${mysql_limits="NO"}
27 : ${mysql_dbdir="/var/db/mysql"}
28 : ${mysql_args=""}
29 : ${mysql_myisamck="NO"}
30 : ${mysql_myisamck_args="-s -C"}
31 : ${mysql_myisamck_mail_subj="MySQL databases include error!!!"}
32 : ${mysql_myisamck_mail_toaddr="root@localhost"}
33 myisamchk_path="/usr/local/bin/myisamchk"
34 mysql_user="mysql"
35 mysql_limits_args="-e -U ${mysql_user}"
36 pidfile="${mysql_dbdir}/`/bin/hostname`.pid"
37 command="/usr/local/bin/mysqld_safe"
38 command_args="--defaults-extra-file=${mysql_dbdir}/my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null &"
39 procname="/usr/local/libexec/mysqld"
40 start_precmd="${name}_prestart"
41 mysql_install_db="/usr/local/bin/mysql_install_db"
42 mysql_install_db_args="--ldata=${mysql_dbdir}"
43 mysql_create_auth_tables()
44 {
45 eval $mysql_install_db $mysql_install_db_args >/dev/null
46 [ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbdir}
47 }
48 mysql_prestart()
49 {
50 if [ ! -d "${mysql_dbdir}/mysql/." ]; then
51 mysql_create_auth_tables || return 1
52 fi
53 if checkyesno mysql_limits; then
54 eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null
55 fi
56 if checkyesno mysql_myisamck; then
57 echo "Start verification MySQL databases..."
58 SAVE_IFS="$IFS"
59 IFS=""
60 errmes=`eval ${myisamchk_path} ${mysql_myisamck_args} ${mysql_dbdir}/*/*.MYI`
61 IFS="$SAVE_IFS"
62 echo "End verification MySQL databases."
63 if [ "$errmes" ]; then
64 echo "$errmes" | /usr/bin/mail -s "${mysql_myisamck_mail_subj}" "${mysql_myisamck_mail_toaddr}"
65 fi
66 return 0
67 fi
68 }
69 run_rc_command "$1"
Строчки "29-32" это задание значений по умолчанию для опций, которые можно прописать в файле «/etc/rc.conf» и с их помощью управлять поведением «myisamchk».
mysql_myisamck
Может принимать значения YES или NO. Если значение YES то пред запуском «mysqld» будет проходить проверка всех таблиц в «каталоге данных».
mysql_myisamck_args
Строка аргументов, которые будут переданы утилите «myiasmchk». По умолчанию заданы аргументы «-s -C». «-s» - обозначает работу в «тихом» режиме то есть на STDOUT будет выводиться информация, только в случае если в таблицах будет найдена ошибка. «-С» обозначает, что проверка будет происходить только тех таблица в которых были изменения после последней проверки.
mysql_myisamck_mail_subj
Текстовая строка, которая будет темой в письме уведомлении, которое будет отправляться, в случае если в таблицах будет найдена ошибка.
mysql_myisamck_mail_toaddr
Адрес электронной почты, куда будет послано письмо уведомление.
Строка "33" задает путь к утилите «myisamchk».
Строки "56-67" собственно и есть код проверки таблиц и отправки письма в случае нахождения ошибок в таблицах.
Пункт #2 «проверка таблиц по расписанию во время работы сервера»
Реализовать пункта #2 можно разными способами - написать свой скрипт проверки таблиц, в «crontab» прописать расписание выполнения этого скрипта.
Пункт #3 «создание резервных копий БД.
Для реализации пункта #3 будем использовать описанную выше утилиту «mysqldump». и как для пункта будет написан небольшой скрипт, который будет реализовывать следующие действия:
вызывать «mysqldump» для создания копии всех баз данных с обязательным обнулением «журнала обновлений»
созданная копия БД будет сжиматься с помощью «tar».
администратору будет высылаться на электронную почту уведомление, содержащее отчет о выполненных действиях и дополнительную информацию.