Регистрация

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

Обсуждение вопросов по администрированию СУБД Progress OpenEdge
Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Ср сен 28, 2016 5:25 pm

Arelav писал(а):Понятно.

Вот нашёл статью про перенос BLOB/CLOB
http://knowledgebase.progress.com/artic ... le/P117881
Т.е. tablemove не переносит LOB-объекты, это нужно делать особенным способом.

В базе данных точно не используются или не использовались ранее LOB-поля?

Выгрузите через Data Dictionary полную DF и посмотрите наличие LOB-объектов, например
Код: Выделить всё
cat sports.df  | grep LOB


Выгрузил в df все табл и нет ни одного LOB.

Ну судя по тому что в _Field._Data-Type нет ничего похожено на lob то нет. Или они могли при перемещении остаться в старой области и стать "невидимыми" явно ?

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

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

Сообщение George » Ср сен 28, 2016 9:54 pm

valun писал(а):Object-associate: 1538


В базе есть объект с таким номером?

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Чт сен 29, 2016 10:49 am

George писал(а):
valun писал(а):Object-associate: 1538


В базе есть объект с таким номером?

FOR EACH _StorageObject WHERE _StorageObject._Object-Type = 3 NO-LOCK:
for each _File where _file-num = _Object-associate no-lock:
disp _file.

Результат:
pm_list 1538
!,*
!,*
!,*
!,*

Если заглянуть в df данной табл, то она лежит в 12-ой области, а удалить мы хотим 10-ю.
Типы полей character, int64, date, + 3 индекса в 15-ой области.

Нашли с таким же номером (1538) объект в _Index по индексу нашли таблицу и на копии базы удалили обе таблицы через DD.
В _StorageObject запись осталась.

Сделал dump 2-м таблицам - табл. с id 1538 pm_list и вторая таблица с индексом id = 1538, удалил таблицы, загрузил df и данные. В StorageObject запись осталась.

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

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

Сообщение George » Пт сен 30, 2016 7:28 pm

Не понял зачем надо было удалять эти объекты. Я лишь предлагал найти "бывшего хозяина" записи в _StorageObject в целях восстановления предыстории текущего состояния. Сейчас эта запись, очевидно, потеряла всякую связь со своим родителем. Саму запись в _StorageObject можно удалить 6-ым пунктом утилиты idxfix.

_Object-associate-type
If the Object is a Table (_Object-Type = 1) this is a 2. If the Object is an Index (_Object-Type=2) then this is a 1.

_Object-associate
For Tables, this is the Object# of the primary Index for this Table. For Indexes, this is the Object# of the parent Table.

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Пн окт 03, 2016 10:12 am

George писал(а):Не понял зачем надо было удалять эти объекты. Я лишь предлагал найти "бывшего хозяина" записи в _StorageObject в целях восстановления предыстории текущего состояния. Сейчас эта запись, очевидно, потеряла всякую связь со своим родителем. Саму запись в _StorageObject можно удалить 6-ым пунктом утилиты idxfix.

_Object-associate-type
If the Object is a Table (_Object-Type = 1) this is a 2. If the Object is an Index (_Object-Type=2) then this is a 1.

_Object-associate
For Tables, this is the Object# of the primary Index for this Table. For Indexes, this is the Object# of the parent Table.



Я это все проделал на копии базы, поэтому все еще можно попробовать найти бывшего хохяина записи. Хотя если эту запись можно удалить и это позволит удалить область, то этот вариант мне нравится больше.

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Вт окт 04, 2016 6:50 pm

Я все правильно делаю ?


Index Fix Utility

1. Scan records for missing index entries.
2. Scan indexes for invalid index entries.
3. Both 1 and 2 above.
4. Cross-reference check of multiple indexes for a table.
5. Build indexes from existing indexes.
6. Delete one record and it's index entries.
7. Quit.

Enter selection:
6
Type the recid to delete.
3
Type the area for the recid(s).
10

Is this correct? (y/n)
y

Could not find the record in area 10

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

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

Сообщение George » Ср окт 05, 2016 3:22 am

valun писал(а):Я все правильно делаю ?


А что известно о записи в _StorageObject?

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Ср окт 05, 2016 9:54 am

George писал(а):
valun писал(а):Я все правильно делаю ?


А что известно о записи в _StorageObject?


Только это

Object-type: 3
Object-number: 1
Object-associate: 1
Object-associate: 1538
Area-number: 10
Object-attrib: 8
Object-system: 0
Create-Limit: 150
Toss-Limit: 300

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

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

Сообщение George » Ср окт 05, 2016 12:29 pm

Чему равен recid(_StorageObject) ?

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Ср окт 05, 2016 12:31 pm

George писал(а):Чему равен recid(_StorageObject) ?



16512

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

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

Сообщение George » Ср окт 05, 2016 6:30 pm

Тогда 16512 и надо указать в качестве recid при удалении записи утилитой idxfix.
А в качестве области надо указать 6.

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Ср окт 05, 2016 6:36 pm

George писал(а):Тогда 16512 и надо указать в качестве recid при удалении записи утилитой idxfix.
А в качестве области надо указать 6.



Так и сделал

Enter selection:
6
Type the recid to delete.
16512
Type the area for the recid(s).
6

Is this correct? (y/n)
y


Index fix completed successfully. (4332)

Но, запустив

FOR EACH _StorageObject WHERE _StorageObject._Object-Type = 3 NO-LOCK:
disp _StorageObject

получил ту же строчку
Object-type: 3
Object-number: 1
Object-associate: 1
Object-associate: 1538
Area-number: 10
Object-attrib: 8
Object-system: 0
Create-Limit: 150
Toss-Limit: 300

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

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

Сообщение George » Ср окт 05, 2016 8:12 pm

Для эксперимента я удалил нормальную запись в таблице: _StorageObject

Is this correct? (y/n)
y
Record 4464 has been deleted from the database. (5190)
Index fix completed successfully. (4332)

Сообщение 5190 подтверждает что была удалена запись с recid 4464.

Такого сообщения нет для recid 16512. Значит по этому адресу записи нет. FOR EACH _StorageObject находит запись. Значит у этой записи другой recid.

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Чт окт 06, 2016 9:45 am

George писал(а):Для эксперимента я удалил нормальную запись в таблице: _StorageObject

Is this correct? (y/n)
y
Record 4464 has been deleted from the database. (5190)
Index fix completed successfully. (4332)

Сообщение 5190 подтверждает что была удалена запись с recid 4464.

Такого сообщения нет для recid 16512. Значит по этому адресу записи нет. FOR EACH _StorageObject находит запись. Значит у этой записи другой recid.



FOR EACH _StorageObject WHERE _StorageObject._Object-Type = 3 NO-LOCK:
disp recid(_StorageObject)

результат:

┌───────┐
│ 16512 │
│ │

могу картинку приложить

Старожил
Сообщения: 43
Зарегистрирован: Сб авг 04, 2007 1:48 pm

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

Сообщение valun » Чт окт 06, 2016 10:24 am

Взял любой другой recid - 9649

Type the recid to delete.
9649
Type the area for the recid(s).
6

Is this correct? (y/n)
y


Index fix completed successfully. (4332)

Может все дело в области из которой удаляется запись ?
Потому что если пробовать удалить запись повторно, то не ругается что записи такой нет....
Вобщем если пишешь любой recid и пробуешь его удалить из 6-ой области то никогда никакой ругани не будет.

Пред.След.

Вернуться в PROGRESS - АДМИНИСТРИРОВАНИЕ БАЗ ДАННЫХ

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8