• Базы данных
  • Oracle
  • Сбор и воспроизведение нагрузки базы данных Oracle 11g Database Replay

Сбор и воспроизведение нагрузки базы данных Oracle 11g Database Replay - Когда использовать Database Replay?

ОГЛАВЛЕНИЕ

Когда использовать Database Replay?

Изменение параметров базы -  Предположим, что вы меняете значение параметра db_file_multiblock_read_count с 16 (по умолчанию) на 256. Но, хорошо ли 256?  А может быть 128 лучше? Или 64? Или 32? Число вариантов невелико, но воздействие данного изменения на оптимизатор может быть существенно. Как определить оптимальное значение параметра?

В данной ситуации на помощь приходит Database Replay. Вы можете собрать нагрузку на промышленной системе, переместить её на отдельную тестовую, установить db_file_multiblock_read_count равным новому значению, например 256, и затем повторить нагрузку с новыми параметрами. Для проведения следующего теста нужно откатить (flashback) базу в оригинальное состояние, установить значение параметра равным, скажем 64, и повторить (replay) нагрузку еще раз. При каждом повторе вы будете генерировать отчет AWR (Automatic Workload Repository)  до и после применения нагрузки и сравнивать результаты. В итоге, вы получаете возможность выбрать то значение параметра, которое наиболее подходит для вашей системы. Без Database Replay подобрать оптимальное значение было практически невозможно.

Обновление (upgrade) ОС - Вы планируете обновление ОС или установку патча для исправления проблем ввода/вывода. Но как вы можете гарантировать, что это не приведёт к сбоям и не вызовет другие проблемы? Всё очень просто: соберите нагрузку и воспроизведите её на тестовой системе, где нужный патч уже установлен. Данная техника применима, в том числе, и к изменениям параметров ядра ОС.

Установка патчей базы данных - Допустим, у вас есть баг, и вы нашли патч для его исправления. Но нет уверенности, какое воздействие он окажет на текущие операции в базе, и не будет ли он конфликтовать с уже установленными патчами. Database Replay - то, что вам нужно.

Отладка - Всегда есть программы, которые выдают результаты отличные от тех, которые вы ожидаете. Database Replay существенно упрощает отладку. Просто соберите нагрузку в тот момент, когда программа выполняется, переместите на тестовую систему, внесите изменения в код программы, и тестируйте на новой системе без риска воздействия на промышленную базу.

Изменения объектов - Вы хотите добавить индекс или конвертировать его из b-tree архитектуры в bitmap ( бинарную). Какое воздействие это будет иметь на добавление (insert) строк в таблицу? Не гадайте. Просто соберите нагрузку и воспроизведите её на тестовой системе с новыми индексами.

Обновление версии СУБД (upgrade) - это всегда камень преткновения. Пришло время для перехода на Oracle Database 11 g. И главный вопрос - это: будет ли ваше приложение работать так же или даже лучше? Вместо того, чтобы делать предположения, просто соберите нагрузку на 10 g   и повторите её на 11 g . При этом вы работаете не с какими-либо синтезированными абстрактными запросами, а тестируете те самые SQL -команды, которые приложение использует каждый день. И если возникают какие-либо проблемы, то вносите необходимые изменения для того, чтобы полностью удостовериться в успешности перехода.

Смена платформы - предположим, что надо мигрировать базу с платформы Solaris на HP-UX, где нет поддержки асинхронного ввода-вывода в файловой системе. Будет ли производительность такой же? Зачем гадать? Просто соберите нагрузку и повторите её на новой платформе.

Переход на RAC - Вы планируете перевести базу на RAC. Будет ли приложение работать так же? Это один из самых распространённых вопросов. Единственный способ узнать - это применить реальную нагрузку с производственной базы с помощью Database Replay.

Подведение итогов

Изменение никогда не проходит бесследно, но оно также и не должно ухудшать ситуацию. Можно свести к минимуму вероятность рисков, собрав нагрузку, которую генерируют конечные пользователи, и воспроизвести её на тестовой системе с помощью нового инструмента Database Replay, оценив воздействие изменения того или иного параметра. Всего за несколько кликов мышкой и пары строк. Имейте в виду, что таким образом можно протестировать функционирование приложения, а не только его производительность.