Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Привет всем!
Пытаюсь перенести дампом схему на другой сервер, но проблема в том, что при impdp табличные пространства становятся намного больше, чем в исходной базе. Почему так?

Так делаю экспорт и импорт:

Выгрузка данных:
expdp xxx/xxx@xxx directory=my_exp_dir ENCRYPTION_PASSWORD="xxx" DUMPFILE=test.expdp logfile=test_exp.log PARALLEL=4 COMPRESSION=all CONTENT=all schemas=test

Загрузка данных
impdp xxx/xxx@xxx TABLE_EXISTS_ACTION=replace DIRECTORY=my_exp_dir DUMPFILE=test.expdp ENCRYPTION_PASSWORD="xxx" PARALLEL=8 logfile=imp.log
23 янв 15, 10:06    [17157889]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
alukardD
Member

Откуда: USSR
Сообщений: 3369
А используемое место в ТС? На исходном и конечном сервере тоже разное?
+
select df.TABLESPACE_NAME as "TableSpace",(df.BYTES/1024)/1024 as "File size, Mb",round((du.USED_SPACE/1024)/1024,2) as "Tablespace Used size, Mb",df.AUTOEXTENSIBLE
from dba_data_files df,dba_tablespace_usage_metrics du
where df.TABLESPACE_NAME=du.TABLESPACE_NAME
23 янв 15, 10:32    [17158017]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Разное!!!!
23 янв 15, 10:49    [17158126]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Я где-то на зарубежном форуме один подобный вопрос нашел. Якобы из-за того, что дамп сжат, то места надо больше в табличном пространстве для распаковки. Но нигде инфы об этом не нашел. Я не могу подсчитать сколько на сервере надо места. Все время не хватает.
23 янв 15, 10:50    [17158133]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
alukardD
Member

Откуда: USSR
Сообщений: 3369
sergeqwe
Разное!!!!

Во всех ТС-ах? Где больше? где меньше?
Посмотри какие таблицы выросли
+
SELECT owner, segment_name,tablespace_name,
ROUND(SUM (BYTES) / 1024) "SIZE (KB)",
SUM (blocks) blocks, COUNT (*) extents
FROM dba_extents t
WHERE t.tablespace_name='USERS'
and t.segment_type='TABLE'
GROUP BY owner, segment_name,tablespace_name
23 янв 15, 10:53    [17158156]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Разницу мне уже точно не посмотреть. Основная база выросла. На тестовой места не хватило на диске и весь импорт не прошел. Может, просто намекнете куда копать? Может, частями импортировать? Т.К., например, при импорте очень сильно растет TEMP и тоже жрет место на диске. А после импорта TEMP очищается.
23 янв 15, 11:20    [17158373]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
sergeqwe
Т.К., например, при импорте очень сильно растет TEMP и тоже жрет место на диске.
А ты думал, что включение констрейнтов типа FOREIGN KEY
выполняется какими-то особыми селектами, которые ТЕМП не жрут? :)
23 янв 15, 11:45    [17158590]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Да. Почти все таблицы увеличиваются в 2-3 раза. Может, какие-то логи еще записываются? Почему 1 к 1 не идет дамп? Никто не сталкивался с таким?
23 янв 15, 11:51    [17158625]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
alukardD
sergeqwe
Разное!!!!

Во всех ТС-ах? Где больше? где меньше?
Посмотри какие таблицы выросли
+
SELECT owner, segment_name,tablespace_name,
ROUND(SUM (BYTES) / 1024) "SIZE (KB)",
SUM (blocks) blocks, COUNT (*) extents
FROM dba_extents t
WHERE t.tablespace_name='USERS'
and t.segment_type='TABLE'
GROUP BY owner, segment_name,tablespace_name


Пусто
23 янв 15, 12:30    [17158897]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
alukardD
Member

Откуда: USSR
Сообщений: 3369
sergeqwe
alukardD
пропущено...

Во всех ТС-ах? Где больше? где меньше?
Посмотри какие таблицы выросли
+
SELECT owner, segment_name,tablespace_name,
ROUND(SUM (BYTES) / 1024) "SIZE (KB)",
SUM (blocks) blocks, COUNT (*) extents
FROM dba_extents t
WHERE t.tablespace_name='USERS'
and t.segment_type='TABLE'
GROUP BY owner, segment_name,tablespace_name


Пусто

Ну измени WHERE t.tablespace_name='USERS' на название TS, которое у тебя есть
просто у меня 100% есть USERS...вот и написал...
23 янв 15, 12:43    [17158978]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
alukardD
sergeqwe
пропущено...


Пусто

Ну измени WHERE t.tablespace_name='USERS' на название TS, которое у тебя есть
просто у меня 100% есть USERS...вот и написал...


Изменил. Пусто. Есть результаты только на SYSAUX. Остальное все пусто
23 янв 15, 12:43    [17158987]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Изя Кацман
sergeqwe
Т.К., например, при импорте очень сильно растет TEMP и тоже жрет место на диске.
А ты думал, что включение констрейнтов типа FOREIGN KEY
выполняется какими-то особыми селектами, которые ТЕМП не жрут? :)
А для чего жрать темп при "включении констрейнтов типа FOREIGN KEY"?
23 янв 15, 12:51    [17159043]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
alukardD
Member

