Введение

В области вычислительной техники баз данных, Oracle Real Application Clusters (RAC) — это опция для программного обеспечения Oracle Database, разработанная корпорацией Oracle и представленная в 2001 году вместе с Oracle9i — обеспечивает программное обеспечение для кластеризации и обеспечения высокой доступности в окружениях баз данных Oracle. Корпорация Oracle включает RAC в состав Enterprise Edition при условии, что узлы объединены в кластер с использованием Oracle Clusterware.

Функциональность

Oracle RAC позволяет нескольким компьютерам одновременно запускать программное обеспечение Oracle RDBMS и обращаться к одной базе данных, обеспечивая кластеризацию. В базе данных Oracle, не использующей RAC, один экземпляр обращается к одной базе данных. База данных состоит из набора файлов данных, файлов управления и журналов отката, расположенных на диске. Экземпляр включает в себя набор памяти, связанной с Oracle, и фоновых процессов, работающих в компьютерной системе. В среде Oracle RAC два или более экземпляров одновременно обращаются к одной базе данных. Это позволяет приложению или пользователю подключаться к любому компьютеру и получать доступ к единому согласованному набору данных. Экземпляры связаны друг с другом посредством "Interconnect", что обеспечивает синхронизацию доступа всех экземпляров к данным.

Цели

Основная цель Oracle RAC — реализовать кластерную базу данных для обеспечения производительности, масштабируемости, отказоустойчивости и высокой доступности данных на уровне экземпляра.

Слияние кэша

До Oracle 9 в сетевых кластерных базах данных Oracle использовалось устройство хранения данных в качестве среды передачи (то есть один узел записывал блок данных на диск, а другой узел считывал эти данные с того же диска), что имело неотъемлемый недостаток – низкую производительность. Oracle 9i решила эту проблему: RAC использует выделенное сетевое соединение для внутренней коммуникации кластера. Поскольку все компьютеры/экземпляры в RAC обращаются к одной и той же базе данных, общая система должна обеспечивать координацию изменений данных на разных компьютерах таким образом, чтобы при каждом запросе данных компьютер получал актуальную версию, даже если другой компьютер недавно изменил эти данные. Oracle RAC называет эту функциональность Cache Fusion. Cache Fusion подразумевает возможность Oracle RAC "объединять" данные, кэшированные в памяти физически раздельно на каждом компьютере, в единый глобальный кэш.

Сетевые связи

Служба именования Oracle Grid (GNS) обеспечивает разрешение имен в реестре кластеров.

Диагностика

Анализатор файлов трассировки (TFA) помогает собирать диагностические данные RAC.

Версии

Oracle Real Application Clusters 12c Release 1 Enterprise Edition. (Oracle Real Application Clusters 12c выпуск 1, корпоративная версия). Oracle Real Application Clusters One Node (RAC One Node) позволяет использовать RAC в одноузловых установках, работающих под управлением Oracle Database 11g Release 2 Enterprise Edition.

Эволюция

