Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Bens Участник со стажем
Вступление в Клуб: 19.04.2013
|
Вт Апр 23, 2013 08:14  Удаление в PICK |
|
Полезность: Нет оценки
|
Здравствуйте.
Удалил в pick один давно не используемый справочник с сохранением удаляемого объекта в mdb. После чего снова накатил его из этого mdb. По логике (моей) в справочнике данные должны были исчезнуть. Облазил mdb-файл - ничего похожего на данные в нем не нашел. Получает удаляя в pick справочник мы удаляем только структуру данных, а сами данные мусором остаются в базе? Я правильно понимаю? Поправьте меня или поддтвердите |
|
|
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Апр 23, 2013 08:23   |
|
Полезность: Нет оценки
|
Вполне возможно, скорее всего Оракл восстановил вашу таблицу из recycle bin. Надо настройки смотреть его. |
|
|
Bens Участник со стажем
Вступление в Клуб: 19.04.2013
|
Вт Апр 23, 2013 08:49   |
|
Полезность: Нет оценки
|
Откуда Оракл знает что мы накатываем ранее удаленную таблицу? Recycle bin сам как то очищается или DBA его должен "пнуть"?
Получается удаляя структуру данных надо предварительно очистить его от данных чтоб они не лежали "мертвым грузом"? |
|
|
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Апр 23, 2013 09:11   |
|
Полезность: Нет оценки
|
Ну, как, как. Это ещё на FAT32 было, файлы не удаляются физически, а просто сносится метка, если место никто не занял, то спокойно восстанавливается метка и файл. Вы с админами вашими говорили Оракловыми? |
|
|
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Вт Апр 23, 2013 12:22   |
|
Полезность: Нет оценки
|
По-моему, таблицы остаются в оракле даже если удалить структуры из модели данных платформы развития (на всякий случай). При обновлении ТЯ есть скрипт, который удаляет такие таблицы. |
|
|
alex_orb Участник со стажем
Вступление в Клуб: 28.09.2007
|
Чт Апр 25, 2013 07:43   |
|
Полезность: Нет оценки
|
При удалении ТБП средствами АРМ Администратор Проекта или АРМ словаря данных удаляются исключительно их описания в соответствующих таблицах ТЯ сами таблицы а так же записи родительских таблиц если удаляемый тип является дочерним ассоциированные с удаляемым ТБП не удаляются. Удалить из можно только напрямую средствами ORACLE. |
|
|
Andry Участник - экстремал
Вступление в Клуб: 14.01.2009
|
Чт Апр 25, 2013 08:14   |
|
Полезность: Нет оценки
|
alex_orb пишет: | При удалении ТБП средствами АРМ Администратор Проекта или АРМ словаря данных удаляются исключительно их описания в соответствующих таблицах ТЯ сами таблицы а так же записи родительских таблиц если удаляемый тип является дочерним ассоциированные с удаляемым ТБП не удаляются. Удалить из можно только напрямую средствами ORACLE. |
Как найти все такие таблицы, которые не удалились из Oracle и уже не используются? |
|
|
lexus Профи
Вступление в Клуб: 28.09.2007
|
Чт Апр 25, 2013 08:18   |
|
Полезность: Нет оценки
|
Andry пишет: |
Как найти все такие таблицы, которые не удалились из Oracle и уже не используются? |
В апгрейде ТЯ был скрипт для этого. Название не помню. Поищите там. |
|
|
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Чт Апр 25, 2013 09:42   |
|
Полезность: Нет оценки
|
Скорее всего ваш случай:
Удаление таблиц
Удаление таблицы выполняется командой DROP TABLE имя_таблицы.
Сведения о таблице СУБД хранит в двух отдельных местах БД: в справочной части БД (в словаре-справочнике) — описание и в виде самостоятельной структуры (сегмента) в файлах табличного пространства — содержимое, данные.
До версии 10 единственным способом удаления по команде DROP TABLE было удаление из словаря-справочника сведений о таблице и удаление сегмента с данными из "рабочей части" БД. С версии 10 возможен (и действует автоматически по умолчанию) второй вариант, когда по команде DROP TABLE описание таблицы и сегмент с ее данными получают новое системное имя, после чего таблица под прежним именем перестает существовать, но фактически какое-то время может быть еще восстановлена. Этот второй способ удаления таблицы воплощает идею "мусорной корзины".
Мусорная корзина
С версии 10 смысл команды DROP изменился. В основном случае после нее и описание, и данные таблицы продолжают храниться на своих местах, но под новыми, присвоенными системой автоматически именами. Для пользователя таблица, как и прежде, пропала, однако на деле все, что нужно для ее восстановления, если такая необходимость возникнет, продолжает храниться в БД. Тем самым для таблиц реализована техника мусорной корзины (recycle bin), хорошо известная по файловым системам.
Список содержимого мусорной корзины можно получить из системной таблицы USER_RECYCLEBIN (публичный синоним — RECYCLEBIN):
SELECT object_name, original_name, droptime FROM user_recyclebin;
Восстановить таблицу по исходному имени (поле ORIGINAL_NAME из USER_RECYCLEBIN) можно, например, так:
FLASHBACK TABLE dept_copy2 TO BEFORE DROP;
Восстанавливается не все и не точно. У восстановленной подобным образом таблицы будут отсутствовать, возможно, имевшиеся до удаления ограничения целостности, а индексы, хотя и восстановятся, но с системными именами.
Для удаления из мусорной корзины нужно использовать команду PURGE, например:
PURGE TABLE dept_copy3;
PURGE RECYCLEBIN;
Чтобы таблица удалялись сразу безвозвратно, следует использовать конструкцию PURGE в команде DROP, например:
DROP TABLE dept_copy3 PURGE; |
|
|
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Апр 25, 2013 10:14   |
|
Полезность: Нет оценки
|
lexus пишет: | Andry пишет: |
Как найти все такие таблицы, которые не удалились из Oracle и уже не используются? |
В апгрейде ТЯ был скрипт для этого. Название не помню. Поищите там. |
может этот
c_clear.sql - удаление лишних интерфейсных пакетов
классов, операций, очистка таблицы sources; |
|
|
lexus Профи
Вступление в Клуб: 28.09.2007
|
Чт Апр 25, 2013 11:32   |
|
Полезность: Нет оценки
|
prog пишет: | lexus пишет: | Andry пишет: |
Как найти все такие таблицы, которые не удалились из Oracle и уже не используются? |
В апгрейде ТЯ был скрипт для этого. Название не помню. Поищите там. |
может этот
c_clear.sql - удаление лишних интерфейсных пакетов
классов, операций, очистка таблицы sources; |
Не совсем. Там интерфейсные пакеты неиспользуемые. А сами таблицы вроде здесь:
\Compile\u_clear.sql |
|
|
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Чт Апр 25, 2013 11:39   |
|
Полезность: Нет оценки
|
Andry пишет: | alex_orb пишет: | При удалении ТБП средствами АРМ Администратор Проекта или АРМ словаря данных удаляются исключительно их описания в соответствующих таблицах ТЯ сами таблицы а так же записи родительских таблиц если удаляемый тип является дочерним ассоциированные с удаляемым ТБП не удаляются. Удалить из можно только напрямую средствами ORACLE. |
Как найти все такие таблицы, которые не удалились из Oracle и уже не используются? |
Не забудьте, что, хотя сами таблицы уже не используются, есть код, который без них сломается.
Это, к примеру, функция поиска обратных ссылок.
Там список ТБП получается с помощью макроса, поэтому при удалении элемента из модели эти операции не перекомпилируются, и в pl/sql-коде остаётся упоминание о таблицах удалённых справочников.
Удалите таблицу - пакет станет невалидным, поиск обратных ссылок сломается.
Так что будьте осторожны. |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|