|
Программирование >> Создание клиентов mysql
Поддержание целостности данных 431 лишь имени пользователя и пароля недостаточно. Должен быть указан еще и перечень разрешенных IP-адресов. Сам компьютер, на котором запущен сервер MySQL, должен находиться в изолированном помещении с ограниченным доступом. О схеме выдачи привилегий в MySQL пойдет речь в главе 27, Безопасность . В некоторых организациях есть одна большая база данных, доступ к которой разрешен множеству пользователей, но только в режиме чтения. В других организациях каждому пользователю предоставляется собственная закрытая база данных. Следует регулярно проверять таблицы привилегий и журнальные файлы для выявления нарушений безопасности. Можно воспользоваться командой ff, чтобы быстро просмотреть изменения, внесенные в таблицы привилегий. Эта системная команда возвращает отличающиеся фрагменты двух текстовых файлов. Если дампы базы данных создаются регулярно, можно сравнить отличия предыдущего дампа от текущего. Рассмотрим пример, показанный в листинге 23.1. Сравнение дампов позволяет сделать вывод о том, что в базу данных была добавлена учетная запись нового пользователя, которому предоставлены полные привилегии на доступ ко всем базам данных. В Windows имеется адаптированная версия команды dif f, входяш;ая в состав пакета nus. Кроме того, многие текстовые редакторы Windows обладают средствами сравнения текстовых файлов. # diff then.sql now.sql 62абЗ > INSERT INTO db VALUES (% ,mysql ,hacker,Y,Y,Y,y,Y,y,N,Y,Y,Y); 170al72 > INSERT INTO user VALUES (%,-hacker N,N,N,N,N,N,N,N,N,N,N, N,N,-N); Просмотр журнальных файлов MySQL позволяет вгявить необгчные операции или обнаружить признаки неэффективной организации таблиц. Подробнее о журнальных файлах, создаваемгх программой MySQL, рассказывается в главе 24, Физическое хранение данных . Эти файлы очень быстро разрастаются, поэтому необходимо регулярно осуществлять их ротацию. С помощью инструкции FLUSH LOGS можно заставить сервер начать новые журнальные файлы, но предварительно следует переименовать существующие файлы и поместить самый старый файл в архив. В Linux-дистрибутив MySQL входит сценарий mysql-log-rotate, автоматизируюш;ий этот процесс. Регулярно проверяйте таблицы на предмет наличия в них ошибок. Подобную проверку также можно делать в автоматическом режиме. В UNIX для этого используется программtab, а в Windows -программа-планировщик. Поиск ошибок в таблицах МуШАМ можно вести с помощью утилит amchk или инструкции CHECK TABLES. Не забудьте сохранить полученные результаты в файле для последующего анализа. Если в таблице обнаружено повреждение, его можно немедленно исправить. У демона есть опция при наличии которой в строке запуска демон будет пытаться автоматически восстановить поврежденные таблицы. рошее решение на случай непредвиденных аварий, например таких, которые происходят вследствие внезапного выключения питания. Подготовка к катастрофе Как уже говорилось выше, компьютер, на котором работает сервер MySQL, должен находиться в изолированном помещении. Систему нужно защищать не только от незаконного проникновения, но и отфизических повреждений, в томчисле от природных катаклизмов. Подключите систему к источнику бесперебойного питания, чтобы в случае крайней необходимости ее можно было корректно выключить. Внезапные потери питания способны привести к повреждению таблиц. Несмотря на все меры предосторожности, стопроцентной защиты от катастроф не существует. Иногда жесткие диски просто перестают работать. Пожары и землетрясения, слава богу, случаются редко, однако их последствия могут быть ужасающими. Но самые серьезные разрушения обычно происходят по вине пользователей. Небольшое недоразумение превращается в крупную проблему, если у администратора нет плана. Например, можно легко забыть заблокировать таблицы перед их восстановлением, что приведет лишь к ещебольшему разрушению данных. Чтобы защитить себя от подобных неприятностей, регулярно создавайте резервные копии и храните их вне сервера. Продумайте систему маркировки носителей резервных копий, чтобы их можно было легко идентифицировать. Не забудьте протестировать средства восстановления данных. Инсталлируйте MySQL в другой системе и восстановите резервную копию на пустом месте . Регулярно проверяйте архивы, чтобы защитить себя от неприятных сюрпризов. О создании резервных копий и восстановлении таблиц будет рассказываться в главе 25, Устранение последствий катастроф . Поддержка пользователей Были проведены серьезные научные исследования в области моделей данных, но ни в одной из них нельзя учесть природу самих пользователей и особенности их работы с базами данных. По мере того как пользователи знакомятся с возможностями сервера и их базы данных разрастаются, пользователи изобретают новые способы взаимодействия с сервером. Сама программа MySQL не стоит на месте, а постоянно совершенствуется. Администратор баз данныхобязан следить за тем, чтобы потребности пользователей соответствовали возможностям сервера. Администратор должен понимать, зачем пользователям нужна та или иная база данных. Потратьте время на изучение операций, выполняемых над хранимыми в ней данными. Например, база данных с информацией о кинофильмах может служить разным целям. Есл мстно, что она испо льзуется служащими фирмы по прокату видеокассет, то предъявляемые к ней требования будут одними, а если к ней обращаются миллионы пользователей Internet как к интерактивной энциклопедии, то требования станут совершенно другими. Нужно также учитывать особенности взаимодействия пользователей с системой. Если большинство из них находятся в системе в рабочее время, то можно спланировать обслуживающие процедуры на период наименьшей активности, т.е. на ночь. Пользователи не знают структуру работы системы так же хорошо, как администратор, поэтому он может подсказать им наиболее эффективные способы решения основных задач. Разработка и внедрение стандартов 433 Зная текущие потребности нности работы пользователей, несложно предсказать их будущие запросы. Продумайте заранее возможное расширение системы. Если база данных каждый день увеличивается на 100 Мбайт, очень скоро понадобится покупать новый жесткий диск или же сбрасывать старые данные в архив. Довольно часто происходят изменения самой программы MySQL. Организуйте регулярное обновление версий программы. Разработчики MySQL всегда сообщают о том, насколько стабилен тот или иной выпуск, чтобы пользователи могли решить, стоит ли на него переходить. Следите за новыми возможностями программы, которые позволят повысить эффективность работы с системой. Новые пользователи должны быть посвящены в детали функционирования системы. Нужно не только создать для них учетные записи, но и познакомить их с существующим порядком работы. Сделайте краткий обзор утилит, имеющихся в распоряжении пользователей, и укажите, где можно найти дополнительную информацию. Продолжительность обучения зависит от сложности системы и уровня подготовки пользователей. Пользователи рассчитывают на помощь администратора в решении проблем, связанных с базами данных. Администратор может потребовать от пользователей составлять отчеты о замеченнгх аномалиях. Иногда приходится заниматься разрешением конфликтов. Нужно заранее предусмотреть ситуацию, когда кто-то из пользователей попытается монополизировать системные ресурсы. Старайтесь переносить выполнение особо ресурсоемких заданий на периоды пониженной активности системы. Разработка и внедрение стандартов В главе 7, Проектирование баз данных , говорилось о важности планирования жизненного цикла системы. Независимо от того, принимал ли администратор участие в разработке спецификации проекта, он должен на основании этой спецификации составить формальный план обслуживания базы данных. Как минимум, нужно стандартизировать процедуру доступа пользователей к базе данных. Желательно также описать правила именования таблиц и столбцов. Это можно оформить в виде руководства по стилю, пример которого приведен в приложении Д, Руководство по оформлению SQL-сценариев . Задокументируйте каждую операцию, выполняемую над базой данных. Сюда входят уже упоминавшиеся ранее процедуры резервного копирования и восстановления, а также операции, уникальные дляданной системы. Составляйте описание так, чтобы его мог понять другой администратор, ведь если по какой-то причине вы больше не сможете обслуживать систему, на ваше место придется взять другого человека. Помимо самой базы данных администратор должен участвовать в проектировании и реализации приложений, предназначенных для работы с ней. Программисты могут больше разбираться в особенностях того или иного языка и не знать оптимальных методик взаимодействия с базой данных. Кроме того, в обязанности администратора входит анализ и верификация существующих приложений баз данных. Опыт администратора позволяет ему лучше ориентироваться в выборе таких приложений, как, например, генераторы отчетов. Прежде чем рекомендовать то или иное приложение, обязательно протестируйте его на имеющейся базе данных.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |