Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 insert into table select * from table@DB2  [new]
Shredder2003
Member

Откуда: деревня Ильбяково Азнакаевского района РТ
Сообщений: 460
итак, есть несколько таблиц, которые хотелось бы "копировать" по ночам в другую базу.
одна табличка, полмиллиона записей, заливалась 2 часа.
подумал маленько и сделал так:
1. таблица, делаем TRUNCATE
2. таблица, делаем NOLOGGING
3. выбираю все индексы на таблицу, делаю NOLOGGING и UNUSABLE
4. заливаю данные
insert into table 
select * from table@DB2
5. возвращаю свойства таблиц и индексов

ругается на
oracle

ORA-01502: индекс 'BAANDB.TTIBOM010020$IDX1' или часть такого индекса находится в неиспользуемом состоянии


я так понимаю, нужно drop-ать индексы (?), а после заливки заново создавать.
Так вот вопрос.
Где удобнее брать скрипты по созданию индексов (существующих в БД), где они хранятся?
23 июл 08, 14:22    [5974524]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
big bug
Member

Откуда:
Сообщений: 110
автор
Где удобнее брать скрипты по созданию индексов (существующих в БД), где они хранятся?



 select dbms_metadata.get_ddl('INDEX','INDEX_NAME','OWNER') from dual;
23 июл 08, 14:28    [5974579]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Shredder2003
Member

Откуда: деревня Ильбяково Азнакаевского района РТ
Сообщений: 460
замечательно!
а если используется 8i ?
23 июл 08, 14:34    [5974641]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Elic
Member

Откуда:
Сообщений: 29979
Shredder2003
а если используется 8i ?
select * from dict where table_name like '%IND%';
23 июл 08, 14:42    [5974708]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
Shredder2003
я так понимаю, нужно drop-ать индексы (?), а после заливки заново создавать.
Нет. Ты забыл самую главную вещь, insert /*+ append */ into table. После этого просто делаешь индексам rebuild.
23 июл 08, 14:55    [5974800]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Shredder2003
Member

Откуда: деревня Ильбяково Азнакаевского района РТ
Сообщений: 460
wurdu
Shredder2003
я так понимаю, нужно drop-ать индексы (?), а после заливки заново создавать.
Нет. Ты забыл самую главную вещь, insert /*+ append */ into table. После этого просто делаешь индексам rebuild.


ORA-26026: уникальный индекс . не может использоваться

можно побороть?
23 июл 08, 15:13    [5974955]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Shredder2003
Member

Откуда: деревня Ильбяково Азнакаевского района РТ
Сообщений: 460
Elic
Shredder2003
а если используется 8i ?
select * from dict where table_name like '%IND%';


Elic, не понял юмора.
23 июл 08, 15:18    [5975008]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Elic
Member

Откуда:
Сообщений: 29979
Shredder2003
Elic, не понял юмора.
Словарём не умеешь пользоваться?
23 июл 08, 15:37    [5975186]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
wurdu
Member

Откуда: Владивосток
Сообщений: 4441
С уникальными индексами действительно проблема. Либо дропать, либо не переводить в unusable.
23 июл 08, 15:38    [5975189]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Shredder2003
Member

Откуда: деревня Ильбяково Азнакаевского района РТ
Сообщений: 460
Elic
Словарём не умеешь пользоваться?


т.е. предлагаешь воссоздавать скрипт по созданию индекса на основе анализа представлений типа DBA_IND_COLUMNS, DBA_INDEXES etc?
23 июл 08, 16:15    [5975484]     Ответить | Цитировать Сообщить модератору
 Re: insert into table select * from table@DB2  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18483
Найти индексы в состоянии UNUSABLE и тупо сделать им REBUILD
24 июл 08, 02:46    [5977545]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить