Oracle dba что это
As a database administrator (DBA), you are responsible for the overall operation of Oracle Database. This introductory chapter is intended to help orient you to many common DBA tasks, to the tools available to you, and to this guide.
The chapter contains the following sections:
Как проверить сервис Managed DBaaS
Проверка компетенций. Чаще всего клиенты спрашивают у DBA портфолио кейсов по выбранной базе данных. Но важно проверять не только опыт в продукте, но и опыт решения конкретных задач с выбранной БД. Вот на что советуем обратить внимание:
работа с базами данных определенного объема и под определенной нагрузкой. Объем и нагрузка напрямую влияют на подход к администрированию. Например, объем БД в несколько терабайт накладывает ограничения на резервное копирование и восстановление базы. Если у DBA мало опыта с такими БД и при этом он привык решать все проблемы перезагрузкой, то на больших объемах есть риск столкнуться с неожиданно длительными простоями.
навыки работы с кластерными решениями и/или DRP. Здесь важно знать, насколько хорошо DBA понимает разницу между обеспечением высокой доступности и катастрофоустойчивостью и знаком ли он с инструментами, которые актуальнее для клиента.
Скажем, если компании нужно восстановить базы после массового сбоя на уровне всей площадки, то DBA должен владеть инструментами для обеспечения нужного RPO и RTO. А если нужно обеспечить высокую доступность реляционных баз данных, то лучше сделать это на уровне СУБД. В этом сценарии приветствуется хорошее знание ее ролевой модели. Правильная настройка ролевой модели помогает распределить транзакции перед переключением на реплику БД: какие-то транзакции закоммитить, какие-то откатить.
плюсом будет наличие профильных сертификатов у специалистов.
Проверка ресурсов. Тут помогут тесты, которые можно провести в пробной базе сервис-провайдера:
превышение порога допустимых значений — за какое время отрабатывает тот или иной запрос к базе;
тесты производительности: TPC-H, TPC-B, TPC-C;
тест Гилева, если это 1С.
Уровень подключения DBA к проверке ресурсов будет сильно отличаться для двух групп клиентов:
опытных компаний, которые отдают аутсорсеру знакомую задачу. Здесь клиенту уже известны метрики, к которым хочется стремиться, и есть возможность провести аналогичные тесты на своих ресурсах. От DBA требуется лишь слегка скорректировать задачи тестирования при необходимости.
компаний, которые решают новую задачу при обращении к DBaaS. Здесь важен опыт DBA в решении аналогичных задач и его компетенции архитектора. Если клиент — это стартап и прогнозировать проблемы сложно, то компании все равно потребуется указать планируемую загрузку. Звучать это может так: на начальном этапе планируем не больше 1000 подключений в секунду, через полгода ожидаем не больше 10 000 подключений в секунду.
Проверка безопасности. Здесь для проверки будет несколько направлений.
Во-первых, удостовериться в защищенности данных можно по формальным и неформальным признакам:
провайдеров формально можно проверить по сертификатам безопасности: смотрим сертификаты соответствия системы управления ИБ требованиям ISO/IEC 27001:2013, результаты аудитов по PCI DSS, аттестаты по 152-ФЗ для хранения персональных данных и так далее. Также на формальном уровне клиента защищают соглашения о неразглашении (NDA). Здесь стоит внимательно проверить, какую именно ответственность и за что несет провайдер по договору.
неформально провайдера и отдельного специалиста можно проверить по используемым инструментам безопасности. Например, что применяется для логирования, мониторинга событий, какая информация будет предоставлена клиенту в случае инцидента. Как минимум, у клиента должна быть возможность просмотреть логи на разных уровнях системы. Как максимум, это могут быть записи сессий привилегированных пользователей с помощью систем класса PAM или других подобных решений.
Во-вторых, клиенту стоит интересоваться используемыми в облачном сервисе инструментами ИБ в зависимости от актуальной модели угроз:
внешние угрозы безопасности — это вредоносное ПО, боты, DDoS-атаки, направленные атаки. Здесь стоит обратить внимание на наличие в рамках DBaaS решений анти-DDoS, NGFW, IPS.
внутренние угрозы безопасности — это риски утечки данных, несанкционированного доступа, превышения полномочий пользователями. Помимо логирования и мониторинга здесь важно обратить внимание на возможности настройки прав доступа и на инструменты защиты от специалистов с повышенными правами. Какие схемы защиты тут могут быть:
1) Модель шифрования данных на стороне SQL — all is encrypted. У компании-клиента хранится сертификат, к которому не имеет доступа даже провайдер. Приложение осуществляет запросы к базе с помощью этого сертификата. Даже если кто-то на стороне сервис-провайдера попытается скопировать данные из базы, то зашифрованные поля все равно будут недоступны.
2) TDE-шифрование для бэкапов, которые хранятся отдельно от базы: восстановить по ним базу не получится, так как сертификаты хранятся отдельно от бэкапов.
Что делает DBA в рамках облачного managed-сервиса
Схематично поддержку баз данных в облаке можно разделить на такие сегменты:
Для каждого из уровней нужно обеспечить бесперебойное функционирование. Вот какие работы оно включает:
мониторинг ключевых показателей, для каждого уровня своих;
регулярное обновление и поддержание актуального состояния элементов;
обеспечение высокой доступности и других метрик по SLA;
обеспечение информационной безопасности.
Пройдемся по уровням, начнем сверху.
Бизнес-логика. С зоной ответственности на самом верхнем уровне все более-менее понятно: бизнес-логика системы находится на стыке ИТ и бизнеса и требует глубокого знания процессов компании. Поэтому правильная реализация бизнес-логики — компетенция, скорее, бизнес-аналитика. От DBA чаще всего не требуют решения вопросов на этом уровне, хотя опытный специалист может подсказать, где именно искать проблемы. При этом реализацию бизнес-логики тоже можно аутсорсить, просто в рамках более комплексной услуги, чем Managed DBaaS.
Зона от СУБД до “физики”. Работы на этом уровне обычно полностью отдаются на откуп сервис-провайдеру. Риски могут быть чуть выше, если облачный провайдер арендует физические ресурсы в дата-центре у кого-то еще. В этом случае ответственность за конечную услугу DBaaS зависит от слаженной коммуникации между арендатором и владельцем ресурсов. Но у клиента в любом случае есть одна точка входа, которая берет на себя ответственность за результат.
С ответственностью провайдера на уровне managed DBaaS иногда может возникнуть обратная ситуация: клиенту бывает сложно отказаться от обязательных услуг в рамках сервиса. Нам рассказывали историю, как компания столкнулась с проблемами медленной работы базы после очередного обновления СУБД в облачном сервисе. При этом откатиться назад и исключить клиента из плана обновлений не удалось, так как все обновления провайдер делал централизованно.
База данных. А вот с обслуживанием самих баз данных все не так просто: разные провайдеры услуги DBaaS могут включать в администрирование разное количество работ на уровне БД. Какие это могут быть работы:
резервное копирование БД;
постановка на мониторинг и настройка уведомлений клиенту по выбранным событиям;
активный мониторинг ключевых метрик провайдером и реагирование на инциденты в соответствии с приоритетами;
настройка индивидуального расписания резервного копирования;
настройка плана послеаварийного восстановления (DRP).
Как видим, мониторинг базы данных может быть устроен по-разному. При анализе SLA важно понимать, за какие именно метрики отвечает провайдер, а за какие — сам клиент. Вот основные группы показателей (для разных баз конкретные метрики отличаются):
доступность: в общем случае в SLA она указывается в процентах в месяц (например, 99,98%). Но помимо этого есть частные метрики, которые влияют на доступность, например, метрики работы службы кластеров HA;
производительность и все что на нее влияет, например: как часто выполняются запросы, по которым не хватает индексов, или задержки при обращении к файлам данных на дисках, размер журнала транзакций и процент его заполненности (для Microsoft SQL);
безопасность: например, результаты проверки паролей администраторов по словарю;
конфигурация: как именно настроена база данных.
При минимальном варианте сопровождения БД контролируются метрики только из первой группы. При этом провайдер реагирует на самые критичные изменения, из-за которых может нарушиться показатель доступности в SLA. А изменения остальных метрик просто отправляет клиенту уведомлением. Рассчитывать на контроль и корректировку метрик из всех четырех групп можно, только если это входит в условия обслуживания (у многих провайдеров это уже premium-уровень).
Итак, первым делом в соглашении по сервису важно проверить:
за какие именно метрики отвечает провайдер;
какую ответственность несет за невыполнение;
как именно реагирует на разные нештатные ситуации: что исправляет сам, кого и каким образом уведомляет, в какой срок.
Теперь посмотрим, какие риски могут возникнуть в зависимости от нашей задачи: ищем ли мы дополнительные компетенции, ресурсы или безопасность. И расскажем, как проверить сервис управляемых баз с точки зрения этих рисков.
1.2 About Oracle Database
Oracle Database is a relational database with object and Extensible Markup Language (XML) capabilities. In a relational database, all data is stored in tables that are composed of rows and columns. Oracle Database enables you to store data, update it, and efficiently retrieve it, with a high degree of performance, reliability, and scalability.
Oracle Database is composed of the following elements:
The Oracle software that you install on your host computer
The database , which is a collection of physical files on one or more disks
The database contains user data, metadata, and control structures. Metadata , or data about the data, is the collection of information on disk that permits Oracle software to manage user data. An example of metadata is the data dictionary. Control structures (such as the control file and online redo log files) ensure the integrity, availability, and recoverability of user data.
The Oracle instance , which is composed of the following:
The background processes , which are the operating system processes or threads that perform the work of accessing, storing, monitoring, and recovering user data, metadata, and control files associated with the database
The shared memory areas used by the background processes
Server processes that perform work on behalf of connected users and applications, and the memory and temporary storage used by these processes
Server processes parse and execute SQL statements, and retrieve and return results to the user or application.
Oracle Net, which is a software layer that enables client applications and Oracle Database to communicate over a network, and the Oracle Net listener , which is a process that listens for connection requests from the network.
Oracle Database Concepts for more information about background processes
Oracle Database Reference for more information about background processes
1.1 About This Guide
Oracle Database 2 Day DBA is a database administration quick start guide that teaches you how to perform day-to-day database administrative tasks. The goal of this guide is to help you understand the concepts behind Oracle Database, and to help you learn how to perform all common administrative tasks needed to keep the database operational. These tasks include configuring the database, managing memory and storage, managing users, managing database objects such as tables, performing basic troubleshooting, creating backups for your database, performance monitoring activities, and more.
The primary administrative interface used in this guide is Oracle Enterprise Manager Database Express (EM Express), featuring all the self-management capabilities introduced in Oracle Database.
This section includes these topics:
1.1.1 What This Guide Is Not
Oracle Database 2 Day DBA is task-oriented. The objective is to describe why and when administrative tasks must be performed. Where appropriate, it describes the concepts necessary to understand and complete a task, assuming the reader has no prior knowledge of the database. This guide is not an exhaustive discussion of all Oracle Database concepts. For this type of information, see Oracle Database Concepts .
Additionally, for a complete discussion of administrative tasks, see Oracle Database Administrator’s Guide
1.1.2 How to Use This Guide with Related Material
This guide is part of a comprehensive set of learning materials for administering Oracle Database, which includes a learning path containing several 2 Day DBA Oracle By Example (OBE) tutorials, available on the Web.
Every chapter in Oracle Database 2 Day DBA has an associated set of 2 Day DBA tutorials. Each tutorial steps you through tasks in the chapter and includes annotated screenshots. In some cases, the tutorial provides additional information to help you complete the task.
At the end of each chapter, you can find the link to the associated OBE tutorial series. The home page for the 2 Day DBA learning path is:
Кто должен заботится о системе?
В разных компаниях это может выполняться по-разному. Вообще, в малых компаниях, DBA мог бы исполнять все перечисленные выше роли и применять сервисные пакеты, обновления и т.д. В больших фирмах, DBA не успеет делать дополнительно что-нибудь на NT/UNIX, а сможет только обслуживать само приложение (SQL/Oracle/DB2, и т.д.). В моей компании, я обслуживаю всё, что связано с SQL, включая сервисные пакеты для SQL. Сервисные пакеты для NT/2000 и заплаты применяются sysadmin-ом. Он также заменяет/добавляет жесткие диски, память и т.п. Исполняет резервирование на ленты. Я просто гарантирую, что SQL Server будет работать в требуемом режиме и довожу до сисадмина, нуждаюсь ли я в чём-либо.
Трудно решить, хотите ли Вы стать DBA. С одной стороны это может быть скучно, если всё работает хорошо (для меня это теперь вид раздражения). Но когда что-либо ломается, возникает огромное давление и напряжение. Варианты поведения, когда база данных «умерла» и Президент компании заходит в Ваш офис, чтобы спросить о её состоянии, не преподают ни в какой школе.
1.3 Common Oracle DBA Tasks
As an Oracle database administrator (DBA), you can expect to be involved in various tasks. For example:
Installing Oracle software
Creating Oracle databases
Performing upgrades of the database and software to new release levels
Starting and shutting down the database instance
Managing the storage structures of the database
Managing users and security
Managing database objects, such as tables, indexes, and views
Backing up the database and performing recovery operations when necessary
Monitoring the state of the database and taking preventive or corrective action as required
Monitoring and tuning database performance
Diagnosing and reporting critical errors to Oracle Support Services
In a small to medium-sized database environment, you might be the sole person performing these tasks. In large, enterprise environments, the job is often divided among several DBAs, each of whom has a specialty, such as database security or database tuning.
Oracle Database Concepts for more information about the duties of database administrators
Кто такой — DBA?
Существует большое количество различных режимов работы DBA и не существует хорошего описания содержания его работы. Из того, что я видел, есть несколько основных типов DBA:
- Administrative DBA — Работа по поддержке сервера и обеспечение его работоспособности. Резервирование, защита, установка заплат и SP, настройка репликаций и т.д. А также всё, что касается фактического программного обеспечения сервера.
- Development DBA — работы по формированию запросов, хранимых процедур и т.д., которые обеспечивают бизнес-задачи. Такой DBA — эквивалент программиста. Он, прежде всего, пишет T-SQL запросы.
- Architect — Design schemas. Строит таблицы, FKs, PKs и т.д. Работа по построению структур, которые встречают бизнес-задачи общего характера. Разработанный таким DBA дизайн используется разработчиками и всеми DBA для поддержки пользовательских приложений.
- Data Warehouse DBA. Это новая роль, отвечающая за объединённые данные из множественных источников, в хранилище данных. Вероятно, придется проектировать хранилище, оптимизировать данные хранилища, стандартизировать данные, обрабатывать данные перед загрузкой. В SQL Server, этот DBA использовал бы в основном DTS.
- OLAP DBA. Строит многомерные кубы для поддержки задач принятия решений или OLAP систем. Основной язык в SQL Server — это MDX, а не SQL.
Быть DBA (вообще) утомительное занятие. Вы должны планировать развитие базы на будущее, резервировать место, где ваша схема будет размещаться или расширяться. План роста чреват множеством ошибок и просчётов. Эта работа не похожа на программирование с помощью «C» или Visual Basic, когда ответственность ограничивается уровнем пользовательского приложения. Ваши решения затрагивают все данные и имеют далеко идущие последствия. Так как Вы работаете в ориентируемой на массивы данных среде (set-oriented), Вы можете легко допустить ошибку, которая затронет большое количество элементов этих данных. В отличие от класса или структуры, где Вы имеете дело с не большими порциями данных (то есть, один пользователь), единственный SQL запрос может затронуть всех пользователей структуры. Скольких из Вас мучили сомнения при написании delete с предложением where?
1.4 Tools for Administering the Database
The goal of this guide is to enable you to quickly and efficiently create an Oracle database, and to provide guidance in basic database administration.
The following are some products, tools, and utilities you can use to achieve your goals as a database administrator:
Oracle Universal Installer
Oracle Universal Installer (OUI) is a utility that installs your Oracle software and options. It can automatically start Oracle Database Configuration Assistant to install a database.
Oracle Database Configuration Assistant
Oracle Database Configuration Assistant (DBCA) is a utility that creates a database from templates that are supplied by Oracle, or you can create your own. It enables you to copy a preconfigured seed database, thus saving the time and effort of generating and customizing a new database.
Database Upgrade Assistant
The Database Upgrade Assistant (DBUA) is a tool that guides you through the upgrade of your existing database to a new Oracle Database release.
Net Configuration Assistant
Net Configuration Assistant is a utility that enables you to configure listeners and naming methods, which are critical components of the Oracle Database network.
Oracle Enterprise Manager Database Express
The primary product for managing your database is Oracle Enterprise Manager Database Express (EM Express), a Web-based interface. After you have installed the Oracle Database software, created or upgraded a database, and configured the network, you can use EM Express to manage your database. EM Express also provides an interface for performance advisors.
Oracle also offers separately licensed Oracle Enterprise Manager management packs, management plug-ins, and other products you can purchase to enhance the capabilities of Oracle Enterprise Manager in specific environments.
SQL Developer provides another GUI for accessing your Oracle database. SQL Developer supports development in both the SQL and PL/SQL languages. It is available in the default installation of Oracle Database.
With SQL Developer, you can browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. You can also run any number of provided reports, and also create and save your own.
Начинающий разработчики часто путают SYSDBA и DBA между собой. Поэтому столь необходимо осветить различие между ними. Вкратце, SYSDBA – это системная привилегия, а DBA – это роль.
SYSDBA и SYSOPER – это специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка истанса; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA или SYSOPER.
О системной привилегии SYSDBA
Привилегии SYSDBA и SYSOPER позволяют получать доступ к базе данных, даже если база не открыта. Контроль этих привилегий находится за пределами компетенции самой базы данных. SYSDBA и SYSOPER могут также быть расценены как тип подключения, который позволяет выполнять определённые операции для которых привилегии не могут быть назначены другим способом.
Обзор возможностей каждой из привилегий:
- Выполнять STARTUP и SHUTDOWN операции
- ALTER DATABASE: open, mount, back up, or change character set
- CREATE DATABASE
- DROP DATABASE
- CREATE SPFILE
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER
- Включает привилегию RESTRICTED SESSION
- ALTER DATABASE RECOVER
- Позволяет подключаться как пользователь SYS
- Выполнять STARTUP и SHUTDOWN операции
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Только полное восстановление. Другие формы восстановления, такие как UNTIL TIME|CHANGE|CANCEL|CONTROLFILE требуют SYSDBA.)
- Включает привелегию RESTRICTED SESSION
- Позволяет выполнять базовые операции, но без возможности просмотра данных пользователя
Выборка пользователей, которые имеют 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
Начинающий разработчики часто путают SYSDBA и DBA между собой. Поэтому столь необходимо осветить различие между ними. Вкратце, SYSDBA – это системная привилегия, а DBA – это роль.
SYSDBA и SYSOPER – это специальные привилегии администратора, которые позволяют выполнять базовые задачи администрирования: запуск или остановка истанса; создание, удаление, открытие или монтирования базы и др. Роль DBA не включает SYSDBA или SYSOPER.
О системной привилегии SYSDBA
Привилегии SYSDBA и SYSOPER позволяют получать доступ к базе данных, даже если база не открыта. Контроль этих привилегий находится за пределами компетенции самой базы данных. SYSDBA и SYSOPER могут также быть расценены как тип подключения, который позволяет выполнять определённые операции для которых привилегии не могут быть назначены другим способом.
Обзор возможностей каждой из привилегий:
- Выполнять STARTUP и SHUTDOWN операции
- ALTER DATABASE: open, mount, back up, or change character set
- CREATE DATABASE
- DROP DATABASE
- CREATE SPFILE
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER
- Включает привилегию RESTRICTED SESSION
- ALTER DATABASE RECOVER
- Позволяет подключаться как пользователь SYS
- Выполнять STARTUP и SHUTDOWN операции
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Только полное восстановление. Другие формы восстановления, такие как UNTIL TIME|CHANGE|CANCEL|CONTROLFILE требуют SYSDBA.)
- Включает привелегию RESTRICTED SESSION
- Позволяет выполнять базовые операции, но без возможности просмотра данных пользователя
Выборка пользователей, которые имеют 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
В крупных компаниях с развитой ИТ-инфраструктурой нередко есть отдельная роль DBA — администратора или архитектора баз данных. Таким компаниям бывает выгоднее держать базы данных у себя и администрировать ресурсы своими силами.
В компаниях поменьше случается, что зона компетенций DBA остается “ничьей землей”: в лучшем случае эту роль могут отдать в нагрузку кому-то из смежных специалистов. В дальнейшем это грозит проблемами, если инфраструктура резко вырастет или усложнится. И тут как раз поможет внешний DBA: независимый консультант по базам данных или специалист в рамках облачного сервиса управляемых БД, если компании нужны еще и ресурсы в облаке.
В этой статье проанализируем, какие задачи компании решают при обращении к сервису Managed DBaaS и какие нюансы возникают при аутсорсинге обслуживания БД. В конце предложим чек-лист, по которому можно оценить такой сервис и его специалистов.
Например, нелишне выяснить, что именно специалисты понимают под HA и как ее организуют.
Когда поможет внешний DBA
По нашему опыту, внешний аудит и сопровождение БД полезны для таких случаев:
Запланированная разовая или пиковая нагрузка. Бывает, что ресурсы БД нужны временно, под проект, или на период повышенной нагрузки сервиса. Например, у компании-ритейлера грядет “черная пятница” или планируется разовое мероприятие c большим количеством регистраций на сайте.
Если такая ситуация наблюдается один месяц из 12, нанимать еще одного DBA излишне. К тому же может оказаться, что для ограниченного по времени проекта нужны технологии, в которых у штатных специалистов меньше экспертизы. Например, основной штат специалистов использует Microsoft SQL, а для разового проекта нужны хорошие возможности полнотекстового поиска, как в Elasticsearch.
В этой ситуации внешний DBA подберет инструменты под конкретный проект, возьмет на себя сопровождение дополнительной базы данных, поможет найти узкие места в процессе работы. К его помощи можно прибегать по запросу, только когда дополнительная нагрузка появляется.
Стихийное развитие системы. Здорово, если рост нагрузки на базу удается спрогнозировать: тогда “запас прочности” можно предусмотреть в архитектуре заранее. Но в реальной жизни всплески нагрузки часто происходят внезапно, например: проект неожиданно выстреливает и привлекает в разы больше пользователей.
Соблюдение требований безопасности. Если служба ИБ приходит с особыми требованиями к базам данных, не каждая компания может реализовать их самостоятельно и быстро.
Яркий пример — хранение персональных данных и соблюдение 152-ФЗ. Когда компания становится оператором персданных, нужно собрать внушительный пакет документов и подобрать соответствующие задачам средства защиты (мы уже писали об этом тут). Облачный провайдер помогает ускорить процесс и обеспечивает соответствие 152-ФЗ на уровне своей инфраструктуры: у него уже есть аттестованные сегменты облака для таких задач. Компании-клиенту остается соблюсти требования закона на уровне базы данных и приложения (некоторые провайдеры могут помочь и с этим).
Менее очевидный пример — необходимость проводить аудиты ИБ для баз с ценной информацией. Допустим, служба ИБ захотела следить за всеми операциями в CRM-системе и поручила разработчикам создать для этого отдельные таблицы аудита. Если решать эту задачу без глубоких знаний БД, можно легко замедлить работу всей базы. В такой ситуации грамотный DBA также поможет найти баланс между производительностью и безопасностью.
Рутина или внутренние проекты. Даже если в компании есть свои DBA, их рабочего времени не всегда хватает на все задачи — приходится расставлять приоритеты. На последнем месте в списке часто оказываются внутренние проекты. Например, это могут быть сервисы для сотрудников, которые сложно оценить в терминах экономической эффективности для бизнеса, в отличие от приложений для клиентов. В этом случае компании может быть выгоднее привлекать собственных высококвалифицированных DBA на внешние проекты, а внутренние отдать аутсорсерам.
Также приоритизация проектов может быть инструментом удержания таких высококвалифицированных специалистов, которым неинтересно заниматься рутинной работой с базами данных: обновлением, настройкой бэкапов. В этом случае рутину тоже можно переложить на внешний сервис Managed DBaaS.
Не сформирован технологический стек решения. Когда компания собирается внедрять новый ИТ-продукт, она может не знать заранее его архитектурные особенности. Например, компания ищет CRM-систему и одновременно выбирает среди продуктов на основе реляционных баз данных и на основе NoSQL-хранилищ. Поддержка выбранного решения может стать проблемой, если в штате нет специалиста по конкретной базе данных. И здесь опять же могут помочь аутсорсеры.
Как видим, во всех этих случаях с помощью внешнего DBA компания решает минимум одну из трех задач:
добавление дефицитных вычислительных ресурсов;
обеспечение требований безопасности.
Если актуальна первая задача, достаточно привлечь независимого специалиста-аутсорсера. А вот вторую и третью задачи часто решает именно облачный провайдер: для поиска ресурсов независимый DBA может выступить только посредником. Качество ресурсов в облаке сильно зависит от уровня обслуживания, который гарантируется в SLA. Поэтому для оценки SLA и его вариантов важно понять, что обычно входит в зону компетенций DBA в сервисе управляемых баз данных.
Итоговый чек-лист проверки Managed DBaaS
Ответственность DBA в договоре подряда или соглашении об уровне обслуживания (SLA): за что именно отвечает, что произойдет в случае нарушения.
Наличие в портфолио кейсов с базами нужного объема и под выбранной нагрузкой.
Опыт решения задач по обеспечению высокой доступности или DR — в зависимости от того, что актуальнее компании.
Возможность проведения тестов в облаке, если помимо аудита и сопровождения базы клиент арендует ресурсы.
Наличие сертификатов безопасности для облака.
Уровень ответственности в NDA, если нужно защитить конфиденциальную информацию.
Наличие инструментов логирования и контроля привилегированных пользователей.
Наличие инструментов ограничения прав доступа к конфиденциальной информации.
Я получаю этот вопрос уже больше чем несколько раз. Обычно он исходит от кого-то, кто желает стать DBA или только начинает свой путь на этом поприще, но я думаю, что администраторы также часто задаются вопросом, чем же является DBA и почему он так необходим. Почему не возможно эту работу поручить только системному администратору? Или старшему разработчику? Есть большое количество серьезных причин, по которым и я думаю, что DBA выполняет важную, узкоспециализированную работу в компании.
Я начал писать эту статью в прошлом году, но это быстро превратилось в длинный цикл статей. Сейчас, я хочу нарушать последовательность изложения цикла и сделать краткий обзор того, чем должен заниматься DBA с учётом полученных от читателей замечаний, предложений и т.п. Эта статья о том, как я вижу роль DBA, и основывается на более детальных статьях, относящихся к режимам работы и ролям различных типов DBA, которые я вижу в мире.
1.1 About This Guide
Oracle Database 2 Day DBA is a database administration quick start guide that teaches you how to perform day-to-day database administrative tasks. The goal of this guide is to help you understand the concepts behind Oracle Database, and to help you learn how to perform all common administrative tasks needed to keep the database operational. These tasks include configuring the database, managing memory and storage, managing users, managing database objects such as tables, performing basic troubleshooting, creating backups for your database, performance monitoring activities, and more.
The primary administrative interface used in this guide is Oracle Enterprise Manager Database Express (EM Express), featuring all the self-management capabilities introduced in Oracle Database.
This section includes these topics:
1.1.1 What This Guide Is Not
Oracle Database 2 Day DBA is task-oriented. The objective is to describe why and when administrative tasks must be performed. Where appropriate, it describes the concepts necessary to understand and complete a task, assuming the reader has no prior knowledge of the database. This guide is not an exhaustive discussion of all Oracle Database concepts. For this type of information, see Oracle Database Concepts .
Additionally, for a complete discussion of administrative tasks, see Oracle Database Administrator’s Guide
1.1.2 How to Use This Guide with Related Material
This guide is part of a comprehensive set of learning materials for administering Oracle Database, which includes a learning path containing several 2 Day DBA Oracle By Example (OBE) tutorials, available on the Web.
Every chapter in Oracle Database 2 Day DBA has an associated set of 2 Day DBA tutorials. Each tutorial steps you through tasks in the chapter and includes annotated screenshots. In some cases, the tutorial provides additional information to help you complete the task.
At the end of each chapter, you can find the link to the associated OBE tutorial series. The home page for the 2 Day DBA learning path is:
Подготовка к DBA-DOM
Изучайте реляционную теорию баз данных. Читайте об этом, и о том, что люди думают по этому поводу. IMHO (по моему скромному мнению), нет никакого «правильного» пути, но существует большое количество особенностей в любом отдельно взятом дизайне. Учитесь столько, сколько Вы можете, и затем принимайте решение, которое соответствует вашей ситуации. Я имею большой опыт в организации сети также как и в программировании, и я думаю, что это действительно мне помогает. Я понимаю, как построена операционная система, и я имею представление, что происходит внутри компьютера. Знание того, как данные перемещаются по сети, также поможет спроектировать лучшую систему и избежать многих проблем. В сегодняшнем мире, я думаю, понимание принципов сетевых соединений является очень важным. В MS мире умение программировать систему требуется только если Вы хотите быть системным программистом. В *nix мире, знание того, как разрабатываются системные утилиты полезно, но я не думаю, что это обязательно требуется.
Заключение
Всё, что изложено в этой статье — это моё мнение и мои эмоции, основанные на личном опыте и изучении соответствующих материалов. Я уверен — некоторые люди, не согласятся со мной, но я хочу иметь обратную связь, чтобы вносить изменения в эту статью. Я особенно хотел бы получить замечания и дополнения от non-SQL Server DBAs. Если Вы знаете кого-то, кто является Oracle, DB2 или другого типа DBA, пожалуйста перешлите ему(ей) эту статью, и попросите, чтобы они послали мне своё мнение об этой статье Steve Jones
Читайте также: