powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Частичное восстановление БД
10 сообщений из 10, страница 1 из 1
Частичное восстановление БД
    #39333608
gercog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Никак не могу решить следующую проблему:
1. RedHat, Oracle 11g, БД Oracle на несколько терабайт в режиме NoArhiveLog.
2. Почти всё место в БД несколько таблиц, они вынесены в отдельные пространства (tablespace), но именно они и не важны.
3. Нужно сделать копию этой БД на другом компьютере, но там значительно меньший объём диска.


Пытаюсь делать следующим образом:
1. Останавливаю БД.
2. Копирую системные разделы (system01.dbf, sysaux01.dbf, undotbs01.dbf, users01.dbf) и основной раздел БД (tm.dbf) на другой компьютер.
3. Выполняю скрипт создания управляющего файла (в разделе DATAFILE предварительно удаляю не перенесенные разделы, оставляю только вышеописанные).
4. Выполняю alter database open resetlogs и создаю временное пространство.
5. Запускаю БД.

В итоге получаю БД с нужными данными. Но никак не получается заставить базу забыть про неперенесенные разделы:
1. в представлении v$datafile они отображаются со статусом RECOVER.
2. команда "alter database datafile N offline drop" выполняется успешно, но "вхолостую".

Может быть можно сделать усеченную копию как-то по другому?
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39333636
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
drop tablespace ?
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39333660
gercog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

На это он говорит:
ORA-01549 раздел не пуст, используйте опцию INCLUDING CONTENTS.

Если сделать как он хочет, то:
ORA-22868: таблица с LOB содержит сегменты в различных разделах

Код: sql
1.
SELECT L.TABLE_NAME, L.COLUMN_NAME, L.INDEX_NAME, s.tablespace_name FROM DBA_LOBS L, DBA_SEGMENTS S WHERE (S.SEGMENT_NAME=L.SEGMENT_NAME) AND (S.TABLESPACE_NAME like 'TM_%') 


Выдаёт 5 таблиц с 8-ю полями.
Код: sql
1.
drop table TM.object;



Удалить данные поля также как и сами таблицы не получается.
При попытке удаления поля:
ORA-00376: в данный момент файл 168 не может быть прочитан

При попытке удаления таблицы:
ORA-02449: уникальный/первичный ключ в таблице, на которую ссылаются по внешнему ключу
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39333671
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут как раз и порылась собака -- в многосегментных объектах (partiion, lob, iot-overflow), где часть сегментов расположена в удаленых (физически), а часть в живых ТП,датафайлах
В этом случае можно попробовать EXCHANGE PARTITION с пустой фиктивной секцией (или таблицей), а затем уже удалять (и объекты, оказавшиеся в живых ТП и "убитые" ТП с фиктивными объектами с кляузой INCLUDING CONTENTS)

PS. А ORA-02449 лечится прибиванием констрейнта
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39334334
gercog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Спасибо за подсказку! Пошёл по первому пути - расширение таблиц на фиктивные пространства при помощи Exchange partition.

Теперь следующая проблема - "ORA-14405: многосекционный индекс содержит секции из различных разделов". Индексы побороть пока не получается. Буду признателен за подсказку в какую сторону "копать".
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39334344
gercog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Удалить индекс из пространства также не получается:

Имена индексов получаю запросом:
Код: sql
1.
select partition_name, tablespace_name, index_name from dba_ind_partitions where tablespace_name like 'TM_2016_10_04%'



Код: sql
1.
ALTER INDEX TM.IX_TEXT_OBJECT_ID REBUILD PARTITION PART_2016_10


выполняется успешно.

Код: sql
1.
ALTER INDEX TM.IX_TEXT_OBJECT_ID DROP PARTITION PART_2016_10_04


возвращает ORA-14076: submitted alter index partition/subpartition operation is not valid
for local partitioned index
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39334403
gercog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сами индексы определены примерно так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE INDEX TM.IX_OTO_TEXT_OBJECT_ID ON TM.OBJECT_TO_TEXT_OBJECT" ("TEXT_OBJECT_ID", "NORMAL_FORM") 
PCTFREE 10 INITRANS 2 MAXTRANS 165 
STORAGE(
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) LOCAL
 (PARTITION "PART_2016_10_04" 
  PCTFREE 10 INITRANS 2 MAXTRANS 165 LOGGING 
  STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TM_2016_10_04" , 
 PARTITION "PART_2016_10_05" 
  PCTFREE 10 INITRANS 2 MAXTRANS 165 LOGGING 
  STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TM_2016_10_05" , 



То есть индексы локальные, но многосекционные.
Согласно документации для локальных индексов вроде бы доступно только alter index... modify partition...
Как в этом случае можно убрать из индекса определенный tablespace и partition?
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39334409
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну убей индекс целиком
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39334558
gercog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,

Индексы прибил, после чего удалось удалить один из тейблспейсов.
Но как выясняется рано радовался - с другими тэйблспейсами ничего сделать не выходит.
На команду
[src][/SRC]
вновь получаю ORA-00376 в данный момент файл XX не может быть прочитан.

В чём разница между этими тейблспейсами пока не понял. Должны быть одинаковыми - каждый день создаётся новый.
...
Рейтинг: 0 / 0
Частичное восстановление БД
    #39334889
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты информацию выдавай по детальней
Какая команда не прошла, какие сегменты (их типы и к чему относятся) находятся в ТП, которые ты хочешь прибить и т.д.
А то хрустальный шар замутнен
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Частичное восстановление БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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