Опросы |
|
|
1001 и 1 книга
|
19.03.2018г.
Просмотров: 6828
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О
Читать далее...
|
12.03.2018г.
Просмотров: 7359
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации
Читать далее...
|
12.03.2018г.
Просмотров: 4609
Комментарии: 0
Глубокое обучение с точки зрения практика
Читать далее...
|
12.03.2018г.
Просмотров: 3159
Комментарии: 0
Изучаем pandas
Читать далее...
|
12.03.2018г.
Просмотров: 3964
Комментарии: 0
Программирование на языке Rust (Цветное издание)
Читать далее...
|
19.12.2017г.
Просмотров: 3966
Комментарии: 0
Глубокое обучение
Читать далее...
|
19.12.2017г.
Просмотров: 6469
Комментарии: 0
Анализ социальных медиа на Python
Читать далее...
|
19.12.2017г.
Просмотров: 3311
Комментарии: 0
Основы блокчейна
Читать далее...
|
19.12.2017г.
Просмотров: 3591
Комментарии: 0
Java 9. Полный обзор нововведений
Читать далее...
|
16.02.2017г.
Просмотров: 7450
Комментарии: 0
Опоздавших не бывает, или книга о стеке
Читать далее...
|
17.05.2016г.
Просмотров: 10814
Комментарии: 0
Теория вычислений для программистов
Читать далее...
|
30.03.2015г.
Просмотров: 12524
Комментарии: 0
От математики к обобщенному программированию
Читать далее...
|
18.02.2014г.
Просмотров: 14231
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»
Читать далее...
|
13.02.2014г.
Просмотров: 9263
Комментарии: 0
Читайте, размышляйте, действуйте
Читать далее...
|
12.02.2014г.
Просмотров: 7210
Комментарии: 0
Рисуем наши мысли
Читать далее...
|
10.02.2014г.
Просмотров: 5518
Комментарии: 3
Страна в цифрах
Читать далее...
|
18.12.2013г.
Просмотров: 4749
Комментарии: 0
Большие данные меняют нашу жизнь
Читать далее...
|
18.12.2013г.
Просмотров: 3567
Комментарии: 0
Компьютерные технологии – корень зла для точки роста
Читать далее...
|
04.12.2013г.
Просмотров: 3275
Комментарии: 0
Паутина в облаках
Читать далее...
|
03.12.2013г.
Просмотров: 3507
Комментарии: 1
Рецензия на книгу «MongoDB в действии»
Читать далее...
|
02.12.2013г.
Просмотров: 3160
Комментарии: 0
Не думай о минутах свысока
Читать далее...
|
|
|
Друзья сайта
|
|
|
|
|
Мониторинг блокировок в Oracle. Методы предупреждения и автоматического устранения
Архив номеров / 2015 / Выпуск №4 (149) / Мониторинг блокировок в Oracle. Методы предупреждения и автоматического устранения
Рубрика:
Базы данных /
Мониторинг
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ВАЛЕРИЙ МИХЕИЧЕВ, эксперт Oracle, ОСАО «Ингосстрах», Valery.Mikheitchev@ingos.ru
Мониторинг блокировок в Oracle
Методы предупреждения и автоматического устранения
Многолетний опыт эксплуатации баз данных в Oracle в нашей организации показал, что среди проблем, возникающих в базах данных (БД), особое место занимают блокировки, которые могут привести к невозможности дальнейшей работы БД, в связи с чем потребуются срочные меры по их устранению.
Возможные типы блокировок описаны в различных источниках. Однако практически мало систематизированной информации о том, как предупреждать блокировки, а главное, какими инструментальными средствами диагностировать блокировки и оперативно их устранять, в том числе автоматическими программными средствами.
Немного о блокировках
Чтобы понять, как диагностировать и предупреждать блокировки, информация о них и причинах их возникновения.
Наиболее характерными типами являются блокировки DML-операций, блокировки DDL-операций, а также защелки и внутренние блокировки.
- Блокировки данных DML. Они защищают данные таблиц. DML-операции (insert, update, delete и select for update) устанавливают монопольную блокировку для строк, которые обрабатываются DML-операцией, т.е. добавляются, удаляются или изменяются внутри транзакции. Всякий раз, когда DML-операция собирается модифицировать строки в таблице (например, по update или delete), Oracle автоматически устанавливает монопольную блокировку уровня строки (тип TX) на каждую модифицированную строку таблицы. Блокировки DML удерживаются Oracle до тех пор, пока транзакция не завершится, явно (операциями commit или rollback) или неявно. Неявно транзакция завершается после отсоединения пользователя от Oracle или в случае аварийного завершения процесса. Следует заметить, что наличие монопольной блокировки на строки, установленные модифицирующей транзакцией, не запрещает другим транзакциям изменять и удалять не затронутые модифицирующей транзакцией строки той же таблицы.
- Блокировки словаря DDL. Блокировки словаря защищают структуру объектов, например, определения таблиц и представлений. DDL-операции (create, drop, alter, truncate и т.д.) предохраняют объекты Oracle от изменения их структуры или от уничтожения. Так, DDL-блокировки устанавливаются для защиты структуры объекта от модификации другими DDL-операциями.
- Защелки (latch) – это блокировки, предназначенные для установки их на короткие интервалы времени, служат для защиты определенных структур памяти (например, буферного кэша блока БД или библиотечного кэша). Следует заметить, что внутренние блокировки и защелки не могут управляться пользователем.
- Внутренние блокировки – это блокировки разных типов, например, блокировки кэша словаря данных, блокировки управления файлами, блокировки табличного пространства и сегментов отката.
Блокировки можно разделить на две группы: создаваемые автоматически и явные (ручные) блокировки. К ручным блокировкам относятся созданные командами lock table, select for update, или с использованием пакета dbms_lock.
Причины возникновения блокировок и методы их предупреждения
Опыт работы с БД позволил сформулировать следующие наиболее часто встречающиеся причины блокировок:
- Отсутствие завершения транзакций по окончании DML-операции через commit (rollback), в силу чего другие транзакции оказываются заблокированными (им приходится ждать завершения транзакции).
- Отложенные во времени завершения транзакции, состоящей из DML-операций, когда транзакция завершается по commit (rollback) только после выполнения нескольких DML-операций или после автоматического завершения транзакции.
- Длительное время выполнения DML-операций в транзакции, в том числе в силу длительного выполнения запроса, участвующего в DML-операции, или длительного выполнения цикла, содержащего DML-операции.
- Отсутствие commit при модификации строк (например, по update или delete) в одной и той же таблице в цепочке процедур внутри сессии. Что приводит к блокировкам внутри сессии.
- Принудительные ручные блокировки (например, оператором lock table).
- Одновременно ввод в таблицу разными сессиями строк, содержащих одни и те же значения в первичном ключе или уникальном индексе (блокировки по insert).
- Использование битовых индексов в таблицах, подвергающихся одновременному изменению со стороны нескольких сессий.
- Блокировки, возникающие в дочерней таблице, обусловленные изменениями в родительской таблице.
Статью целиком читайте в журнале «Системный администратор», №4 за 2015 г. на страницах 30-34.
PDF-версию данного номера можно приобрести в нашем магазине.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Комментарии отсутствуют
Добавить комментарий
|
Комментарии могут оставлять только зарегистрированные пользователи
|
|