Порядок виконання роботи

Моніторинг блокувань

Для отримання інформації про блокування, необхідно використовувати представлення словника даних. Такі як:

§ V$LOCK: Інформація про блокуваннях і ресурсах. Не включає блокування DDL

SID NUMBER Идентификатор процесса, удерживающего блокировкуTYPE VARCHAR2 Тип блокуванняID1 NUMBER Идентифікатор блокування #1 (номер сегмента відката, слот)ID2 NUMBER Идентифікатор блокування #2 (номер зміни, тобто число повторных використань сегмента відката)LMODE NUMBER Режим блокування: 1 (null), 2 (row share), 3 (row exclusive), 4 (share), 5 (share row exclusive), 6 (exclusive)

 

§ V$SESSION: Інформація про сесії для кожної поточної сесії

§ DBA_DDL_LOCKS: Всі блокування DDL, утримувані в базі даних, і всі запити, які очікують блокувань DDL

§ DBA_DML_LOCKS: Всі блокування DML, утримувані в базі даних, і всі запити, які очікують блокувань DML

§ DBA_LOCKS: Всі блокування або замки, утримувані в базі даних, і всі запити, які очікують блокувань або замків. Цей запит включає блокування DML і блокування DDL.

§ DBA_WAITERS: Всі сесії, які очікують блокувань, і всі сесії, що утримують блокування

§ DBA_BLOCKERS: Всі сесії, для яких є хто-небудь, що очікує утримуваних ними блокувань, але самі не очікують

§ V$SESSION_WAIT: Ресурси або події, яких чекають активні сесії

 

 

1. Що собою представляють транзакції в СУБД? Які основні характеристики транзакцій?

2. Які основні оператори керування транзакціями?

3. Створіть таблицю як копію таблиці scott.emp. Додайте у вашу таблицю новий рядок. За допомогою оператора commit зафіксуйте результати зміни.

4. Яке значення ключового слова work у синтаксисах операторів commitй rollback?

5. Додати до раніше створеної таблиці ще 2 будь-які рядки. Позначити крапку збереження за допомогою оператора SAVEPOINT. Після цього перевірити обидва режими виконання оператора ROLLBACK: відкотити всі зміни до заданої крапки збереження, а після відкотити всі зміни цілком.

6. Чи можна повторно використати крапки збереження усередині транзакцій? Що при цьому спостерігається?

7. Які режими в себе включає «список опцій» оператора SET TRANSACTION?

8. Установити режим Read Only для якої або таблиці. Використати оператори SELECT, COMMIT, ROLLBACK. Перевірити виконання даних операторів. Після чого використати оператори INSERT й DELETE й оцінити помилки видавані при цьому.

9. Установити режим Read Write і перевірити виконання операторів наведених вище.

10. Використати Isolation Level і перевірити виконання всіх параметрів даного оператора.

 

Для виконання наступних вправ створіть паралельне зєднання з базою даних як SYSDBA.

 

(наприклад з консолі SQL*Plus CONNECT sys/sys AS sysdba;)

11. Почати транзакцію, в якій збільшити зарплату одного з робітників в таблиці emp на 100 (scott #1).

12. З представлення словника даних DBA_DML_LOCKS отримати інформацію про встановлені блокування. За номером сесії (SESSION_ID) з цього представлення виберіть з представлення V$LOCK (SID) відповідні строки, та визначте типии накладених блокувань.

13. З під іншого сеансу користувача scott (#2) зменшіть зарплату тому-ж працівнику на 200.

14. Перегляньте представлення DBA_WAITERS та DBA_BLOCKERS. Поясніть що сталося з транзакцією №2?

15. Завершіть транзакцію №1. Які зміни сталися з транзакцією №2? Завершіть транзакцію №2 відкатом.

16. Почніть транзакцію збільшивши зарплату всім працівникам на 15%.

17. Зробіть запит до таблиць DBA_DML_LOCKS та V$LOCK поєднавши їх результати за номером сессії. Які блокування накладені?