powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как почистить таблицу, не заблокировав ее для записи?
15 сообщений из 15, страница 1 из 1
Как почистить таблицу, не заблокировав ее для записи?
    #40111668
silnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица, в которую регулярно добавляются записи.
Периодически таблицу нужно подчищать.

В итоге один раз чистка старых данных запустила пересбор статистики, что заблокировало таблицу на запись, это затронуло пользователей.

Как можно избежать такой ситуации?
Перепроектировать бд можно, но данные в любом случае нужно будет чистить.
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111680
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Периодически таблицу нужно подчищать.

Не вижу проблем. Например, по дате.

чистка старых данных запустила пересбор статистики, что заблокировало таблицу на запись

Это епархия DBA, пусть не допускает такого.
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111682
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnovпересбор статистики, что заблокировало таблицу на запись

Сбор статистики блокирует таблицу? У вас какая версия?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111686
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnov
В итоге один раз чистка старых данных запустила пересбор статистики, что заблокировало таблицу на запись

это вы сами догадались, или вам ваш DBA сказал?
вообще, по опыту, DBA иногда бывают такими сказочниками...
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111687
silnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На буднях спрошу версию.
Может, я неправильно выразился, но ведь rebuild индексов блокирует изменение таблицы?
До наших DBAшников не достучался.
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111688
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnov
но ведь rebuild индексов блокирует изменение таблицы?

так у вас пересбор статистики или ребилд индексов запустился? разница, может кому-то и не очевидная, всё же есть...
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111690
silnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запись в таблицу точно была заблокирована, я точно не знаю, из-за чего.
Как сделать, чтобы такого не случилось?
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111691
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать, чтобы такого не случилось?

До наших DBAшников не достучался.

Достучаться.
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111692
проходил мимо...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnov,

то, что вы описали, не могло заблокировать запись в таблицу - наверняка было что-то ещё.
например, там ещё есть триггеры, которые пишут в другие таблицы, именно запись в которые и была заблокирована.
или на эту таблицу есть foreign key с другой таблицы и запись была заблокирована именно в ту - другую - таблицу.
или ... да масса вариантов!

не зная точной причины сложно давать рекомендации...
нужно больше информации. трейсы там или ожидания всех задействованных сессий - и заблокировавшей и заблокированных.
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111693
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnovЗапись в таблицу точно была заблокирована, я точно не знаю, из-за чего.
Как сделать, чтобы такого не случилось?

1. Выяснить точно из-за чего.
2. Устранить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40111695
silnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пошел узнавать, спасибо!
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40112183
Правильный Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnov
Периодически таблицу нужно подчищать.

Job на время неактивности пользователей?
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40121053
silnov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, покопал и узнал больше.
Говорят, запись была заблокирована вызовом оркаловой процедуры gather_database_stats_job_proc (это вроде какая-то общая системная процедура для сбора статистики)
Которая, в свою очередь, была заблокирована запросом

select 'alter table MYSPACE.MYTABLE drop partition ' || partition_name ||' update global indexes;' from dba_tab_partitions
where table_owner='MYSPACE' and table_name='MYTABLE' and partition_name like 'MYTABLE_18%';

вроде запрос это просто удаление партиции - он не может ничего залочить?

Куда копать?
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40121056
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silnov
Всем привет, покопал и узнал больше.
Говорят ...

Врут
silnov

вроде запрос это просто удаление партиции - он не может ничего залочить?

Это вообще не удаление.
Это генерация текстов, простой select.
Другой опрос - выполнялись ли эти тексты.
...
Рейтинг: 0 / 0
Как почистить таблицу, не заблокировав ее для записи?
    #40121058
Asmodeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
silnov
Всем привет, покопал и узнал больше.
Говорят, запись была заблокирована вызовом оркаловой процедуры gather_database_stats_job_proc (это вроде какая-то общая системная процедура для сбора статистики)
Которая, в свою очередь, была заблокирована запросом

select 'alter table MYSPACE.MYTABLE drop partition ' || partition_name ||' update global indexes;' from dba_tab_partitions
where table_owner='MYSPACE' and table_name='MYTABLE' and partition_name like 'MYTABLE_18%';

вроде запрос это просто удаление партиции - он не может ничего залочить?

Куда копать?

Код: plsql
1.
update global indexes


Вполне могло.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как почистить таблицу, не заблокировав ее для записи?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]