Ошибка ORA-04020 при добавлении партиции
AndrykV
Дата: 23.09.2015 18:32:38
Oracle 11g
Есть партицированная таблица по расписанию каждую ночь в 2 часа для нее добавляются партиции разделенные по времени с разбивкой на 4 часа. Все работало нормально, но вот последние два дня, выдает ошибку дедлока... Куда смотреть что ей не хватает?
Админ говорит tablespase заполнены на 30-40%.
У меня на стенде, все работает как часы...
orawish
Дата: 23.09.2015 18:48:19
AndrykV,
щщас угадаю ;)
секционирование интервальное?
AndrykV
Дата: 23.09.2015 19:10:18
orawish,
Угадал :)
Я же вроде написал разеленные по 4 часа...
Perl'ун старый
Дата: 24.09.2015 09:55:02
Смотри в логи, для начала. В логе должно быть расписано кто и за какие объекты сцепился.
orawish
Дата: 24.09.2015 10:17:33
AndrykV |
---|
orawish,
Угадал :)
Я же вроде написал разеленные по 4 часа... |
"интервалить" при этом же не обязательно. более того -
совершенно напрасно (имхо)
ну а на тему
что случилось - stff
гадаем дальше..
AndrykV
Дата: 26.09.2015 12:16:00
orawish, Почему интервалить лишнее? у меня предполагается порядка 2-3 млн, может и больше, записей в сутки, потом еще через некоторое время переливать данные в архивную БД по линку, ИМХО по партициям переливка легче делается.
Появилось у меня предположение, что данная ошибка возникла из-за высокой нагрузки в момент работы джоба создающего партиции, т.к. в эти дни проходило нагрузочное тестирование, и тестеры врубили его на ночь... В общем сечас готовлю скрипты чтобы попытаться повторить ошибку на своем стенде.
Но меня смущает что ошибка при добавлении партиции поисходит, я бы еще понял чтобы она была при удалении. партиции у меня создаются с запасаом за несколько дней, типа окна смотрящего вперед на 2-3 дня.
За "тынцы" оргромное спасибо.
orawish
Дата: 28.09.2015 10:59:53
AndrykV |
---|
orawish, Почему интервалить лишнее? .. |
эту
7086202 тему читали?
AndrykV
Дата: 28.09.2015 16:37:47
orawish,
А я не правильно понял ваш вопрос "секционирование интервальное?", нет не интревальное обычное RANGE.
orawish
Дата: 28.09.2015 17:18:09
AndrykV |
---|
orawish,
А я не правильно понял ваш вопрос "секционирование интервальное?", нет не интревальное обычное RANGE. |
не создавайте секций очередями ( у вас же 6 штук сразу, наверное раз в день )
стабильнее будет работать
по одной, через 6 часов
AndrykV
Дата: 29.10.2015 09:57:00
В общем наконец-то руки дошли до этой проблемы. Может кому будет полезно.
Победил я эти deadlock ошибки.
В ощем. проблема оказалась следущая.
У меня есть несколько таблиц с reference партицированием. Партицирование range(по дате)
Так вот при добавлении новых партиций сверху, если при этом идет запись в эти таблицы, возникала ошибка deadlock, т.к. при добавлении партиции оракл пытается блокировать эти таблицы полностью. Это показали экперименты, потому как ошибка блокировки в процедуре вставки записей просходила на разных таблицах.
В общем решение оказалось простым, делаем верхнюю партицию с масимальным значением, и потом при необходимости нарезаем партиции от нее командой split partition. При этом блокируется только верхняя партиция в которую запись пока еще не идет.
В общем как-то так.
Удачи.