Real Application Testing
Зачастую компании не спешат переходить на Oracle Database 11g. Множество предприятий все еще продолжают работать на более ранних вариантах СУБД. В основном, это связано не с отсутствием желания внедрять новые технологии, а из-за опасений возникновения проблем. Ведь до того как перейти на новую версию, было бы неплохо оценить быстродействие, надежность и стабильность работы системы. Уменьшить риски при переходе, а также снизить время и стоимость тестирования может помочь одна из новых опций Oracle 11g – Real Application Testing, которая состоит из:
- Database Replay;
- SQL Performance Analyzer.
Database Replay
Компонент Database Replay включает в себя механизм, позволяющий «захватывать» и «воспроизводить» нагрузку промышленной системы в тестовой среде. При этом отпадает необходимость моделирования нагрузки (создание скриптов, искусственно ее имитирующих). Вместо этого автоматически непосредственно на продуктовой базе «захватывается» реальная нагрузка. В итоге: не тратится время на разработку скриптов и результаты тестирования являются более достоверными. Также существует возможность нахождения различий между «тестовой» и «продуктовой» системами, что облегчает поиск вариантов решения проблемы.
«Захват» рабочей нагрузки происходит при обращении внешних клиентов к серверному уровню Базы Данных (БД). Таким образом, Database Replay может использоваться для тестирования производительности базы после внесения изменений от уровня сервера БД и ниже, например, таких как:
- обновление БД, установка патчей, изменение параметров, изменения в схеме БД;
- изменения конфигурации СУБД, такие как переход от одного экземпляра на RAC, ASM и т.д.;
- изменения в устройстве хранения, сетевой инфраструктуры;
- замена операционной системы, перевод на новое оборудование, установка патчей ОС, изменение параметров.
«Захват» нагрузки происходит на «продуктовой системе», а обработка, «воспроизведение» и анализ результатов – на тестовой (рис.1).
SQL Performance Analyzer
При изменении параметров и объектов СУБД возможны изменения планов выполнения SQL запросов, которые могут по-разному сказываться на доступности и производительности системы в целом. SQL Performance Analyzer (SPA) предоставляет функциональность, позволяющую обнаружить ухудшение производительности SQL. Принцип действия основан на «захвате» SQL нагрузки вместе с переменными и планами запросов и сверке результатов их выполнения на боевой и тестовой системах.
Пример изменений, для которых может использоваться SQL Performance Analyzer:
- обновление БД;
- изменение статистики оптимизатора;
- новые индексы, материализованные представления, секционирование и т.д.;
- изменение параметров БД (init.ora).
Oracle Advanced Compression
В Oracle11g был расширен режим компрессии. В отличие от предыдущей версии, Oracle Advanced Compression поддерживает сжатие транзакционных данных, компрессию и дедупликацию неструктурированных (Secure File), сжатие при создании резервной копии БД (backup),
а также сжатие сетевого трафика.
Рис. 1. «Захват» и «обработка» нагрузки.
При сжатии не только уменьшается объем базы, занимаемый на дисковых массивах, но и увеличивается производительность обработки больших потоков информации за счет уменьшения количества операций «чтения/записи».
Active Data Guard
Для многих организаций очень важно, чтобы СУБД работала в режиме непрерывной доступности. Какие-либо сбои, приводящие к простою, могут быть весьма критичны для бизнеса. Поэтому, чтобы наиболее быстро восстановить функционирование системы, нередко используется копия основной БД, работающая параллельно, на которую возможно переключиться в случае сбоя (так называемый Physical Standby). Active Data Guard – это дальнейшее развитие технологии standby. Но имеется ряд отличий и новых возможностей:
- с основной базы могут передаваться журналы транзакций не в бинарном виде, а в виде операторов SQL, которые выполняются на резервной базе. Это позволяет держать physical standby в открытом режиме, но доступном только для чтения;
- часть нагрузки с основного сервера (например, отчетность) можно перенести на резервный, причем это будет абсолютно прозрачно для пользователей;
- возможность простого и быстрого переключения на резервную БД (так же появилась возможность указать событие, по которому будет автоматически осуществляться перевод).
Total Recall (Flashback Archive)
Часто компаниям требуется сохранять в СУБД «исторические» данные. Причиной этому могут служить требования законодательства, а также стандарты безопасности и аудита. В той или иной степени такая возможность была реализована еще в предыдущей версии Oracle Database, но она имела свои «минусы»:
- данные сохранялись только до тех пор, пока были «действительны» (не устаревали) в undo-сегменте;
- при недостатке свободного места в undo-табличном пространстве, затирались более старые, но еще «не устаревшие» сведения.
Таким образом, после того как информация «устаревала», получить ее без достаточно трудоемких операций с БД не представлялось возможным.
В Oracle 11g, используя Flashback Archive, появилась возможность задавать время хранения «исторических» данных. Реализовано это следующим образом: создается копия, куда заносятся все изменения в основной таблице. Причем, для хранения можно задать отдельное табличное пространство. Эта копия не участвует в транзакционной схеме, благодаря чему не происходит существенного замедления при обращении к основной таблице.
Также в опции существует инструментарий для возврата как таблицы, так и всей БД к состоянию на определенный момент времени. При этом обыкновенные запросы будут возвращать данные на заданный период времени.
Используя такую технологию, отсутствует возможность фальсификации «исторической» информации. Внести изменения прошедшей датой невозможно.
Но и у этой реализации, на мой взгляд, есть ряд недостатков: при включении режима сохранения у таблицы исключается возможность выполнения ряда DDL операций, таких как: удаление, изменение и переименование столбцов, конвертация long в LOB, операции над секциями, удаление и переименование таблиц.
В целом же рассматриваемый функционал может быть очень полезен как для аудита, так и для отчетности, когда необходимо получить данные на определенный период времени.
Ошибочно было бы полагать, что разные опции Oracle – это отдельный и никак не связанный функционал. Многие из них можно использовать совместно. Более того, они дополняют друг друга. Компания «Инфосистемы Джет» готова взять на себя работы по проектированию и внедрению систем с использованием СУБД Oracle (в том числе и Oracle 11g с ее новыми возможностями).
В завершение разговора о СУБД Oracle в версии 11g, пополнившуюся четырьмя новыми опциями, описанными выше, отмечу, что три из них (Real Application Testing, Oracle Advanced Compression и Active Data Guard) более интересны администраторам БД, в то время как Total Recall может быть полезна как администраторам, так и разработчикам приложений. Таким образом, нововведения призваны облегчить тестирование и настройку СУБД, повысить отказоустойчивость, помочь более рационально использовать ресурсы аппаратного обеспечения, а также осуществлять контроль над изменениями данных.