Главная страница
Навигация по странице:

  • Создание баз данных

  • Удаление базы данных

  • Переименование и копирование баз данных

  • Состояние сервера

  • Завершение работы сервера

  • Резервирование данных

  • Система безопасности

  • Изменение прав доступа

  • Отчет о преддипломной практике


    Скачать 0.64 Mb.
    НазваниеОтчет о преддипломной практике
    Дата21.12.2021
    Размер0.64 Mb.
    Формат файлаdocx
    Имя файлаÄÆùàÆ ÅÄ ÅÉÇèÆêèà é êìöÄÉîÇûêÄììÄî ûàìÆÉà.docx
    ТипОтчет
    #312976
    страница5 из 6
    1   2   3   4   5   6

    4.2 Администрирование MySQL


    Главным инструментом администрирования баз данных в MySQL служит утилита mysqladmin. С ее помощью можно создавать, уничтожать и контролировать сервер и поддерживаемые им базы данных.
    Создание баз данных

    С помощью mysqladmin можно создавать новые базы данных:

    mysqladmin -p create DATABASENAME
    Параметр -р указывает, необходимость выдать приглашение для ввода пароля суперпользователя, который задан ранее. Если ввести правильный пароль, то mysqladmin создаст новую пустую базу данных с указанным именем. Поскольку в MySQL база данных - это каталог с группой файлов, команда mysqladmin create создает новый каталог, который будет содержать файлы базы данных.
    Удаление базы данных

    В процессе разработки приложения, вероятно, потребуется создать несколько баз данных для поддержки процесса разработки. Например, обычной практикой в разработке приложений баз данных является создание отдельных баз данных для разработки, тестирования и работы. По завершении разработки следует избавиться от этих промежуточных баз данных. Утилита mysqladmin позволяет удалить базу данных с помощью параметра «drop»:

    mysqladmin -p drop DATABASENAME
    Как и в команде mysqladmin create, DATABASENAME является именем базы данных, которую нужно уничтожить. MySQL не позволит случайно удалить базу данных. После ввода этой команды она предупредит вас, что удаление базы данных потенциально очень опасно и попросит вас подтвердить свое намерение. После удаления базы данных вы можете убедиться в том, что в каталоге data больше нет каталога, служившего ранее этой базой данных.
    Переименование и копирование баз данных

    В MySQL нет утилиты для переименования и копирования баз данных. Поскольку база данных - это просто файлы в некотором каталоге, можно, соблюдая осторожность, переименовывать и копировать базы данных с помощью операционной системы. Хотя использование команд операционной системы позволяет переименовывать и копировать базы данных, результат не сохранит параметров защиты исходных таблиц, поскольку MySQL хранит данные по защите в таблице системной базы данных. Для того чтобы полностью скопировать базу данных, потребуется также продублировать ее информацию по защите, хранимую в системной базе данных MySQL.
    Состояние сервера

    В утилите mysqladmin очень много команд, позволяющих контролировать состояние сервера MySQL. Ввод команды mysqladmin status обеспечивает выдачу состояния сервера в одной строке, которая выглядит следующим образом:

    Uptime: 395 Threads: 1 Questions: 14 Slow queries: 0

    Opens: 10 Flush tables: 1 Open tables: 6
    Выводимые величины означают следующее:

    Uptime - число секунд, в течение которых сервер запущен и работает.

    Threads - число потоков, взаимодействующих с базой в данный момент. Всегда можно увидить хотя бы один поток - тот, который подсчитывает все остальные потоки. Сервер имеет также три других потока, невидимых данной команде, - один обрабатывает сигналы, другой управляет всеми другими потоками и третий ждет входящих соединений.

    Questions - число запросов, переданных базе данных с момента запуска.

    Slow queries - число запросов, выполнение которых потребовало больше времени, чем время, указанное в конфигурации. Соответствующий ключ в конфигурации - long_query_tiroe.

    Opens - число таблиц, открытых с момента запуска сервера.

    Flush tables - количество команд flush, refresh и reload.

    Open tables - число таблиц, открытых в данный момент.

    Поскольку MySQL многопоточна, каждая таблица одновременно может быть открыта несколько раз. Например, можно одновременно выполнять любое число команд SELECT по одной и той же таблице. По этой причине число открытых таблиц может быть больше, чем общее число таблиц в системе.

    Если компиляция MySQL производилась с параметром --with-debug , то mysqladmin status показывает также текущую и максимальную величину используемой памяти.

    Если необходима более подробная статическая информация, то нужно выполнить команду mysqladmin version. Она выдает на экран следующее:

    bin/mysqladmin Ver 7.8 Distrib 3.22.17, for sun-solaris2.6 on spare TCX Datakonsult AB, by Monty

    Server version 3.22.17

    Protocol version 10

    Connection Localhost via Unix socket

    Unix socket /tmp/;ny3ql. sock

    Uptime: 23 mm 58 sec

    Threads: 1 Questions: 15 Slow queries: 0 Opens: 10 Flush tables: 1 Open tables: 6
    Последняя строка совпадает, конечно, с теми данными, которые показывает mysqladmin status. Остальные данные совершенно другие.

    Server version - версия запущенного сервера MySQL.

    Protocol version - версия коммуникационного протокола MySQL, который поддерживает сервер.

    Connection - метод подключения к серверу.

    Unix socket - имя файла сокета, который вы используете для обмена данными с сервером. Если связь с MySQL происходит через TCP/IP, вместо этого пункта будет указан пункт TCP port с номером порта MySQL.

    Uptime - суммарное время работы сервера.

    Две другие команды, mysqladmin variables и mysqladmin extended-status, предлагают дополнительную информацию.

    Поскольку MySQL многопоточна, отследить активность процесса с помощью команды Unix ps не просто. Несмотря на то что выполняется несколько потоков, в списке процессов будет указан только один процесс. MySQL позволяет справиться с этим с помощью команды mysqladmin processlist, которая перечисляет все активные потоки в виде таблицы, в которой точно указано, чем занят каждый процесс. Выдаваемые величины имеют следующий смысл:

    Id - внутренний идентификационный номер потока. Это значение не имеет отношения к каким-либо системным ID процессов. Можно использовать это число в команде mysqladmin kill, чтобы завершить поток.

    User - пользователь, подключенный к серверу через этот поток.

    Host - имя узла, с которого подключился пользователь.

    Db - база данных, к которой подключен пользователь.

    Command - тип команды, выполняемой потоком. Команда может иметь один из следующих типов:

    Sleep - поток ждет ввода пользователя. Большинство процессов должно находиться в этом состоянии.

    Quit - поток в процессе завершения.

    Init DB - поток готовит выбранную базу к взаимодействию. Клиент одновременно может обмениваться данными только с одной базой, но переключение между базами можно осуществить в любой момент.

    Query- поток выполняет реальный запрос. Хотя наибольшая часть взаимодействия с базой данных происходит в виде запросов, эти команды производятся очень быстро и редко появляются в выдаче.

    Field list - поток создает список полей в таблице.

    Create DB- поток создает новую базу данных.

    Drop DB - поток удаляет базу данных.

    Reload - поток перезагружает таблицы доступа MySQL. После перезагрузки все новые потоки будут использовать обновленные таблицы доступа.

    Shutdown - поток находится в процессе завершения всех других потоков и закрытия сервера.

    Statistics – поток генерирует статистику.

    Processes - поток анализирует другие потоки. С этим значением будет показан поток, выполняющий данную команду.

    Connect - поток в процессе установления входящего соединения с клиентом.

    Kill - ппоток завершает другой поток.

    Refresh - поток очищает все буферы и сбрасывает журнальные файлы.

    Файлы журналов MySQL дают еще один способ получения полезной информации для администрирования сервера. MySQL создает главный журнал, если mysqld запускается с параметром --log. Этот журнал ведется в файле /usr/local/var/HOSTNAME.log, где HOSTNAME - имя машины, на которой запущен MySQL. В этот журнал записываются подключения к серверу и команды, посылаемые ему клиентами.

    MySQL поддерживает еще один журнал, пригодный для чтения. Если запустить MySQL с параметром -log-update, будет создан файл с именем HOSTNAME. #, где HOSTNAME имя машины, a #- уникальное число. В этом журнале содержатся все изменения, вносимые в таблицы баз данных. Этот журнал создается в виде SQL, поэтому все операции можно воспроизвести на другом сервере баз данных.
    Завершение работы сервера

    Следующая команда производит корректное завершение работы сервера MySQL:

    mysqladmin -p shutdown
    Эта команда - самый правильный способ завершения работы сервера. Если MySQL запущен с помощью safe_mysqld и попытаться закрыть сервер каким-либо другим способом, safe_mysqld просто запустит еще один экземпляр сервера.
    Резервирование данных

    Нельзя переоценить важность регулярного резервирования данных. Без работоспособной резервной копии в результате аварии питания могут быть потеряны месяцы и годы работы. В то же время при хорошо спланированном резервировании можно за короткое время восстановить данные почти при любой аварии.

    Хотя технически полного резервирования данных вполне достаточно для восстановления после потери данных, его иногда трудно осуществить. Когда имеется много данных, файлы, необходимые для полного резервирования, могут занимать слишком большое дисковое пространство. Поэтому общепринято осуществлять полное резервирование раз в неделю или через небольшие промежутки времени, а ежедневно производить резервирование данных, изменившихся с момента последнего полного резервирования. Это называется инкрементным резервированием.

    При использовании MySQL инкрементное резервирование можно производить, используя такую возможность сервера баз данных, как «update log» - журнал изменений MySQL. Если сервер баз данных mysqld запущен с параметром --log-update, то все изменения в базе данных будут сохраняться в файле в виде команд SQL. Изменения будут сохраняться в порядке их производства. В результате получается файл, который, будучи обработан монитором mysql, воспроизведет все действия, произведенные над базой данных. Если журнал хранится с самого образования базы данных, то будет восстановлен весь жизненный цикл базы данных, который приведет ее в текущее состояние.
    Система безопасности

    MySQL использует собственный сервер баз данных для обеспечения безопасности. При первоначальной установке MySQL создается база данных под названием «mysql». В этой базе есть пять таблиц: db, host, user, tab-les_priv, и columns_priv . Более новые версии MySQL создают также базу данных с названием func, но она не имеет отношения к безопасности. MySQL использует эти таблицы для определения того, кому что позволено делать. Таблица user содержит данные по безопасности, относящиеся к серверу в целом. Таблица host содержит права доступа к серверу для удаленных компьютеров. И наконец, db, tables_priv и со-lumns_priv управляют доступом к отдельным базам данных, таблицам и колонкам.
    Изменение прав доступа

    MySQL загружает таблицы доступа при запуске сервера. Преимуществом такого подхода по сравнению с динамическим обращением к таблицам является скорость. Отрицательная сторона состоит в том, что изменения, производимые в таблицах доступа MySQL, не сразу начинают действовать. Для того чтобы сервер увидел эти изменения, необходимо выполнить команду mysqladmin reload. Если таблицы изменяются с помощью SQL-команд GRANT или REVOKE, явно перегружать таблицы не требуется.
    1   2   3   4   5   6


    написать администратору сайта