Sql dba что это
Различие между «SYSDBA», «SYSOPER» и «DBA» в базе данных Oracle
Начинающий разработчики часто путают SYSDBA и DBA между собой. Поэтому столь необходимо осветить различие между ними. Вкратце, SYSDBA – это системная привилегия, а DBA – это роль.
SYSDBA и SYSOPER – это специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка истанса; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA или SYSOPER.
О системной привилегии SYSDBA
Привилегии SYSDBA и SYSOPER позволяют получать доступ к базе данных, даже если база не открыта. Контроль этих привилегий находится за пределами компетенции самой базы данных. SYSDBA и SYSOPER могут также быть расценены как тип подключения, который позволяет выполнять определённые операции для которых привилегии не могут быть назначены другим способом.
Обзор возможностей каждой из привилегий:
Выборка пользователей, которые имеют SYSDBA или SYSOPER привилегии:
SQL>column sysdba format a10
SQL>column sysdba format a10
SQL>select * from v$pwfile_users;
USERNAME SYSDBA SYSOPER
———- ——– ———-
SYS TRUE TRUE
SCOTT TRUE FALSE
О DBA роли
Роль DBA – это предопределённая роль, которая автоматически создаётся для каждой базы данных Oracle. Эта роль содержит все системные привилегии, кроме SYSDBA и SYSOPER. Поэтому она очень мощная и должна назначаться только администраторам, которым требуется полный доступ.
Выборка всех ролей с базы данных:
SQL> select role from dba_roles;
ROLE
———–
CONNECT
RESOURCE
DBA
…..
Выборка всех пользователей, которым назначена DBA роль:
SQL>select * from dba_role_privs where granted_role = ‘DBA’
GRANTEE GRANTED_ROLE ADM DEF
———– ——————- —– ——
SYS DBA YES YES
SYSMAN DBA NO YES
LETS DBA NO YES
SYSTEM DBA YES YES
Замечание: вы не можете назначить привелегию SYSDBA для роли. Это приводит к ошибке:
ORA-01931: cannot grant SYSDBA to a role
Для пользователя базы данных могут быть назначены роль DBA и привилегия SYSDBA:
SQL> select * from dba_role_privs where granted_role = ‘DBA’
GRANTEE GRANTED_ROLE ADM DEF
———- ——————- —— —–
SYS DBA YES YES
SCOTT DBA NO YES
SYSMAN DBA NO YES
LETS DBA NO YES
SYSTEM DBA YES YES
Литература: Oracle® Database Administrator’s Guide
Кто такой — DBA. Краткий обзор
По материалам статьи Steve Jones на sqlservercentral.com: « What’s a DBA? — An Overview»
Я получаю этот вопрос уже больше чем несколько раз. Обычно он исходит от кого-то, кто желает стать DBA или только начинает свой путь на этом поприще, но я думаю, что администраторы также часто задаются вопросом, чем же является DBA и почему он так необходим. Почему не возможно эту работу поручить только системному администратору? Или старшему разработчику? Есть большое количество серьезных причин, по которым и я думаю, что DBA выполняет важную, узкоспециализированную работу в компании.
Я начал писать эту статью в прошлом году, но это быстро превратилось в длинный цикл статей. Сейчас, я хочу нарушать последовательность изложения цикла и сделать краткий обзор того, чем должен заниматься DBA с учётом полученных от читателей замечаний, предложений и т.п. Эта статья о том, как я вижу роль DBA, и основывается на более детальных статьях, относящихся к режимам работы и ролям различных типов DBA, которые я вижу в мире.
Кто такой — DBA?
Существует большое количество различных режимов работы DBA и не существует хорошего описания содержания его работы. Из того, что я видел, есть несколько основных типов DBA:
Быть DBA (вообще) утомительное занятие. Вы должны планировать развитие базы на будущее, резервировать место, где ваша схема будет размещаться или расширяться. План роста чреват множеством ошибок и просчётов. Эта работа не похожа на программирование с помощью «C» или Visual Basic, когда ответственность ограничивается уровнем пользовательского приложения. Ваши решения затрагивают все данные и имеют далеко идущие последствия. Так как Вы работаете в ориентируемой на массивы данных среде (set-oriented), Вы можете легко допустить ошибку, которая затронет большое количество элементов этих данных. В отличие от класса или структуры, где Вы имеете дело с не большими порциями данных (то есть, один пользователь), единственный SQL запрос может затронуть всех пользователей структуры. Скольких из Вас мучили сомнения при написании delete с предложением where?
Кто должен заботится о системе?
В разных компаниях это может выполняться по-разному. Вообще, в малых компаниях, DBA мог бы исполнять все перечисленные выше роли и применять сервисные пакеты, обновления и т.д. В больших фирмах, DBA не успеет делать дополнительно что-нибудь на NT/UNIX, а сможет только обслуживать само приложение (SQL/Oracle/DB2, и т.д.). В моей компании, я обслуживаю всё, что связано с SQL, включая сервисные пакеты для SQL. Сервисные пакеты для NT/2000 и заплаты применяются sysadmin-ом. Он также заменяет/добавляет жесткие диски, память и т.п. Исполняет резервирование на ленты. Я просто гарантирую, что SQL Server будет работать в требуемом режиме и довожу до сисадмина, нуждаюсь ли я в чём-либо.
Трудно решить, хотите ли Вы стать DBA. С одной стороны это может быть скучно, если всё работает хорошо (для меня это теперь вид раздражения). Но когда что-либо ломается, возникает огромное давление и напряжение. Варианты поведения, когда база данных «умерла» и Президент компании заходит в Ваш офис, чтобы спросить о её состоянии, не преподают ни в какой школе.
Подготовка к DBA-DOM
Изучайте реляционную теорию баз данных. Читайте об этом, и о том, что люди думают по этому поводу. IMHO (по моему скромному мнению), нет никакого «правильного» пути, но существует большое количество особенностей в любом отдельно взятом дизайне. Учитесь столько, сколько Вы можете, и затем принимайте решение, которое соответствует вашей ситуации. Я имею большой опыт в организации сети также как и в программировании, и я думаю, что это действительно мне помогает. Я понимаю, как построена операционная система, и я имею представление, что происходит внутри компьютера. Знание того, как данные перемещаются по сети, также поможет спроектировать лучшую систему и избежать многих проблем. В сегодняшнем мире, я думаю, понимание принципов сетевых соединений является очень важным. В MS мире умение программировать систему требуется только если Вы хотите быть системным программистом. В *nix мире, знание того, как разрабатываются системные утилиты полезно, но я не думаю, что это обязательно требуется.
Заключение
Всё, что изложено в этой статье — это моё мнение и мои эмоции, основанные на личном опыте и изучении соответствующих материалов. Я уверен — некоторые люди, не согласятся со мной, но я хочу иметь обратную связь, чтобы вносить изменения в эту статью. Я особенно хотел бы получить замечания и дополнения от non-SQL Server DBAs. Если Вы знаете кого-то, кто является Oracle, DB2 или другого типа DBA, пожалуйста перешлите ему(ей) эту статью, и попросите, чтобы они послали мне своё мнение об этой статье Steve Jones
Один день из жизни DBA Microsoft SQL Server
В арсенале Microsoft SQL Server есть одна интересная штука – service broker. По сути своей это очередь сообщений, встроенная в СУБД, способная обеспечить транзакционную целостность данных. Вещь удобная и, в грамотных руках, способная выстроить систему обмена между SQL Server’ами без применения дополнительных внешних сервисов – прямо из коробки.
С одной стороны service broker удобен, но с другой – от него не мало сюрпризов, способных поломать голову нюансами своей работы. О решении одного из таких сюрпризов поговорим прямо сейчас.
Обнаружили, что логи MS SQL Server, одной из наших, систем жутко забиты сообщениями от service broker типа :
Не долгие поиски на просторах всемирной сети так или иначе выводили на информацию о том, что какие то данные в БД закораптились и требуется их обнаружение (для дальнейшего восстановления) при помощи инструкции DBCC CHECKDB. Счастье было не долгим, ибо данный подход не выявил ни одной проблемы – ни в пользовательских БД, ни в системных.
Так как логи продолжали ужасать своим натиском (пару десятков записей за несколько секунд), а первый план по выявлению причин этого “наводнения” провалился – было решено вести поиски на стороне service broker, ибо читался след от брокера – как минимум по словам “dialog transmission ”.
Подобные поиски в системах начинаются с просмотра очереди на отправку sys.transmission_queue – не стал исключением и наш случай. Первый же select из sys.transmission_queue вывалил на экран тот самый “Could not continue scan with NOLOCK due to data movement”, что с одной стороны вселило уверенности, что копаем в правильную сторону, но с другой – как выявить проблему, если select заканчивается таким сообщением?
Лезем в данные по конечным точкам диалогов sys.conversation_endpoints. С ужасом обнаруживаю, что там висит около 12 миллионов не закрытых диалогов. Первые 10 минут зачистки ненужных накоплений показали, что впереди нас ждет целая неделя ожиданий – ибо чистка протекала крайне медленно. Само закрытие диалога было долгим. У нас был главный подозреваемый — куча не закрытых диалогов service broker’а и надо было его “расколоть”.
Так как сидеть целую неделю, и закрывать диалоги не хотелось, был накидан такой план:
через sqlcmd пачками вычитываем хендлеры подвисших диалогов
формируем sql batch на завершение полученых диалогов
через sqlcmd выполняем сформированный sql batch и гоняем это по циклу, пока не закроем все подвисшие диалоги
batch.sql (пример sql batch – для пункта 2)
end_conversation.bat (батник для пунктов 1 и 3)
Этот товарищ отработал чуть менее двух суток и закрыл все подвисшие диалоги. Как видно из примера – все эти диалоги были открыты для одного конкретного сервиса. С самим удаленным сервисом брокера разобрались до начала массового закрытия диалогов.
К счастью или сожалению, но после закрытия всех не нужных диалогов брокера – ошибки в логах так и не прекратились массово появляться.
Следующей мыслью было потушить service broker end point на СУБД в целом и отключить брокер на основной БД в частности, но и это, увы, не спасло от продолжающихся ошибок в логах.
В какой то из дней решения вопроса возникла необходимость переключиться на зеркало от основной БД. Именно в момент переключения на зеркало нашей БД и вылезла в логах информация о проблеме:
16:42:40.41 spid41s SQL Server detected a logical consistency-based I/O error: incorrect pageid (expected 6:260707; actual 559:-641654744). It occurred during a read of page (6:260707) in database ID 2 at offset 0x0000007f4c6000 in file ‘D:\TempDB\tempdb_mssql_5.ndf’. Additional messages in the SQL Server error log or operating system error log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information, see SQL Server Books Online.
Глядя на неё и стало понятно, что виновником торжества выступает tempdb нашей СУБД.
Как известно, у tempdb одно лекарство – рестарт службы sql. Выбиваем окно у бизнеса для простоя сервиса и перезагружаем основную ноду. После рестарта сервера логи перестало заваливать.
Как оказалось – проблема на самом деле крылась в закорапченных данных. Так, что применяя DBCC CHECKDB – не забывайте применять его и к tempdb и следите за диалогами.
Представления для управления объектами базы данных Oracle
Существует несколько важных представлений словаря базы данных, которые можно использовать для нахождения детальной информации о любом из объектов базы данных, о которых говорилось в этой главе. Администраторы баз данных также интенсивно используют представления словаря данных, чтобы управлять различными объектами схемы. Здесь приводится краткий список важнейших представлений, часть из которых упоминалась выше. Полные данные о типах информации, которую можно получить от каждого из этих представлений, доступны по команде DESCRIBE (например, DESCRIBE DBA_CATALOG).
В этой статье блога будут описаны некоторые важные представления словаря данных, которые помогут управлять объектами, не хранящими данные (т.е. объектами, которые не относятся к таблицам и индексам). Ниже приведен список важнейших представлений словаря данных для просмотра объектов базы данных.
Как упоминалось ранее, представление DBA_OBJECTS предоставляет важную информацию обо всех перечисленных объектах, наряду с некоторыми другими типами объектов базы данных. Однако перечисленные представления содержат детальную информацию о каждом объекте, такую как исходный текст триггера, которую вы не получите из представления DBA_OBJECTS.
Управление такими объектами, как таблицы и представления, осуществляется ссылкой на представления словаря данных, наподобие DBA_TABLES и DBA_VIEWS. Существуют также отдельные представления для секционированных таблиц. Давайте рассмотрим ключевые представления словаря данных, относящиеся к таблицам и индексам.
DBA_OBJECTS
Представление DBA_OBJECTS содержит информацию обо всех объектах базы данных, включая таблицы, индексы, пакеты, процедуры, функции, измерения, материализованные представления, планы ресурсов, типы, последовательности, синонимы, триггеры, представления и разделы таблиц (оно же секционирование). Как несложно догадаться, это представления удобно, когда нужно знать общую информацию относительно любого объекта базы данных. В листинге ниже показан запрос, предназначенный для нахождения времени создания и времени последней модификации объекта (LAST_DDL_TIME). Этот тип запроса поможет идентифицировать время модификации определенного объекта, что часто используется в процессе аудита.
DBA_TABLES
Представление DBA_TABLES содержит информацию обо всех реляционных таблицах базы данных. Представление DBA_TABLES — основной справочник для нахождения информации о хранении, количестве строк в таблице, состоянии протоколирования, информации буферного пула и многих других деталях. Ниже приведен простой пример запроса представления DBA_TABLES:
На заметку! Представление DBA_ALL_TABLES содержит информацию обо всех объектных и реляционных таблицах в базе данных, в то время как представление DBA_TABLES ограничено только реляционными таблицами.
Представление DBA_TABLES служит для нахождения таких вещей, как включено ли сжатие и отслеживание зависимостей на уровне строки, и была ли таблица уничтожена и помещена в корзину (Recycle Bin).
DBA_EXTERNAL_TABLES
Представление DBA_EXTERNAL_TABLES показывает подробности о любой внешней таблице в базе данных, включая их тип доступа, параметры доступа и информацию о каталоге.
DBA_TAB_PARTITIONS
Представление DBA_TAB_PARTITIONS подобно представлению DBA_TABLES, но содержит детальную информацию о разделах таблиц. Благодаря DBA_TAB_PARTITIONS, можно узнать имя раздела, его максимальные значения, информацию о хранении раздела,статистику по разделу, а также прочую информацию, которая доступна в представлении DBA_TABLES. В листинге ниже показан простой запрос, использующий представление DBA_TAB_PARTITIONS.
DBA_PART_TABLES
Представление DBA_PART_TABLES содержит информацию о типе схемы раздела и прочих параметрах хранения разделов и подразделов. Узнать тип каждого раздела каждой секционированной таблицы можно с помощью следующего запроса:
DBA_TAB_MODIFICATIONS
Представление DBA_TAB_MODIFICATIONS показывает все изменения DML в таблице,произошедшие с момента последнего сбора статистики по этой таблице. Вот запрос к этому представлению:
База данных не обновляет представление DBA_TAB_MODIFICATIONS в реальном времени. Следовательно, вы можете и не увидеть изменений в различных таблицах, немедленно отраженных в этом представлении.
DBA_TAB_COLUMNS
Предположим, вы нужно узнать среднюю длину каждой строки таблицы или значение по умолчанию каждого столбца (если таковое есть). Представление DBA_TAB_COLUMNS — отличный способ быстро получить всю детальную информацию о столбцах таблиц схемы, как показано в листинге ниже.
DBA_VIEWS
Как известно, представления — это результаты запросов к некоторым таблицам базы данных. Представление словаря данных DBA_VIEWS позволяет увидеть SQL-запросы, лежащие в основе представлений. В листинге ниже показано, как получить текст представления OS_CUSTOMERS, принадлежащего пользователю oe.
Совет. Чтобы обеспечить полное отображение текста при использовании представления DBA_VIEWS, установите большое значение переменной long (например, SET LONG 2000). В противном случае вы увидите лишь несколько первых строк определения представления.
DBA_MVIEWS
Представление словаря DBA_MVIEWS сообщает все о материализованных представлениях в базе данных, в том числе информацию, включено ли для них средство переписывания запросов. В листинге ниже демонстрируется использования этого представления.
DBA_INDEXES
Представление словаря DBA_INDEXES служит для того, чтобы узнать все необходимое об индексах в базе данных, включая имя индекса, его тип, таблицу и табличное пространство, к которому он относится. Определенные столбцы, наподобие BLEVEL (сообщает уровень B-дерева индекса) и DISTINCT_KEYS (количество разных значений ключа индекс), наполняются, только если собрана статистика по индексу с использованием пакета DBMS_STATS.
DBA_IND_COLUMNS
Представления DBA_IND_COLUMNS по структуре подобно представлению DBA_CONS_COLUMNS и содержит информацию обо всех проиндексированных столбцах каждой таблицы. Эта информация важна при настройке производительности, когда вы замечаете,что запрос использует индекс, но вы не знаете точно, на каких столбцах этот индекс определен. Запрос, приведенный в листинге ниже, показывает, что таблица имеет индексы, определенные на неверных столбцах.
Совет. Взглянув на столбец INDEX_NAME, можно легко идентифицировать составные ключи. Если одно и то же вхождение INDEX_NAME появляется больше одного раза, значит, это составной ключ; и столбцы, являющиеся его частью, показаны в столбце COLUMN_NAME. Например,INVENTORY_PK — первичный ключ таблицы INVENTORIES, определенный на двух столбцах:PRODUCT_ID и WAREHOUSE_ID. Порядок столбцов в определении составного ключа можно узнать с помощью столбца COLUMN_POSITION.
INDEX_STATS
Представление INDEX_STATS полезно для того, чтобы узнать, насколько эффективно индекс использует свое пространство. Крупные индексы имеют тенденцию со временем становиться несбалансированными, если происходит много удалений данных таблицы (а, следовательно, и индекса). Ваша цель — не упускать из виду эти крупные индексы,чтобы сохранять их сбалансированными.
Обратите внимание, что представление INDEX_STATS наполняется, только когда таблица подвергается анализу с помощью команды ANALYZE, как показано ниже:
Запрос из листинга ниже, использующий представление INDEX_STATS, помогает определить необходимость в перестройке индекса. Чтобы определить, следует ли перестраивать индекс, в запросе необходимо сосредоточиться на перечисленных ниже столбцах представления INDEX_STATS.
Что на самом деле делает администратор базы данных (DBA)?
DBA обеспечивает резервное копирование баз данных, их правильную настройку, исправление, безопасность и быструю работу.
Я объясняю свою работу знакомым, говоря: «Вы знаете, как некоторые веб-сайты работают очень медленно, и время их проверки истекает, или они теряют ваши данные? Я несу ответственность за то, чтобы этих проблем не возникало. Я не единственный вовлеченный человек – есть также разработчики и инженеры, – но я несу ответственность за ту часть, которая хранит ваши данные, такие как ваш профиль, ваши заказы, история ваших посещений и все данные, которые компании собирали о вас. Я не уверен, что должен произносить эту последнюю часть вслух.»
В должностные обязанности DBA входит:
Почему так важен администратор базы данных?
Когда база данных выходит из строя, бизнес останавливается. Если вы продаете вещи онлайн, и ваш веб-сайт выходит из строя, это чрезвычайная ситуация. Даже если он не работает – если он просто замедляется – это тоже может быть чрезвычайной ситуацией. DBA помогают предотвратить эту проблему.
Когда кто-то случайно удаляет данные, бизнес может остановиться. К сожалению, во многих компаниях слишком много людей, имеющих доступ к этим данным, и эти люди часто не обучены. Они просто люди, и они совершают ошибки. DBA помогают справиться с этой проблемой.
Где работают DBA?
Поскольку DBA занимаются защитой важных данных, вы найдете их везде, где важны данные – и в наши дни это везде! Однако в большинстве компаний, имеющих всего 1-2 базы данных, недостаточно работы, чтобы занять штатного сотрудника. В таких магазинах вы найдете человека, который тратит часть своего времени на администрирование баз данных. Мы называем этих людей “случайными DBA” – они не собирались становиться администраторами, но они просто унаследовали некоторые обязанности.
Чем крупнее компания, тем больше у нее будет баз данных. Для крупных национальных компаний характерно иметь целые команды DBA.
Какова типичная зарплата DBA?
Как и в любой другой профессии, люди зарабатывают больше денег, когда у них больше опыта или они живут в районах с более высокой стоимостью жизни.
Могут ли DBA работать из дома?
Они могут – и давайте посмотрим правде в глаза, сейчас все равно все работают дома, – но большинство компаний предпочитают, чтобы их DBA появлялись в офисе. Существует определенный уровень паранойи вокруг позиции DBA, потому что DBA защищают один из самых ценных активов компании: свои данные. DBA часто участвуют в специальных совещаниях из-за чрезвычайных ситуаций, и из-за степени серьезности этих чрезвычайных ситуаций менеджеры хотят видеть лица и запирать людей в комнатах.
Некоторые компании готовы нанимать DBA на удаленке, но их довольно мало, и они находятся далеко друг от друга. Когда они это делают, обычно это происходит потому, что:
Но это скорее исключения, чем правило.
Что такое DBA по сравнению с аналитиком данных?
Аналитик данных пишет запросы, чтобы получить ответы на основе данных, в то время как DBA следит за тем, чтобы ответы возвращались быстро.
Аналитик данных тратит много времени на написание новых запросов с нуля, используя SQL, инструменты отчетности или инструменты анализа данных. Они обычно работают напрямую с бизнес-пользователями и знают больше о том, чем занимается бизнес. Они знают, что означают столбцы в таблицах, и они знают, как разные таблицы связаны друг с другом. Они также тратят время на интерпретацию этих результатов: написание отчетов, общение с бизнес-пользователями и уточнение требований.
DBA обычно обладает меньшими знаниями в области бизнеса. Они знают больше о системах, в которых хранятся данные, таких как Microsoft SQL Server, Postgres, MySQL, Oracle. DBA будет знать, какие пользователи чаще всего выполняют какие запросы, и они могут даже помочь аналитикам данных создавать более качественные запросы, но обычно они не пишут новые запросы с нуля.
В чем разница между младшим DBA и старшим DBA?
Младший DBA выполняет почти все свои задачи впервые. Он полагается на Google практически во всех задачах, которые ему необходимо выполнить.
Старший DBA провел пару/несколько лет, работая младшим DBA. Он привык выполнять общие задачи, такие как настройка резервных копий, устранение неполадок, управление безопасностью и реагирование на запросы конечных пользователей. Это не значит, что они все еще не выполняют задачи в первый раз – они часто это делают, и они полагаются на Google, чтобы помочь им разобраться в происходящем. Но, по крайней мере, в половине случаев они делают то, что уже делали раньше, и вместо того, чтобы гуглить концепции, они ищут наиболее эффективный способ сделать это в масштабе, например, автоматизировать его с помощью PowerShell.
Количество лет опыта не имеет никакого отношения к тому, является ли кто-то младшим или старшим. Я видел много людей с 10 – летним опытом, но они все еще младшие-потому что они все еще делают точно то же самое, что делали 10 лет назад, так же, как они делали это тогда. Они не изучали, как автоматизировать более распространенные задачи или как выполнять более сложные.
Какие инструменты используют DBA?
При администрировании одного SQL-сервера они обычно используют среду SQL Server Management Studio. Это бесплатный инструмент от Microsoft, которому более десяти лет, и он с самого начала был написан как основная консоль для сервера баз данных. Довольно редко можно увидеть, как DBA используют сторонние инструменты для управления серверами только потому, что SSMS так долго отсутствовала и охватывает так много функций. Я проводил здесь большую часть своего времени.
При администрировании большого количества SQL-серверов DBA используют PowerShell, обычно с помощью DBAtools.структура ввода-вывода. Вы можете начать изучать это с помощью книги «Изучение сценариев PowerShell» за месяц обедов.
Для написания нового кода Microsoft хочет, чтобы мы использовали Azure Data Studio. Это похоже на Visual Studio Code, кроссплатформенное приложение, предназначенное для написания новых материалов с нуля. Он может выполнять некоторые административные задачи, но на самом деле он ориентирован на разработчиков. Я провожу здесь немного времени, потому что пишу запросы как для Microsoft SQL Server, так и для Amazon RDS Aurora Postgres, и Azure Data Studio работает с ними обоими.
Какое обучение готовит вас к получению первой работы DBA?
Компании почти никогда не нанимают DBA без опыта работы. Чтобы получить этот опыт, есть два общих карьерных пути.
Сначала устроитесь на работу разработчиком и потратьте много времени на запросы SQL Server. По мере выполнения вашей работы вы в конечном итоге будете создавать новые объекты SQL Server, такие как таблицы, индексы и хранимые процедуры. Затем вы можете постепенно стать “специалистом по базам данных” в офисе и, если это имеет смысл для вашей карьеры, постепенно перейти на специальную роль администратора базы данных.
Или сначала устроитесь на работу системным администратором, и в рамках ваших общих обязанностей по администрированию серверов вы вступите в контакт с серверами баз данных. По мере выполнения вашей работы вы будете устанавливать новые серверы баз данных, исправлять существующие, устранять неполадки при их поломке. Затем вы можете постепенно стать “специалистом по серверу баз данных” в офисе и, если это имеет смысл для вашей карьеры, перейти на должность DBA.
В обоих случаях у вас будет дыра в ваших знаниях. Разработчики могут не знать об установке и настройке. Системные администраторы могут не знать о стороне запроса. Это нормально – вы можете изучить оставшуюся часть, когда станете штатным DBA.
Если вы хотите начать с начала, у меня есть бесплатные курсы YouTube по основам администрирования баз данных и бесплатный класс для старших DBA.
Могут ли новички устроиться на работу DBA?
Если вы только что закончили колледж, вы вряд ли сразу пойдете на работу в DBA. Вам лучше получить работу разработчика или системного администратора, как я описал выше, а затем перейти на должность DBA.
Когда вы находите компании, нанимающие новичков в качестве удаленных DBA, они обычно обучают сотрудника основным должностным обязанностям DBA. Будьте осторожны здесь: эти работы чрезвычайно низкооплачиваемы, и после этого они, вероятно, не дадут вам отличную работу DBA. Вам придется уйти из компании, чтобы найти работу получше, но когда вы возьмете “опыт”, который вы получили в этой компании, и попытаетесь использовать его для получения следующей работы в DBA, вы, скорее всего, будете разочарованы. Компания учила вас минимальному минимуму вещей, просто чтобы выставить счет за ваше время, и на самом деле это не воспринимается как реальный опыт DBA.
Достаточно ли сертификатов администрирования баз данных, чтобы получить работу?
В мире Microsoft SQL Server нет: программы сертификации Microsoft, такие как помощник администратора базы данных Azure, просто не точно отражают то, что делают администраторы баз данных. Они отражают то, чему Microsoft хочет научить DBA, потому что Microsoft хочет, чтобы люди проповедовали облачные сервисы Microsoft внутри своей компании.
К сожалению, сертификаты Microsoft-это не лучший способ получить свою первую работу DBA. Вместо этого сначала сосредоточьтесь на том, чтобы получить работу разработчика или системного администратора, затем станьте “специалистом по базам данных” в своем магазине и идите оттуда.
Можете ли вы быть DBA без высшего образования?
Абсолютно точно – я сам бросил колледж. Тем не менее, вы должны быть готовы потратить годы на разработку и системное администрирование, прежде чем получить работу DBA.
Если у вас нет ученой степени, наберитесь мужества: вместо этого просто получите работу разработчика или системного администратора. Это будет проще (не просто, просто проще, чем сразу переходить к администрированию баз данных) и продолжать заниматься тем, что вам нравится, и избегать того, что вы ненавидите.
Нужны ли DBA для «облачных» баз?
Я часто задаю этот вопрос, когда компании начинают рассматривать облачные сервисы, такие как база данных SQL Azure.
Чтобы получить ответ, прочитайте список должностных обязанностей в верхней части поста. Некоторые из них действительно охвачены автономными платформами облачных баз данных, но многие-нет. (Например, если вы хотите хранить резервные копии дольше 35 дней, в настоящее время это доступно только в режиме предварительного просмотра и только в некоторых центрах обработки данных Azure.) Кроме того, ценообразование на производительность начинает становиться реальной проблемой в облаке: по мере роста ваших рабочих нагрузок растут и ваши затраты. DBA теперь могут окупать себя, помогая настраивать производительность рабочих нагрузок для снижения затрат на хостинг.
Является ли DBA хорошей карьерой?
Если вы готовы потратить годы работы, необходимые для того, чтобы постепенно перейти на должность DBA, это потрясающе. Вы находитесь в центре данных компании, а это значит, что вы знаете, что происходит повсюду. Вы знаете весь ИТ-персонал, вы знаете, какие проекты реализуются, и вы можете помочь каждому выполнить свою работу.
Однако это имеет свои недостатки:
За последние пару десятилетий это была солидная карьера, и для 2020-х и 2030-х годов все выглядит довольно радужно. В своем следующем посте я расскажу о том, почему базы данных еще не управляются самостоятельно, и как это повлияло на мои последние 10 лет.
Переводчик выражает благодарность Виктору Богачеву – автору и ведущему «Подготовка к 1С:Эксперту по технологическим вопросам. Основной курс» за спонсорскую помощь.