powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как обойти ошибку Transaction log is full
12 сообщений из 12, страница 1 из 1
Как обойти ошибку Transaction log is full
    #32374200
kostya0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
делаю

Код: plaintext
delete from t1


вылетает "Transaction log is full"
в таблице 300 000 записей.

В принципе лечится увеличением этого самого лога, но может есть более принципиальный подход? (ведь записей может быть и 500 000 или 1 000 000)

Это все делается в Exclusive режиме, т.е. никто в этот момент БД не читает, поэтому хотелось бы работать напрямую.

Есть варианты?
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32374226
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напиши 1.000.000 delete по одной строке. для этого в delete statement добавь where clause. как сделаешь -- дело твоё. можно воспользоваться ф-цией ctr() из примеров.
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32374369
kostya0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я правильно понимаю, что что-то вроде

Код: plaintext
1.
2.
3.
4.
5.
6.
delete from t1 where ID< 10  ;
delete from t1 where ID< 20  ;
delete from t1 where ID< 30  ;
delete from t1 where ID< 40  ;
delete from t1 where ID< 50  ;
......
delete from t1 where ID< 300000  ;


нда.... а более техничных нет способов?
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32374706
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
DELETE FROM TABLE1 T1
WHERE T1.ID <= (SELECT MIN(Q1.ID) +  100  FROM TABLE1 Q1)


И так по циклу, пока таблица не опустеет.
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32374994
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
IMPORT with REPLACE
Примеры где-то даже были. Надо пустые данные импортировать.
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32375000
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
я ишшо времено увеличивал кол-во секондари лог файлов (в сумме с праймари должно быть <= 256) именно для удаления.
Но IMPORT делает проще и быстрее. Вспомнить бы точно...
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32375117
IBMer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
You can choose the following
1) Alter table for no logging and delete rows
2) Increase number and size of log files
db2 update dbm cfg using LOGPRIMARY -1
This is infinite logging (v8 only)
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #32384521
Andrew Tyapuhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
варианты
1) drop + create table
2) export с невыполнимым условием (0 строк) + import/replace
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как обойти ошибку Transaction log is full
    #35600720
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы хотел еще раз поднять эту тему.
Способ с извратом не очень нравится. Есть какой-то правильный способ, т.е. с привлечением настреок конфигурации, решить проблему??
Увеличение количества файлов лога и размера лога не помогает, цикличность активна (т.е. logretain установлен в off)

- всё равно не помогает надолго! А база еще далеко не заполнена, находится в тестовом режиме, с небольшим количеством клиентов!

Сейчас стоит 80 primary logs, 160 secondary и 32000 - размер файла...
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #35600774
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #35602165
DHrulev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafigatorЯ бы хотел еще раз поднять эту тему.

Вы commit то выдаете во время работы?
Или жизнь вашей программы в эксклюзивном режиме одна сплошная транзакция?
...
Рейтинг: 0 / 0
Как обойти ошибку Transaction log is full
    #35602333
4asovik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в общем случае есть 2 пути решения.
1. В логах нужны эти записи об удалении. Тогда только увеличивать размер лога (причем, если увеличивать размер активного лога, то нужно перезапускать базу данных, т.е. обрубить к ней все коннекшены и при первом повторном подключении логи будут увеличены).

2. Таблица какая-нибудь интерфейсная, промежуточная и пр. и возможность восстановления этих записей в ней не нужна, т.е. в логи заносить их бессмысленно. Тогда три варианта.
- как советовал IBMer, сделать ALTER TABLE <имя таблицы> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE, либо
Andrew Tyapuhinварианты
1) drop + create table
2) export с невыполнимым условием (0 строк) + import/replace
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как обойти ошибку Transaction log is full
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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