Откуда: USSR
Сообщений: 3369
sergeqwe
alukardD
пропущено...

Ну измени WHERE t.tablespace_name='USERS' на название TS, которое у тебя есть
просто у меня 100% есть USERS...вот и написал...


Изменил. Пусто. Есть результаты только на SYSAUX. Остальное все пусто

ХЗ если честно. Не должно быть такого. В SYSAUX есть, остальное пусто, включая SYSTEM...
ну вот так попробуй
+
SELECT owner, segment_name,tablespace_name,
ROUND(SUM (BYTES) / 1024) "SIZE (KB)",
SUM (blocks) blocks, COUNT (*) extents
FROM dba_extents t
WHERE t.segment_type='TABLE'
GROUP BY owner, segment_name,tablespace_name
23 янв 15, 12:52    [17159048]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Ну есть что-то. Но похоже, что все размеры одинаковые на обеих базах
23 янв 15, 12:57    [17159096]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Делать экспорт с DIRECT=Y пробовал?
23 янв 15, 13:02    [17159147]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Anton Demidov
Member

Откуда: Atlanta, GA
Сообщений: 1187
Как вариант
Исходная база - Enterprise Edition with table compression
Destination - что-то по-проще
23 янв 15, 18:18    [17161625]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
Вячеслав Любомудров
Изя Кацман
пропущено...
А ты думал, что включение констрейнтов типа FOREIGN KEY
выполняется какими-то особыми селектами, которые ТЕМП не жрут? :)
А для чего жрать темп при "включении констрейнтов типа FOREIGN KEY"?
Если таблицы большие, а памяти выделено недостаточно,
для выполнения HASH JOIN потребуется использовать TEMP

Имеем:
ALTER TABLE LINEITEM
ADD
  CONSTRAINT LINEITEM_ORDER_FK 
  FOREIGN KEY (L_ORDERKEY) 
  REFERENCES ORDERS (O_ORDERKEY)
  ENABLE NOVALIDATE;

Выполняю команду;
ALTER TABLE LINEITEM ENABLE VALIDATE CONSTRAINT LINEITEM_ORDER_FK;

Oracle отсутствие строк-инвалидов, не соответствующих констрейнту выполняет обычным селектом:
select /*+ all_rows ordered dynamic_sampling(2) */ A.rowid, :1, :2, :3 
from "LINEITEM" A , "ORDERS" B 
where( "A"."L_ORDERKEY" is not null) 
  and( "B"."O_ORDERKEY" (+)= "A"."L_ORDERKEY") 
  and( "B"."O_ORDERKEY" is null)

Ниже см. Скриновый шот SQL Monitor
На нём видно, что пожрали 24 ГБ ТЕМПа

К сообщению приложен файл. Размер - 59Kb
23 янв 15, 18:29    [17161667]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Nobody1111
Guest
sergeqwe
Я где-то на зарубежном форуме один подобный вопрос нашел. Якобы из-за того, что дамп сжат, то места надо больше в табличном пространстве для распаковки. Но нигде инфы об этом не нашел. Я не могу подсчитать сколько на сервере надо места. Все время не хватает.

Так сравниваем конечный результат с исходной базой или с дампом? C дампом тягаться не надо - он в любом случае меньше будет.

Если нет, размер блока, Edition одинаковые в исходой и конечной базах?
23 янв 15, 20:32    [17162004]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
Nobody1111
Guest
Да, а версии БД одинаковые?
23 янв 15, 20:35    [17162014]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
импортер
Guest
sergeqwe
Загрузка данных
impdp xxx/xxx@xxx TABLE_EXISTS_ACTION=replace DIRECTORY=my_exp_dir DUMPFILE=test.expdp ENCRYPTION_PASSWORD="xxx" PARALLEL=8 logfile=imp.log


поставь parallel=1 и сравни размер
23 янв 15, 23:57    [17162762]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
parallel = 1 при импорте все аналогично (
вот засада (
29 янв 15, 07:36    [17187093]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
попробую сделать expdp без parallel и COMPRESSION

кстати, насчет parallel нашел на этом форуме:

Производительность Data Pump может быть улучшена использованием параметра PARALLEL. Этот параметр следует использовать совместно с шаблоном "%U" в параметре DUMPFILE для разрешения создания или чтения множественных dump-файлов:

expdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR parallel=4 dumpfile=SCOTT_%U.dmp logfile=expdpSCOTT.log

P.S. Из документации

А я в один файл parallel делаю
29 янв 15, 07:45    [17187100]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Угу. А чтобы дамп был согласованный, то еще нужен ключик flashback_time=systimestamp при экспорте.
А то я заколебался констреины руками все править.
29 янв 15, 08:15    [17187140]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
KoTTT
Member

Откуда: Екб
Сообщений: 1511
sergeqwe
Производительность Data Pump может быть улучшена использованием параметра PARALLEL

А может быть и ухудшена. Тестируйте.
29 янв 15, 10:10    [17187629]     Ответить | Цитировать Сообщить модератору
 Re: при impdp размер табличного пространства получается больше  [new]
sergeqwe
Member

Откуда:
Сообщений: 28
Если не использовать parallel и compress, то ничего не меняется.
Некоторые табличные пространства больше аж в 10 раз!
3 фев 15, 09:34    [17210291]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить