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

Код: plaintext
delete from t1


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

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

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

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

Код: 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
13.01.2004, 16:11
    #32374706
Alexey Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
Код: plaintext
1.
DELETE FROM TABLE1 T1
WHERE T1.ID <= (SELECT MIN(Q1.ID) +  100  FROM TABLE1 Q1)


И так по циклу, пока таблица не опустеет.
...
Рейтинг: 0 / 0
13.01.2004, 18:51
    #32374994
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
IMPORT with REPLACE
Примеры где-то даже были. Надо пустые данные импортировать.
...
Рейтинг: 0 / 0
13.01.2004, 18:57
    #32375000
ggv
ggv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
я ишшо времено увеличивал кол-во секондари лог файлов (в сумме с праймари должно быть <= 256) именно для удаления.
Но IMPORT делает проще и быстрее. Вспомнить бы точно...
...
Рейтинг: 0 / 0
14.01.2004, 02:32
    #32375117
IBMer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
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
22.01.2004, 13:01
    #32384521
Andrew Tyapuhin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
варианты
1) drop + create table
2) export с невыполнимым условием (0 строк) + import/replace
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.10.2008, 13:17
    #35600720
Nafigator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
Я бы хотел еще раз поднять эту тему.
Способ с извратом не очень нравится. Есть какой-то правильный способ, т.е. с привлечением настреок конфигурации, решить проблему??
Увеличение количества файлов лога и размера лога не помогает, цикличность активна (т.е. logretain установлен в off)

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

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

Вы commit то выдаете во время работы?
Или жизнь вашей программы в эксклюзивном режиме одна сплошная транзакция?
...
Рейтинг: 0 / 0
18.10.2008, 13:34
    #35602333
4asovik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обойти ошибку Transaction log is full
в общем случае есть 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
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как обойти ошибку Transaction log is full / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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