|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
Приветствую. Вспоминаю, как работает expdp.exe в Windows Server + Oracle Database 12. База примерно 1,5 ТиБ. Запускаю полный экспорт БД в файл на этом же сервере, зависает примерно на 30% выполнения. Смотрю в SQL Developer на экземпляр, вижу что сессия экспорта долго ждёт чего-то, связанного с пакетом DATA_PUMP. Как сейчас разбираете такие ситуации? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2025, 16:49 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
SeaGate [игнорируется] Сейчас в столице мира ночь. С БД никто не работает. И экспорт все равно висит! Записал примерно 170 ГиБ из 570 и думает о чём-то вечном. Сессия expdp.exe: BEGIN sys.kupw$worker.main('SYS_EXPORT_SCHEMA_42', 'ADMIN', 0); END; Пошел искать остатки Oracle MetaLink. ![]() ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2025, 01:15 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
SeaGate [игнорируется] К моему сожалению, пробиться на support.oracle.com я сейчас не могу. Может ли кто-то из коллег скачать и опубликовать или прислать мне указанные статьи? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2025, 01:28 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
iGor2025 [игнорируется] ASH Report Viewer, к сожалению, даёт ошибки при запуске. An error was encountered performing the requested operation: ORA-20028: psf_execute_query internal error: select min(snap_id) as snap_id, min(begin_interval_time) as begin_interval_time, min(end_interval_time) as end_interval_time from (select snap_id, begin_interval_time, end_interval_time, nvl(lag(end_interval_time) over(order by instance_number, snap_id), to_timestamp('01-JAN-1970 00:00:00', 'DD-Mon-YYYY HH24:MI:SS')) as lag_end_time from $#CDB#$VND$ash_snapshot where dbid = :dbid and ( :inst_num_list is null or instance_number member of :inst_num_list)) where (end_interval_time between :bdate and :edate) or (begin_interval_time between :bdate and :edate) or (:bdate between begin_interval_time and end_interval_time) or (:bdate between lag_end_time and begin_interval_time) ORA-06512: на "SYS.DBMS_SWRF_REPORT_INTERNAL", line 19305 ORA-06512: на "SYS.DBMS_UMF_PROTECTED", line 569 ORA-06512: на "SYS.DBMS_SWRF_REPORT_INTERNAL", line 18324 ORA-06512: на "SYS.DBMS_SWRF_REPORT_INTERNAL", line 17624 ORA-06512: на "SYS.DBMS_WORKLOAD_REPOSITORY", line 1872 ORA-06512: на line 1 https://docs.oracle.com/error-help/db/ora-20028/ Vendor code 20028 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2025, 01:40 |
|
Expdp.exe зависает во время экспорта
|
|
---|---|
#18+
Сессия expdp.exe: BEGIN sys.kupw$worker.main('SYS_EXPORT_SCHEMA_42', 'ADMIN', 0); END; ASH Report Viewer, к сожалению, даёт ошибки при запуске. Также, очень важно понять, на обработке чего происходит замедление: - вывод из консоли на чём конкретно зависает (Processing something). ... |
|
:
|
|
12.02.2025, 14:51 |
|
Expdp.exe зависает во время экспорта
#40140003
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
... |
||||||||||||||||
:
Нравится:
Не нравится:
|
||||||||||||||||
13.02.2025, 01:35 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
SeaGate [игнорируется] Насобирал утром, во время экспорта. Пока смотрел пришла в голову простая, очевидная, правильная мысль - если у нас объём БД 1,5 ТиБ, то что мне мешает стартовать N процессов expdp.exe паралельно и асинхронно получать результат? Например, по нужным мне схемам делать один файл экспорта на схему. Фундамент системы - HPE Primera A630. Пишу экспорт на нее, а это система красотой до 1 000 000 000 IOPS! "HPE Primera A630 с 72 SSD-дисками по 3,84 ТиБ может обеспечить высокую производительность, но точные значения IOPS зависят от различных факторов, включая конфигурацию системы, типы нагрузок и настройки. В общем случае для дисков SSD можно ожидать, что они обеспечивают от 20,000 до 100,000 IOPS на диск в зависимости от типа операций (чтение или запись). Если взять среднее значение, например, 50,000 IOPS на диск, то для 72 дисков это может дать: 72 диска × 50,000 IOPS/диск = 3,600,000 IOPS Однако важно отметить, что это теоретическая максимальная производительность. Реальные значения могут быть ниже из-за различных факторов, таких как: • Конфигурация контроллеров • Тип нагрузки (например, случайные или последовательные операции) • Настройки кэширования • Использование RAID Для получения более точных данных рекомендуется обратиться к документации HPE или провести тестирование производительности в вашей конкретной среде." ... |
|||
:
Изменено: 13.02.2025, 01:44 - iGor2025
Нравится:
Не нравится:
|
|||
13.02.2025, 01:38 |
|
Expdp.exe зависает во время экспорта
|
|
---|---|
#18+
iGor2025 [игнорируется] SQL_ID из вложения: 7wn3wubg7gjds Это не sys.kupw$worker.main, а: Код: SQL 1. 2. 3. 4. 5.
По ожиданиям, это также типично для мастера, который ждёт worker(s) (state='WAITING' and event='wait for unread message..'). Как я говорил ранее, нужно понять, на обработке каких объектов происходит замедление. Для этого ATTACH к заданию expdp и затем STATUS. Если есть консоль или лог, посмотреть, что пишет туда. DBA_DATAPUMP_JOBS тут не интересен. Нужен DBA_DATAPUMP_SESSIONS и смотреть по SESSION_TYPE='WORKER', затем смотреть сессии самих этих worker, т.к. там происходит основная работа, мастер просто ждёт worker. Фильтрации по program like '%expdp%' также может быть не полная, т.к. это опять же должны быть только сессия мастера, а сами workers стартуют на БД и program у них должен быть что-нибудь про "dw", а не expdp. Системно определить сессии нужно через DBA_DATAPUMP_SESSIONS. Чтобы понять, на что тратят время worker(s), нужно смотреть v$active_session_history. Как минимум, агрегаты по session_state, event, sql_id, sql_opname. Цитата [игнорируется] Насобирал утром, во время экспорта. Пока смотрел пришла в голову простая, очевидная, правильная мысль - если у нас объём БД 1,5 ТиБ, то что мне мешает стартовать N процессов expdp.exe паралельно и асинхронно получать результат? Например, по нужным мне схемам делать один файл экспорта на схему. Цитата [игнорируется] Фундамент системы - HPE Primera A630. Пишу экспорт на нее, а это система красотой до 1 000 000 000 IOPS! ... |
|
:
|
|
13.02.2025, 14:12 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
Нужен DBA_DATAPUMP_SESSIONS Код: JSON 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2025, 06:22 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
затем смотреть сессии самих этих worker ... |
|||
:
Изменено: 14.02.2025, 06:26 - iGor2025
Нравится:
Не нравится:
|
|||
14.02.2025, 06:24 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
iGor2025 [игнорируется] Нашёл, где посмотреть, что делают задания экспорта. В SQL Developer (последней версии) \ DBA \ Data Pump \ Export Jobs. Из 42 штук только одно задание в состоянии STATE=RUNNING, остальные NOT RUNNING. То есть 1 работник из 42, остальные курят! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2025, 08:47 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
Вот здесь пока туплю, как посмотреть? Есть 000000DA312A7420. Объём данных для меня, конечно, очень интересный. В БД порядка 2 миллиардов строк, объём более 1 тебибайта. И сегодня эта городушка по какой-то, известной только индусу-программисту Oracle, причине до сих пор льёт файл экспорта, с часа ночи! Но v$session это текущее состояние, оно не позволит ответить на вопрос, почему конкретные workers медленно работают. Нужна выгрузка по ним из v$active_session_history, в том же JSON, или агрегат, как писал ранее.
Дело в том, что текущее задание называется SYS_EXPORT_SCHEMA_42. Что показывает SQL Developer я не знаю, но у него есть режим показа запросов. Однако, и там и там 42, что наводит на мысли, что возможно это просто старые задания, если, например, они NOT RUNNING. Скорее всего, SQL Developer использует DBA_DATAPUMP_JOBS. Можно просто взять текст это представления, вот из 19.19, но брать нужно из версии используемой БД: Код: SQL 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Если это какие-то старые задания, то, очевидно, к текущему они отношения не имеют и на MOS были процедуры их очистки. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2025, 14:15 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
SeaGate [игнорируется] У нас сейчас этот экземпляр на Oracle Database 12 Standard Edition, виртуальный сервер под Hyper-V, Windows Server 2019, на достаточно мощном двухсокетном сервере DEPO. Система хранения данных - мощнейшая HPE Primera A630, до 3 600 000 IOPS (72 диска SSD 3,84 ТиБ). Сеть хранения данных - 32 Гбит/сек. Сегодня вообще странное состояние - за 12 часов вылилось в dmp-файл только 50 МБ! Затем задание было снято по тайм-ауту и при этом процесс expdp.exe остался висеть, пришлось снимать через Process Explorer. Коли уж сейчас времена трофейного ПО то задумался, а что может дать перевод этой БД на Enterprise Edition?Может ли в EE expdp.exe лучше распараллеливаться, чем в SE? ... |
|||
:
Изменено: 14.02.2025, 14:51 - iGor2025
Нравится:
Не нравится:
|
|||
14.02.2025, 14:50 |
|
Expdp.exe зависает во время экспорта
#40140036
![]() Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
Ссылка на вложение:
|
||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#18+
iGor2025 [игнорируется] Если standard edition, то ASH там нет (есть сторонние скрипты, которые создают подобие ASH). Тогда SQL трассировку на worker можно включить на пару минут и сюда сырой файл загружать. Как я писал, нужно понимать, что у expdp пишется в консоли (Processing что-то). Это позволит понять, что обрабатывается в данный момент. Если кроме expdp ничего особо не работает или expdp создаёт основную нагрузку, также можно и statspack собрать за минут 15 работы задания, когда задание "висит". Коли уж сейчас времена трофейного ПО то задумался, а что может дать перевод этой БД на Enterprise Edition?Может ли в EE expdp.exe лучше распараллеливаться, чем в SE? Parallel Data Pump Export/Import только в EE: https://docs.oracle.com/database/121/DBLIC/editions.htm#DBLIC2152Однако 50МБ за 12 часов распараллеливанием не исправить. Нужно смотреть за worker (SQL Trace) и изучать, на что тратится их время. На основании этих данных, проводить дальнейшие работы. ... |
||||||||||||||||
:
|
||||||||||||||||
14.02.2025, 15:46 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
SeaGate [игнорируется] Дело было не в Oracle, похоже. Немного фундамент шатает - HPE Primera A630, возможно, работает с сервером неоптимально + ЛВС поддает. Вчера добился 3 часа на экспорт БД, сеть на сервере DEPO вставили на место (2x 10 Гбит/сек). SAN 2x 16 Гбит/сек. Экспорт идёт на отдельный диск виртуального сервера под Microsoft Windows Server 2019 Datacenter, который в свою очередь лежит на LUN HPE Primera A630. Получаем интересную картину по IO - expdp.exe читает с этого LUN-а и одновременно пишет на него же файл экспорта. Раскочегарили СХД пока только на 3000+ IOPS. Заведу отдельную тему по переезду БД на Oracle Database Enterprise Edition последней версии с текущей версии Oracle Database Standard Edition 12.2 - если это имеет смысл, конечно. База эта не особо активна, в основном ее используют на чтение, как архивную. ... |
|||
:
Изменено: 21.02.2025, 01:20 - iGor2025
Нравится:
Не нравится:
|
|||
21.02.2025, 01:20 |
|
Expdp.exe зависает во время экспорта
|
|||
---|---|---|---|
#18+
SeaGate [игнорируется] Дело было не в Oracle, похоже. Немного фундамент шатает - HPE Primera A630, возможно, работает с сервером неоптимально + ЛВС поддает. Вчера добился 3 часа на экспорт БД, сеть на сервере DEPO вставили на место (2x 10 Гбит/сек). SAN 2x 16 Гбит/сек. Экспорт идёт на отдельный диск виртуального сервера под Microsoft Windows Server 2019 Datacenter, который в свою очередь лежит на LUN HPE Primera A630. Получаем интересную картину по IO - expdp.exe читает с этого LUN-а и одновременно пишет на него же файл экспорта. Раскочегарили СХД пока только на 3000+ IOPS. Заведу отдельную тему по переезду БД на Oracle Database Enterprise Edition последней версии с текущей версии Oracle Database Standard Edition 12.2 - если это имеет смысл, конечно. База эта не особо активна, в основном ее используют на чтение, как архивную. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2025, 02:31 |
|
|
start [/forum/topic.php?fid=52&gotolast=1&tid=2187184]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 357ms |
0 / 0 |