Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 как ускорить exp/imp?  [new]
croacker
Guest
Предстоит совершить экпорт и импорт большого объема данных из базы 10.2 в 10.2, на тестовых базах это заняло несколько часов на каждую операцию. Может есть какие-то способы ускорить операции exp/imp?
5 июн 08, 09:41    [5762260]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Kraft_o
Member

Откуда:
Сообщений: 87
Использовать expdp/impdp
5 июн 08, 09:43    [5762265]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
croacker
Guest
А за счет чего эти утилиты быстрее?

И все-таки, есть какие-либо способы ускорить обычный exp/imp?
5 июн 08, 09:49    [5762285]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Незнайка на Луне
Member

Откуда:
Сообщений: 78
За счёт того что это более новые утилиты. Exp и Imp - старые утилиты , которые пришли из предыдущих версий. ExpDp и ImpDp - более новые , которые появились, если не ошибаюсь начиная с 10ки.... Эти утилиты более быстрые

Единственно они не совместимы между собой , т.е. если сделаешь сначала экспорт с помощью Exp , то потом сделать импорт с помощью ImpDp уже не выйдет ....


А вообще если , говоря о Exp/Imp - есть способы ускорить процесс в форуме об этом говорилось очень много. Посмотрите по поиску, думаю что вы найдёте достаточно много информации на этот счёт.

если кратко , то как вариант ускорения импорта можно сделать так :
(создавать таблицы и заливать данные без индексов и с отключенными констрэйнтами, после этого уже создать индексы, после включить констрэйнты)
5 июн 08, 10:01    [5762323]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
croacker
Guest
Мне нужно сделать полный экспорт/импорт базы, так что отключать констрейнты и удалять индексы тут не особо подойдет.

А может помочь ускорить эти процессы задание большего буфера (BUFFER)?

А data pump утилиты подходят для полного экспорта/импорта всей базы?
Осуществляемого например для смены версии базы?
Это новые инструменты - а они стабильно работают? Обычно новые утилиты в Оракле могут быть сырыми и приходить в стабильное состояние только в следующей версии СУБД.
5 июн 08, 11:18    [5762799]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Попрошайка
Guest
Сними статспак минут за 20-30 во время экспорта/импорта и давай смотреть, что ему мешает работать быстрее.
5 июн 08, 11:23    [5762847]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
sadsad_at_tomsk
Member

Откуда:
Сообщений: 113
croacker
А за счет чего эти утилиты быстрее?

И все-таки, есть какие-либо способы ускорить обычный exp/imp?

За счет использования прямой вставки в блоки.
5 июн 08, 11:47    [5763037]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
lamer2008
Guest
У датапампа есть опция PARALLEL, с её помощью можно добиться ускорения процесса, если конечно параллельное чтение/запись актуально для вашей базы. А вообще личное моё мнение - датапамп хорош, много полезных фич, но как всё новое - сыроват ещё, лично я напарывался на баги, что было для меня очень не приятно, (имхо работаю я с большими объёмами данных), т.к. это повлекло не малую потерю времени... Вывод для себя - юзаю как оригинальный exp/imp, так и expdp/impdp, решаю по ситуации.

З.ы.: оригинальный дамп легко расковыривается руками =)))
5 июн 08, 12:05    [5763280]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Иван Помидоров
Member

Откуда: альянс
Сообщений: 1108
Незнайка на Луне
За счёт того что это более новые утилиты. Exp и Imp - старые утилиты , которые пришли из предыдущих версий. ExpDp и ImpDp - более новые , которые появились, если не ошибаюсь начиная с 10ки.... Эти утилиты более быстрые


Зачот. Вот бы все так легко объяснялось....
5 июн 08, 12:48    [5763849]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
croacker
Guest
lamer2008
датапамп хорош, много полезных фич, но как всё новое - сыроват ещё, лично я напарывался на баги, что было для меня очень не приятно, (имхо работаю я с большими объёмами данных), т.к. это повлекло не малую потерю времени...
О чем и речь, планируется перенос достаточного большой базы данных целиком, и рисковать здесь очень нежелательно.

А какие баги были, и в какой версии?
5 июн 08, 12:48    [5763854]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Proteus
Member

Откуда:
Сообщений: 1348
если собираетесь переносить всю базу целиком то может имеет смысл подумать о клонировании ( перенос простым копированием) ?
5 июн 08, 12:58    [5763958]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
.zverka
Member

Откуда:
Сообщений: 94
При переходе с одной версии на другую - следует посмотреть Note:132904.1.

Expdp/impdp обеспечивают всю функциональность обычного exp/imp и дают новые возможности:
Detach from and reattach to long-running jobs
5 июн 08, 13:08    [5764076]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7131
croacker
Предстоит совершить экпорт и импорт большого объема данных ...


автор
Мне нужно сделать полный экспорт/импорт базы, так что отключать констрейнты и удалять индексы тут не особо подойдет.

А может помочь ускорить эти процессы задание большего буфера (BUFFER)?

А data pump утилиты подходят для полного экспорта/импорта всей базы?
Осуществляемого например для смены версии базы?
Это новые инструменты - а они стабильно работают? Обычно новые утилиты в Оракле могут быть сырыми и приходить в стабильное состояние только в следующей версии СУБД.


Так все же полоный export или только Большой обьем данных?
5 июн 08, 13:10    [5764096]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
.zverka
Member

Откуда:
Сообщений: 94
ой не дописала :)

Restart Data Pump jobs
Fine-grained object selection
Parallel execution (Enterprise Edition only)
и т.д всё это есть в документации...

при работе обращение идет через пакет DBMS_DATAPUMP, что позволяет ускорить загрузку и выгрузку данных.
5 июн 08, 13:11    [5764101]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7131
пардон уехало раньше...
Продолжаю...
BUFFER нужен больше
ОТключение constraints и index вполне реально и при полном exports , правда при этом нужно будет сначало залить схему без данных, а потом перестроить

Еще вариант переносимые tablespaces (TTS), возможность использования все зависит от наличия некоторых неподдерживаемых типов данных

---------------------
Встретил как то раз Волк девочку Машу и умер...
...
soap: vlejnin mail ру
5 июн 08, 13:16    [5764144]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
lamer2008
Guest
croacker
lamer2008
датапамп хорош, много полезных фич, но как всё новое - сыроват ещё, лично я напарывался на баги, что было для меня очень не приятно, (имхо работаю я с большими объёмами данных), т.к. это повлекло не малую потерю времени...
О чем и речь, планируется перенос достаточного большой базы данных целиком, и рисковать здесь очень нежелательно.

А какие баги были, и в какой версии?


10.2.0.3

К примеру на больших таблицах с собраной статистикой (большой статистикой =)) а не 2-3% ), экспорт падает, приходилось делать EXCLUDE статистике, следовательно после импорта надо пересобирать по чесному, а на больших объёмах это дорогая (по времени) операция.
Кстати ещё один факт (из моих личных наблюдений) большие по структуре таблицы (имеется в виду партиции+сабпартиции) общим колличеством 30000-40000 сегментов - оригинальный exp/imp переваривает быстрее датапампа.
Вобщем опять же скажу - что всё это индивидуально и применяется в разных базах по-разному...
5 июн 08, 13:16    [5764146]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
c1wer3
Member

Откуда:
Сообщений: 17
Можно поднять клон базы на новой платформе и обновить словарь данных.
5 июн 08, 13:19    [5764173]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
serge.ru
Member

Откуда: Новосибирск
Сообщений: 12
А возможно ли паралельно писать в два файла например, лежащих на разных дисковых массивах
c помощью exp/imp?
5 июн 08, 14:02    [5764573]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
croacker
Guest
Да, необходим полный экспорт и импорт базы, база - порядочного объема, так что никакого противоречия нет.

Партицирования нет.
Клонирование и переносимые табл. пр-ва не подойдут.

Если отключать констрейны и удалять индексы, то нужно сначала написать соответсвующие скрипты для выключения и включения, удаления, создания. Таблиц несколько сотен. А последующее создание индексов займет порядочно времени.

