Сбор и воспроизведение нагрузки базы данных Oracle 11g Database Replay - Введение в Database Replay
ОГЛАВЛЕНИЕ
Введение в Database Replay
В Oracle Database 11 g это пожелание исполнилось. Появился встроенный инструмент Database Replay, который, используя уникальную технику, точно сохраняет в бинарном файле всю активность базы на уровне ниже SQL, а затем может воспроизвести её как на той же базе, так и на другой (как раз то, что и нужно для тестирования изменений). Вы можете также настроить процесс сбора нагрузки на включение или исключение определённых типов активности в базе.
Database Replay представляет собой часть опции Oracle Database 11 g 's "Real Application Testing". Вторая часть - это инструмент SQL Performance Analyzer. Основное различие между этими двумя инструментами находится в области их применения. В то время, когда Database Replay позволяет записывать всю нагрузку (в пределах использования определённых фильтров), SQL Performance Analyzer позволяет записать определённый SQL-запрос и воспроизвести его (в Database Replay нельзя посмотреть и воспроизвести отдельный записанный SQL-запрос, а SQL Performance Analyzer предоставляет такую возможность). Последний предлагает большие возможности по оптимизации SQL-запросов потому, что вы можете подкорректировать SQL-запрос приложения и сразу оценить прирост производительности.
В целом Database Replay работает по приведённой ниже схеме.

- АБД запускает процесс сбора нагрузки, который фиксирует активность внутри базы данных.
- Процесс сбора нагрузки записывает результаты в файлы сбора нагрузки в специальную директорию (Capture Directory).
- Через некоторое время АБД останавливает процесс сбора нагрузки и перемещает файлы на тестовую систему в директорию повтора (Replay Directory).
- АБД запускает процесс воспроизведения нагрузки, а также несколько клиентов повтора для воспроизведения.
- Файлы записи нагрузки воспроизводятся на тестовой системе.
Какие же возможности предоставляет Database Replay, которые отсутствуют у других производителей? Их инструменты осуществляют лишь симуляцию неких предлагаемых запросов. Database Replay, наоборот, не требует передачи никаких запросов. Поскольку он работает на уровне ниже SQL, то нет риска потерять какие-либо ключевые операции, которые могут быть камнем преткновения в проблеме производительности. Кроме того, поскольку можно записывать нагрузку выборочно: по отдельным пользователям, программам и т.д., а также указать временной интервал для сбора нагрузки, то можно и воспроизвести конкретную нагрузку, которая вызывает проблемы, а не всю нагрузку в базе.
К примеру, вы заметили, что расчёт месячного отчёта вызывает проблемы, и вы предполагаете, что изменение параметра упростит процесс. Тогда всё, что нужно, - это собрать нагрузку за период, когда выполняется программа генерации отчёта, поменять нужные параметры на тестовой системе, а затем воспроизвести там файлы воспроизведения. Если производительность увеличилась, то проблема решена. Если же нет, работа производственной системы не нарушилась, поскольку испытание было произведено всего лишь на тестовой системе.
На мой взгляд, этот инструмент сам по себе делает обоснованным переход на Oracle Database 11 g . Теперь я покажу, как он работает.