Марк Ривкин
ПО СЛОВАМ Марка Ривкина, «с» в названии новой версии СУБД подчеркивает, что консолидация ресурсов поддерживает облака

Еще в недавнем прошлом Ларри Эллисон со скепсисом относился и к облачным, и к многоарендным (multitenancy) архитектурам, но время заставило его отказаться от предубеждений. Именно эти архитектуры он назвал главными достоинствами новой СУБД Oracle 12c. Это случилось в октябре прошлого года, когда глава Oracle анонсировал готовящийся к выходу продукт, назвав 12с «первой в мире многоарендной базой» и еще «контейнерной базой данных». Слова новые, но идея «коммунального» контейнера в приложении к СУБД проста и понятна. Суть ее в том, что отдельные базы данных делают подключаемыми (pluggable database), собирая их в общий контейнер, работающий под единым управлением и распределяя между базами объединенный пул ресурсов — процессоров, памяти, дисков.

Такого рода конструкция логически очень близка к виртуализации: в обоих случаях решается задача распределенного доступа к системным ресурсам, но решается по-разному. Подключаемые СУБД работают на одном физическом сервере, логически остающемся единым, а при виртуализации база работает на раздельных виртуальных машинах, ресурсы сервера делятся не между базами, а между машинами. В первом случае исключается необходимость дополнительной прослойки в виде гипервизора, поэтому подключаемые в контейнер СУБД эффективнее используют ресурсы и работают быстрее. Эллисон дал количественную оценку новациям, они примерно в шесть раз повышают степень использования аппаратуры, в результате количество запускаемых на сервере баз возрастает в пять раз. Обычная история — специализированное решение в определенном случае эффективнее универсального. Такое решение разумно при создании частных облаков, позволяет заметно сократить затраты и весьма удобно для провайдеров, предоставляющих СУБД как сервисы.

Премьера СУБД Oracle 12c состоялось в конце июня, причем в Москве на несколько дней раньше, чем в других мировых столицах. Здесь новинку представлял Марк Ривкин, признанный эксперт по СУБД Oracle. Он привел следующие данные: разработка заняла пять лет, потрачено 2,5 тыс. человеко-лет, в результате СУБД приобрела 500 новых возможностей, прошла тестирование на 3 тыс. систем, всего выполнено более миллиона тестов. Ривкин сказал, что буква «с« в названии указывает не только на облако (cloud), но и на консолидацию ресурсов (consolidation). То и другое стало возможным благодаря поддерживаемой технологии многоарендности. У конкурентов, по словам Ривкина, да и в предыдущих версиях Oracle Database, в случае, если на одном аппаратном сервере нужно было запустить несколько баз данных, для каждой из них приходилось запускать свой собственный полноценный экземпляр, то есть дублировать все обязательные фоновые процессы и служебные структуры разделяемой памяти System Global Area.

В Oracle 12c этого нет; радикально переработанная архитектура позволяет одному экземпляру СУБД обслуживать сразу несколько баз данных, в ней разделяемая память и фоновые процессы образуют своего рода контейнер, включающий в себя эти базы. Разделяемая область памяти SGA и служебные фоновые процессы становятся общими для всех этих баз. Совместную работу поддерживают новые инструменты и утилиты: менеджер ресурсов Resource Manager устанавливает приоритеты и контролирует использование аппаратных ресурсов базами данных; менеджер восстановления Recovery Manager поддерживает восстановление на уровне только одной выделенной базы; консоль администрирования Oracle Enterprise Manager Cloud Control 12c обеспечивает операции поддержания жизненного цикла базы данных в контейнере (подключение, отключение, клонирование); средство разработки Oracle SQL Developer также поддерживает контейнерные базы данных.

Благодаря этим специалированным технологиям достигаются более высокие эксплуатационные показатели, в том числе при клонировании новых баз, при переносе баз между контейнерами, при подключении и отключении баз от контейнера, при переносе баз между контейнерами на разных платформах, при установке обновлений ПО сразу для всех баз в контейнере, при смене версии базы простым отключением от текущего контейнера и подключением к контейнеру новой версии.