Удаление области V 10.A

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Удаление области V 10.A

Сообщение valun » 04 авг 2007, 12:54

Хочу удалить область. Все экстенты удалились кроме первого, ругается


/bank/db/data/bank_7.d2 successfully removed. (6968)
bash-3.00# prostrct remove bank d "TRAN Area"
The last extent of area TRAN Area is in use. (8565)
Extent delete rejected. (6961)

Что с этим можно сделать ?
спасибо.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: Удаление области V 10.A

Сообщение George » 04 авг 2007, 15:32

valun писал(а):The last extent of area TRAN Area is in use. (8565)

1) В этом экстенте есть или были данные.
или
2) В этой области прописаны какие-то объекты, пусть даже в них нет данных.

На самом 2) тот же случай 1). В любой Progress'ой таблицы есть хотя бы одна запись - template, в которой храняться начальные значения всех полей. Любой Progress'оый индекс состоит как минимум из одного блока - корневого индексного блока. Т.е. если в области прописаны объекты, то несколько блоков будут заполнены данными.

Решение:
Перенести все (включая пустые) объекты в другую область.
После этого выполнить trunacte area.
Теперь команда prostrct statistics покажет, что в этой области Active blocks: 0, что означает - можно удалять последний ее экстент.

valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Сообщение valun » 04 авг 2007, 15:58

truncate области делал до того как пытался удалить саму область...
А куда нужно их переносить, они мне ненужны ?

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Сообщение George » 04 авг 2007, 16:09

valun писал(а):А куда нужно их переносить, они мне ненужны ?

Значит их нужно удалить из Data Dictionary, а затем прибраться после них с помощью truncate area.

Полная процедура избавленя от области со всем его содержимым может быть такой:
1) Делаем первый truncate area, чтобы все объекты похудели до состояния скелета.
2) Из Data Dictionary быстро и окончательно удаляет эти "скелетики".
3) Делаем второй truncate area, чтобы полностью освободить место в области.
4) Последовательно удаляем все экстенты области (prostrct remove).

valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Сообщение valun » 04 авг 2007, 16:28

Понял, спасибо.

valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Сообщение valun » 06 авг 2007, 19:15

запустил dbanalys

INDEX BLOCK SUMMARY FOR AREA "TRAN Area" : 7
-------------------------------------------------------
Table Index Fields Levels Blocks Size % Util Factor
PUB.chgbnk
bic 2137 1 1 1 3.0B 0.0 1.0

наверное это из-за этого не транкейтится область....удалил в Data Dictionary табл chgbnk и все вравно транкейт не идёт. Подскажите как правильно вычищать область, куда смотреть и что удалять ?
спасибо.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Сообщение George » 06 авг 2007, 19:21

valun писал(а):удалил в Data Dictionary табл chgbnk и все вравно транкейт не идёт.

А после удаления таблицы был сделан truncate area?

valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Сообщение valun » 06 авг 2007, 19:24

Сделал, результат тот же -
Index "rem" was deactivated. (1515)
Index "tlx" was deactivated. (1515)
Index "valdt" was deactivated. (1515)
bash-3.00# proutil bank -C truncate bi
OpenEdge Release 10.1A as of Tue Dec 20 22:46:49 EST 2005

bash-3.00# prostrct remove bank d "TRAN Area"
The last extent of area TRAN Area is in use. (8565)
Extent delete rejected. (6961)

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Сообщение George » 06 авг 2007, 22:46

valun писал(а):Сделал, результат тот же -
Index "rem" was deactivated. (1515)
Index "tlx" was deactivated. (1515)
Index "valdt" was deactivated. (1515)

Блин! Ну так ведь эти индексы тоже прописаны в той же области!
Неужели dbanalys о них не упоминал?

valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Сообщение valun » 07 авг 2007, 00:07

Неужели dbanalys о них не упоминал?
нет, несколько раз пересмотрел dbanalys... потом еще искал по индексу "tix" - нету такого... Все данные этой области я выгрузил, можно её как-то убить, не боясь за данные, которые в ней остались ?

Аватара пользователя
dmitri
Старожил
Сообщения: 1016
Зарегистрирован: 04 авг 2005, 16:19
Откуда: Pennsylvania, USA
Контактная информация:

Сообщение dmitri » 07 авг 2007, 00:16

Попробуйте приведенные в ссылке 2 программы.
http://www.geocities.com/d_levin/dlc/tablearea.html

Первая про таблицы, а вторая про индексы.
Интересно показувает ли она что нибудь в той области которую вы планируете удалить?

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Сообщение George » 07 авг 2007, 00:18

valun писал(а):несколько раз пересмотрел dbanalys...

А можно запустить и опубликовать целиком результат dbanalys'а для этой области?
proutil db -C dbanalys "Area Name"

Или можно проверить ЭпроживающихЭ в области из 4GL:

Код: Выделить всё

FOR EACH _StoraObject NO-LOCK
  WHERE _StoraObject._Area-number EQ <Area>:
  DISPLAY
   _StoraObject._Object-type
   _StoraObject._Object-number
END.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Сообщение George » 07 авг 2007, 00:23

George писал(а):Блин! Ну так ведь эти индексы тоже прописаны в той же области!
Неужели dbanalys о них не упоминал?

Я, конечно, немного погорячился. Сообщения говорят, что в области находится таблица, к которой относятся упомянутые индексы.

Но суть не изменилась - в области по-прежнему кто-то еще живет.

И еще одна команда, которая может это подтвердить:
prostrct statistics db
Интересуют Active blocks для данной области.

valun
Старожил
Сообщения: 49
Зарегистрирован: 04 авг 2007, 12:48
Контактная информация:

Сообщение valun » 07 авг 2007, 00:28

Statistics for Area: TRAN Area

Files in Area: TRAN Area
/bank/db/data/bank_7.d1 536870912

Database Block Usage for Area: TRAN Area

Active blocks: 3583
Empty blocks: 61953
Extent blocks: 1
Total blocks: 65536
Records/Block: 256

больше ничего по этой области нет

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Сообщение George » 07 авг 2007, 00:37

valun писал(а): Active blocks: 3583

Откровенно не верится, что для этой области выполнялась команда truncate area.
Команда была такой?: proutil db -C truncate area "TRAN Area"
больше ничего по этой области нет

Т.е. ни 4GL программы, ссылки на которые дал dmitri, ни dbnalays для этой области ничего не показали? Прошу прощения, но не верю. Хотелось бы увидеть команду в точности как она вызывалась и ее результат. Я имею ввиду:
proutil db -C dbanalys "TRAN Area"
Последний раз редактировалось George 07 авг 2007, 00:42, всего редактировалось 1 раз.