По сравнению с базой данных Oracle с одной инстанцией, Oracle RAC добавляет дополнительную сложность. Хотя автоматизация баз данных целесообразна для баз данных с одной инстанцией, она становится еще более необходимой для кластерных баз данных из-за их повышенной сложности. Oracle Real Application Clusters (RAC), представленный с Oracle 9i в 2001 году, заменил опцию базы данных Oracle Parallel Server (OPS). В то время как Oracle9i требовал внешнего кластерного программного обеспечения (известного как кластерное программное обеспечение поставщика, например, TruCluster Veritas Cluster Server или Sun Cluster) для большинства Unix-систем (за исключением Linux и Windows, где Oracle предоставлял бесплатное кластерное программное обеспечение под названием Cluster Ready Services или CRS), начиная с Oracle 10g, продукт кластерного программного обеспечения Oracle стал доступен для всех операционных систем. С выпуском Oracle Database 10g Release 2 (10.2) Cluster Ready Services был переименован в Oracle Clusterware. При использовании Oracle 10g или более поздней версии, Oracle Clusterware – это единственное необходимое кластерное программное обеспечение для большинства платформ, на которых работает Oracle RAC (за исключением TruCluster, в этом случае требуется кластерное программное обеспечение поставщика). Вы можете продолжать использовать кластерное программное обеспечение других поставщиков, если оно сертифицировано для Oracle RAC. В RAC транзакция записи должна получить право собственности на соответствующую область базы данных: обычно это включает запрос через кластерное соединение (локальную IP-сеть) для передачи права собственности на блок данных с другого узла на узел, желающий выполнить запись. Это занимает относительно много времени (от нескольких до десятков миллисекунд) по сравнению с одним узлом базы данных, использующим операции в памяти. Для многих типов приложений время, затрачиваемое на координацию доступа к блокам между системами, незначительно по сравнению с множеством операций в системе, и RAC масштабируется сопоставимо с одной системой. Более того, транзакционные базы данных с высокой интенсивностью чтения (например, приложения для хранилищ данных) отлично работают в RAC, поскольку не требуется передача прав собственности. (Oracle 11g внес множество улучшений в этой области и работает значительно лучше, чем предыдущие версии для рабочих нагрузок, предназначенных только для чтения.) Накладные расходы на управление ресурсами (или передачу прав собственности) минимальны для менее чем трех узлов, поскольку запрос на любой ресурс в кластере может быть получен максимум за три перехода (владелец – мастер – запрашивающий). Это делает Oracle RAC горизонтально масштабируемым с большим количеством узлов. Поставщики приложений (например, SAP) используют Oracle RAC для демонстрации масштабируемости своих приложений. Большинство крупнейших тестов производительности OLTP проводятся на Oracle RAC. Oracle RAC 11g поддерживает до 100 узлов. Для некоторых приложений RAC может потребовать тщательного разделения приложений для повышения производительности. Приложение, которое линейно масштабируется на SMP-машине, может линейно масштабироваться и в RAC. Однако, если приложение не может линейно масштабироваться на SMP, оно не будет масштабироваться при переносе в RAC. Короче говоря, масштабируемость приложения зависит от того, насколько хорошо приложение масштабируется в одной инстанции.

Конкурентный контекст

Архитектуры "ничего не разделять" и "разделять всё" имеют свои преимущества друг перед другом. Поставщики СУБД и отраслевые аналитики постоянно обсуждают этот вопрос; например, Microsoft активно рекламирует сравнение своего SQL Server 2005 с Oracle 10g RAC. Oracle Corporation предложила RDBMS с архитектурой "ничего не разделять" с появлением IBM SP и SP2 и выпуском версий 7.x MPP, в которых виртуальные общие диски (VSD) использовались для создания реализации "разделять всё" на архитектуре "ничего не разделять".

Все поделили

Архитектуры "общий доступ ко всему" используют как данные на диске, так и данные в памяти между узлами в кластере. Это в отличие от архитектур "ничего не общего", которые не используют ни то, ни другое. Некоторые коммерчески доступные базы данных предлагают архитектуру "общий доступ ко всему". IBM Db2 для z/OS (операционная система IBM для мейнфреймов) предоставляет высокопроизводительный вариант совместного использования данных с середины 1990-х годов, когда IBM выпустила свою инфраструктуру кластеризации аппаратного и программного обеспечения для мейнфреймов. В конце 2009 года IBM представила DB2 pureScale – схему кластеризации дисков для DB2 9.8 на AIX, имитирующую параллельную реализацию sysplex, лежащую в основе совместного использования данных Db2 на мейнфрейме. В феврале 2008 года Sybase выпустила Adaptive Server Enterprise, Cluster Edition, которая по своей архитектуре "общий доступ ко всему" напоминает Oracle RAC. Хотя технически это не полноценный "общий доступ ко всему", Sybase также предоставляет колоночную реляционную базу данных, ориентированную на аналитические приложения и хранилища данных, под названием Sybase IQ, которую можно настроить для работы в режиме совместного использования диска. Облачные базы данных, такие как Amazon Aurora и POLARDB от Alibaba Cloud, реализованы с архитектурой "общий доступ ко всему" на основе облачной распределенной файловой системы.