Database Replay – новий засіб тестування змін, Інші СУБД, Бази даних, статті

Автор: Дмитро Лук’янов, “ФОРС – Центр Розробки”


Анотація


Стаття присвячена короткому опису можливостей та застосування Database Replay – нового засобу тестування змін для СУБД Oracle. У даній статті наводиться короткий опис компонента Database Replay , Його можливостей і областей застосування.


Введення


До складу СУБД Oracle 11 g включена нова опція Real Application Testing, тестування передбачуваних змін в базі, яка складається з двох основних компонентів:


  • Database Replay
  • SQL Performance Analyzer

    Перед будь-якими змінами у промисловій базі даних: установка оновлень, настройка параметрів, зміна платформи тощо, повинна проводитися перевірка нової конфігурації на окремому сервері. Однак, незважаючи на ретельне тестування, промислова система може повести себе несподівано при зміні її параметрів. Неможливість перевірити нову конфігурацію на реальному навантаженню – це величезний недолік при проведенні змін.


    Засобом для подолання цих труднощів є механізм Database Replay, що є частиною опції Real Application Testing в Oracle Database 11 g. Його використання надає можливість зібрати реальну навантаження на промисловій базі і відтворити її на тестовій з тією ж кількістю сесій, транзакцій і тимчасовими характеристиками.


    Варто, однак, відзначити, що механізм Database Replay має деякі обмеження на тип відтворюваних подій. Зокрема, такі типи клієнтських запитів не заносяться в результат записи навантаження:



    • Direct Data Load (via SQL * Loader e.t.c)
    • Shared server requests (Oracle MTS)
    • Oracle Streams
    • Advanced replication streams
    • Non-PL/SQL based Advanced Queuing (AQ)
    • Flashback queries
    • Oracle Call Interface (OCI) based object navigations
    • Non SQL-based object access
    • Розподілені транзакції (всі записані розподілені транзакції будуть інтерпретуватися як локальні транзакції)
    • Дистанційні операції DESCRIBE і COMMIT

    Примітка: у даний час для Database Replay мають місце:


  • тільки збір навантаження в Oracle Database 10.2.0.4
  • повна підтримка в Oracle Database 11 g
  • підтримка API в Oracle Database 9.2.0.8.

    Коли використовується 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 11g. І головне питання – чи буде додаток працювати так само або навіть краще? Замість того, щоб робити припущення, просто зберіть навантаження на Oracle 10g і повторіть її на Oracle 11g. При цьому ви виконуєте не якісь синтезовані абстрактні запити, а тестуєте ті самі SQL-команди, які додаток використовує кожен день. І, якщо виникають якісь проблеми, то внесіть необхідні зміни для того, щоб бути повністю впевненим в успішності переходу.


    Зміна платформи – Припустимо, що ви хочете мігрувати базу з платформи Solaris на HP-UX, де немає підтримки асинхронного вводу-виводу у файловій системі. Чи буде такий же продуктивність? Навіщо гадати? Просто зберіть навантаження і повторіть її на новій платформі.


    Перехід на RAC – Ви плануєте перевести роботу бази з одного примірника на RAC. Чи буде додаток працювати так само? Це один з найпоширеніших питань. Єдиний спосіб дізнатися – це застосувати реальну навантаження, отриману за допомогою Database Replay на виробничій базі.


    Архітектура Database Replay


    Процес збору та відтворення навантаження складається з наступних етапів:


    1. Збір навантаження (Workload Capture)


    2. Обробка навантаження (Workload Preprocessing)


    3. Відтворення навантаження (Workload Replay)


    4. Аналіз та висновок звітів по продуктивності (Analysis and Reporting)

    “Database Replay”, http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-features/11g-replay.html, перша стаття в серії “Oracle Database 11g: The Top New Features for DBAs and Developers by Arup Nanda”

  • Детальний опис Database Replay дається в документі: Oracle ® Database Performance Tuning Guide. 11g Release 1 (11.1). Part Number B28274-01 http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/wcr.htm # BABCAABF
  • Схожі статті:


    Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

    Коментарів поки що немає.

    Ваш отзыв

    Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

    *

    *