Дэн Хотка
(The DBA Role, by Dan Hotka)
Oracle Magazine RE - Июнь 2002
Источник: сайт pinnaclepublishing.com, журнал Oracle Professional, October 2001
В этот раз Дэн Хотка окинет свом пристальным взглядом администраторов баз данных, предложив Вашему вниманию краткий обзор специализаций, обязанностей и должностей, характерных для данной профессии.
Среди моих работ есть доклад, называющийся "Роль администратора БД", который я иногда читаю, если ко мне обращаются с просьбой провести презентацию тематического характера. Мне кажется, что предлагаемый материал может оказаться довольно полезным для членов сообщества Oracle Professional . Статья дает общее представление о том, чем занимается администратор БД, его обязанностях и специализации относительно реляционных БД Oracle. По окончании доклада многие слушатели подходят ко мне со словами: "Как жаль что здесь нет моего начальника, чтобы он мог это услышать". Так вот теперь он сможет это прочитать!
Администратор БД отвечает за целостность информационных ресурсов компании. На нем лежит ответственность по созданию, обновлению и сохранности связанных между собой резервных копий файлов, исходя из задач предприятия. Этот человек должен в мельчайших подробностях знать существующие механизмы восстановления программного обеспечения БД.
Возможны ситуации, при которых администратору БД потребуется на основе логических прикладных моделей создавать элементы физической схемы, а также поддерживать связь пользователей с системой и обеспечивать соответствующий уровень информационной безопасности, следя за тем, чтобы доступ к данным имели только те люди, которые в нем нуждаются.
Администратор БД должен уметь определять узкие места системы, ограничивающие ее производительность, настраивать SQL и программное обеспечение СУРБД и обладать знаниями, необходимыми для решения вопросов оптимизации быстродействия БД.
В большинстве случаев не составит большого труда распознать среди сотрудников фирмы людей, отвечающих за БД. Их можно увидеть в конторе поздним вечером или в выходной день. Они преданы свему делу, заняты работой даже в нерабочие дни и у каждого из них есть сотовый телефон или пейджер. Некоторые из их задач, например, таких как обслуживание схемы , отнимают много времени и подвержены ошибкам. Без участия администратора не обходится решение ни одной мало-мальски серьезной проблемы, связанной с базой данных.
Платформа Oracle не всегда была такой “ навороченной ” . Во времена Oracle V4 администратор БД зачастую оставался лишь разработчиком. Едиственным способом резервирования данных было "холодное" резервирование, то есть копирование всего программного обеспечения БД Oracle и файлов данных только при "выключенной" БД. Выход Oracle V5 и появление SQL*net ознаменовали собой развитие нового подхода клиент-сервер. Кроме того, в Oracle V5 были включены дополнительные средства настойки, такие как explain plan , средства аудита и тому подобное. В помощь администратору БД предоставлялся ряд дополнительных функций, призванных облегчить его работу. Начиная с Oracle V6 стало происходить разделение администраторов по специализациям. Корпорация Oracle выпустила целый пакет приложений; внедрила параллельный сервер; размеры баз данных можно было уже смело охарактеризовать, как очень большие; по этим причинам системой становилось все труднее управлять, что еще более усугубялось наличием ошибок и разрушением данных. Кроме того, в Oracle V6 впервые были введены триггеры и язык PL/SQL, а заинтересованной общественности представлен механизм репликации. Сложность же пакета Oracle V7 достигла небывалых до той поры высот, воплотив понятие целостности ссылочных данных или отношения первичный/внешний ключ на уровне БД. Это позволило упростить написание приложений , однако добавило лишней головной боли администраторам БД. Oracle V8, в свою очередь, познакомил всех с разбиением таблиц и индексов, и массой новых средств индексации. Oracle8i поднял планку еще выше благодаря поддержке файловой системы Интернет, Java-триггеров и т . д.
Каждая из упомянутых версий заставляла админов осваивать, реализовывать, изучать новые возможности и уплотнять свой и без того напряженный рабочий график.
Что касается обязанностей администратора БД, то у него их множество. Среди наиболее важных - резервное копирование и воостановление информации. Механизм резервирования и восстановления данных обязан учитывать зависимость бизнеса от информации. Другими словами, если в Вашей прикладной системе приема заказов через Интернет любая потеря информации является абсолютно недопустимой, то использование схемы "холодного" резервирования, т.е. подразумевающую полную остановку и отключение БД, в данном случае, совершенно неприемлемо. Для того, чтобы найти наилучшее решение, соответсвующее запросам предприятия, администратор должен хорошо разбираться в многообразии методов резервирования и восстановления, знать плюсы и минусы каждого из них.
Кроме того, администратор должен контролировать рост БД. От него требуется держать руководство в курсе относительно предполагаемого роста БД, с тем чтобы иметь возможность своевременно заказать любое необходимое оборудование.
Настройка также является одной из основных зон ответственности администратора БД. И пользователи, и разработчики за советом будут обращаться именно к нему. В нескольких своих книгах я целые главы посвятил важности первичной настройки аппаратного обеспечения и программной среды Oracle как фундамента для последующей разработки приложений и выявлению скрытых ошибок SQL(см . рисунок).
Чем оперативнеее администратор локализует проблему, тем скорее он ее решит. Лучший для этого способ - иметь соответствующий механизм слежения, который бы предупреждал администратора о надвигающихся неисправностях. Большинство неполадок легче исправить до того, как они приобретут глобальный характер. Такой превентивный подход к задаче обнаружения ошибок экономит время и нервы АБД, поскольку последние получают возможность заранее спланировать мероприятия по ликвидации неисправностей и фактически избавить себя от роли пожарного, бросающего все и спешащего на борьбу с внезапно разбушевавшейся стихией.
Если возникла проблема, желательно как можно быстрее добраться до ее первопричины, чтобы ее вовремя нейтрализовать.
Настройка SQL - еще одна область, в которой администратор обязан проявлять свою квалификацию. Для админа было бы полезно обладать иструментом, который бы фиксировал инструкции SQL и сохранял их для последующего анализа. Директивы SQL являются главным источником ошибок в реляционных базах данных, и средство, не разрешающее доступ к инструкциям, вызывающим проблемы, служит всего лишь инструментом мониторинга, от которого мало прока.
Ко всему вышесказанному добавлю, что обычно помимо всего прочего, администратор также занимается созданием тестовых конфигураций БД, управлением схемами приложений, внесением изменений в эти схемы, желательно безошибочных, поддержкой пользователей, выражающейся, к примеру, в добавлении в систему новых юзеров, обеспечением информационной безопасности в виде открытия доступа только к запрашиваемым объектам.
Существует множество спецализаций, связанных с Oracle-приложениями, начиная, в первую очередь, непосредственно с самих конечных пользователей. Вот кто настоящие клиенты администратора. Если Вы имеете дело с Интернет-системой, то иногда прямая связь с пользователями просто невозможна. Предполагается, что все люди, о которых идет речь в этой статье, работают в одной компании. Так вот, пользователям необходим доступ к отдельным объектам базы данных, составляющим их приложение. Обязанность администратора обеспечить им необходимые права для выполнения соответствующих операций. Кроме того, администратор может взаимодействовать с пользователями по вопросам, касающимся функционирования БД и уж тем более когда он выполняет мероприятия по настройке системы.
В крупных вычислительных центрах имеется "справочный стол", своего рода "передовая линия" в борьбе с неисправностями. В такой системе поддержки пользователей занята группа специалистов-разработчиков, либо прикладной администратор БД. Если "справочному столу" удается решить возникшую проблему, то АБД может никогда и не узнать о том, что она вообще возникала.
Вместе с администратором БД должен работать информационный аналитик, чье присутствие гарантирует, что все создаваемое с точки приложения программное обеспечение эффективно использует имеющиеся аппаратные возможности и учитывает нынешнее и будущее окружение СУРБД Oracle.
Программисту могут быть переданы некоторые полномочия администратора БД, касающиеся тестового экземпляра БД. Программист должен обладать, но не должен пользоваться, правом осуществлять миграцию или установку программ из тестовой конфигурации БД в рабочую. Это одна из прерогатив АБД, он отвечает за то, чтобы внедряемые в систему объекты не конфликтовали с уже функционирующими. Кроме того, он несет ответственность за то, чтобы эти объекты поддавались восстановлению в случае отказа системы, либо в случае непреднамеренной или умышленной порчи информации.
Прикладной администратор БД вплотную работает с разработчиками, включая и информационного аналитика, с тем, чтобы удостоверится, что все, что делается с точки зрения программного окружения, реализовывалось и эксплуатировалось наилучшим образом в зависимости от потребностей бизнеса. Прикладной администратор БД обязательно принимает участие в любых мероприятиях по настройке приложения и, как правило, тесно контактирует с конечными пользователями в процессе выявления и исправления шероховатостей системы.
Системный АБД больше заботится о программной среде Oracle в целом, нежели об ее отдельных элементах. В его обязанности входит поддержка аппаратно-программной вычислительной среды в оптимальном состоянии, обеспечивающем максимальную производительность для приложений, использующих среду в своих нуждах. Кроме того, к ним относится выработка соответствующих рекомендаций и принятие решений относительно резервирования/восстановления файлов. Системный администратор БД занимается всем, что касается вопросов производительности и проблем, способных оказать влияние на среду СУРБД Oracle. Он также ответственен за реализацию любых репликаций (replication) и параллельного функционирования, если эти механизмы задействованы в его системе . Обслуживание SQL*Net и Net8 тоже возлагается на системного АБД. В добавок ко всему вышеперечисленному, системный АБД отвечает за любой Web-сервер, с которого осуществляется доступ к базе данных, особенно если этот сервер на платформе Oracle.
Системный администратор занимается установкой и поддержкой аппаратных средств, включая доступ к ним конечных пользователей. В небольших центрах обязанности системного АБД и системного администратора могут исполняться одним и тем же человеком. Системный АБД должен координировать свои усилия с системным администратором, разрабатывая структуру хранения и дублирования информации и планируя будущие запросы СУРБД Oracle.
Сетевой администратор обеспечивает связность элементов вычислительной сети. Без сомнения, под этим подразумеваются пользовательские АРМ, организация и администрирование внутренней и внешней сетей, а также информирование руководства о текущем состоянии системы и рекомендации относительно ее перспектив. Совместно с системным АБД, сетевой администратор осуществляет управление вспомогательными файлами SQL * Net или Net8, необходимыми конечным пользователям для подсоединения к среде Oracle.
Все вращается вокруг информационных потребностей компании. Всегда приходится выбирать между ценой и функциональностью. Скажем, предприятие может нуждаться в системе приема заказов через Интернет, где потеря какой-либо информации абсолютно недопустима. Если речь идет о пятидолларовой мелочевке, то иногда просто не выгодно иметь дублирующую систему стоимостью в несколько сотен тысяч долларов, лишь для того, чтобы страховать операции не превышающие, скажем, 50 долларов, тем не менее подобная ситуация вполне допустима в банковских системах.
Потребности ИС в программном обеспечение проявляются по-разному, но в первую очередь они проявляются в наличие самих бизнес-приложений как таковых. При этом могут понадобится и дополнительные средства, как-то утилиты резервного копирования и восстановления данных, слежения, диагностики и настройки SQL. Все они относятся больше к области вспомогательного ПО, однако могут оказаться незаменимыми для поддержания продуктивности и оперативности обслуживающего персонала базы данных.
Существует несколько видов администраторов БД, а их обязанности вполне могут отличаться от компании к компании. Вот характеристики некоторых типов АБД и занимаемых ими положений:
Тип и размер центра сильно зависит от величины и возможностей компании. Маленькие центры, такие как dot-coms (.com - организации, имеющие только сайт в Интернете - прим.ред .) , небольшие производственные фирмы, или даже крупные отделы, только-только переходящие на Oracle, вполне могут обойтись одним АБД, выполняющим весь спектр задач. С одной стороны это хорошо: ясно к кому обращаться, кто за все отвечает. С другой стороны не все так однозначно. АБД в одних вопросах более копметентны нежели в других в зависимости от подготовки, поэтому иногда нелегко найти специалиста, который бы одновременно хорошо разбирался в администрировании приложений и был на “ ты ” с "железом" и средствами резервирования\восстановления данных Oracle. Кроме того, возлагая всю ответственность на одного человека, следует учитывать его склонности к обучению, сверхурочной работе и т.п.
Для центров средней руки характерна некоторая избыточность персонала, из-за чего они проще переносят смену кадров, и при этом имеется определенная выгода от совмещения обязанностей несколькими людьми, поскольку можно безболезненно отправить сотрудника на учебу или в отпуск, сообща работать по вечерам и выходным и так далее. Даже в таких центрах у АБД все-таки нет ярковыраженной специализации.
В крупных центрах существует четкое разделение АБД по классам, в каждом из которых присутствует по нескольку ступеней, благодаря чему текучесть кадров минимально сказывается на эксплутации БД. Недостатком крупных центров является то, что выполнение любых мероприятий заторможено, поскольку перед этим руководство должно проверить соблюдение всех стандартов, составить соответствующую документацию и провести несколько совещаний.
Потребности администратора зависят от его обязанностей и квалификации. Основной вопрос, на который следует ответить, звучит следующим образом: чем занят обслуживающий персонал Вашей БД и чем Вы хотите, чтобы он занимался? Если ответы на первую и вторую часть этого вопроса не совпадают, то надо определить, что нужно, чтобы привести их в соответствие. Поскольку опытные АБД не только редки, но и недешевы, то, в нашем случае, идеальным выбором стало бы привлечение иструментальных средств. Они могут сделать из младшего АБД старшего и освободить его от лишних манипуляций, чреватых ошибками и отнимающих уйму времени.
У каждой компании свои потребности, основанные на характере используемых приложений. Не существует двух контор с абсолютно одинаковыми запросами, тем не менее Gartner предлагает по этому поводу несколько рекомендаций:
всего занятость администратора < 5 20% 5 или 6 25% 7 или 8 50% > 8 полная
Лучший способ удержать Вашего АБД - это не заставлять его сидеть на службе по выходным и сделать его работу более предсказуемой и контролируемой. Этого легко добиться, увеличив количество администраторов, инструментальных средств или и то, и другое одновременно. Пересечение обязанностей защищает компанию от потери накопленного опыта, одновременно предоставляя АБД возможности для карьерного роста.Стандартизировать скрипты или программные средства. Снизить избыточную деятельность . Воспользоваться услугами консультантов для заполнения пробелов и повышения квалификации существующего персонала.
Должность администратора БД бесспорно может считаться одной из самых недооцениваемых на предприятии. Этот человек в ответе практически за все, что только может пойти не так. Довольно неблагодарно считать устойчивое функционирование системы само собой разумеющимся фактом, а противоположную ситуацию - исключительно виной администратора БД. АБД нуждается в разнообразии средств, способных сделать его работу более продуктивной и избавить от авралов по вечерам и выходным. Кроме того, инструментальные средства позволяют АБД сосредоточится на выполнении своих непосредственных обязанностей вместо того, чтобы заниматься “пожаротушением”, решением неотложных проблем и выполнением рутинных, но от этого не менее подверженных ошибкам, процедур, таких как резервное копирование и реорганизации.