Насчет буфера - каким образом он может ускорить экспорт? Все равно же данные потом пишуться на диск. И какой размер оптимальный, например для экспорта базы в 100 Гб?
5 июн 08, 15:33    [5765414]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
lamer2008
Guest
croacker
Да, необходим полный экспорт и импорт базы, база - порядочного объема, так что никакого противоречия нет.

Партицирования нет.
Клонирование и переносимые табл. пр-ва не подойдут.

Если отключать констрейны и удалять индексы, то нужно сначала написать соответсвующие скрипты для выключения и включения, удаления, создания. Таблиц несколько сотен. А последующее создание индексов займет порядочно времени.

Насчет буфера - каким образом он может ускорить экспорт? Все равно же данные потом пишуться на диск. И какой размер оптимальный, например для экспорта базы в 100 Гб?


Ну логика стандартная - чем больше буфер, тем меньше операций чтения/записи будет порисходить, хотя тут надо учитывать вашу операционку, фобщем как написано в доке этот параметр определяет макс. кол-во строк которые могут быть прочитаны за раз =)))... Как-то так? А вообще 100 гигов это не тот объём на котором можно пытаться выиграть в скорости играясь размером буфера.
За-то - опять же из личного опыта - по умолчанию буфер определяется операционкой, дамп делался, буфер-дефаулт, тут же на этом хосте, импорт в абсолютно аналогичную базу (буфер-тоже дефаулт) сыпятся варнинги - мол маленький буфер, лечится, как вы догодались, увеличением буфера =)))
5 июн 08, 15:51    [5765594]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
croacker
Guest
lamer2008
Меньше операций чтения/записи будет порисходить
в смысле выигрыш в скорости будет из-за того, что запись на диск будет не через каждую операцию чтения, а после накопления данных в буфере, скопом?

lamer2008
этот параметр определяет макс. кол-во строк которые могут быть прочитаны за раз
В каком смысле за раз? Имеется ввиду наверно перед операцией записи на диск?

lamer2008
А вообще 100 гигов это не тот объём на котором можно пытаться выиграть в скорости играясь размером буфера.
Почему?

Так какой порядок размера буфера даст увеличение скорости exp/imp - измеряемый в Кб, Мб, или в Гб?
5 июн 08, 16:53    [5766185]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
Kraft_o
Member

Откуда:
Сообщений: 87
А у меня при изменении streams_pool_size c 0 до 500 Мб скорость работы expdp увеличилась примерно 2-2,5 раза. Полный экспорт базы размером 90 гигов делался за 40 минут.
5 июн 08, 19:53    [5767170]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
zhmur
Member

Откуда: Severodvinsk
Сообщений: 362
Kraft_o
А у меня при изменении streams_pool_size c 0 до 500 Мб скорость работы expdp увеличилась примерно 2-2,5 раза. Полный экспорт базы размером 90 гигов делался за 40 минут.

Это верно только для impdp и expdp которые собственно используют streams.
5 июн 08, 20:57    [5767324]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
.zverka
Member

Откуда:
Сообщений: 94
И все-таки как еще можно ускорить exp\imp?

1. Режим прямого пути DIRECT=Y (есть ограничения для LOB, BFILE...)
2. Поиграть с размером буффера BUFFER
3. В крайнем случае использовать INCTYPE (возможность сделать полный экспорт и применить инкрементальный или кумулятивный экспорт).

А как еще?

если кратко , то как вариант ускорения импорта можно сделать так :
(создавать таблицы и заливать данные без индексов и с отключенными констрэйнтами, после этого уже создать индексы, после включить констрэйнты)

Но ведь импорт сам предполагает такую последовательность
1. New tables are created;
2. Data is imported;
3. Indexes are built;
4. Triggers are imported;
5. Integrity constraints are enabled;
6. Any bitmap, functional, domain indexes are built.
6 июн 08, 02:03    [5767930]     Ответить | Цитировать Сообщить модератору
 Re: как ускорить exp/imp?  [new]
ЫЫЫ
Guest
_disable_logging=true
6 июн 08, 06:52    [5767994]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить