ORA-00054 при загрузке большого файла данных - PullRequest
1 голос
/ 29 сентября 2010

Я получаю ORA-00054 при загрузке больших файлов данных (~ 10 ГБ). Ошибка возникает при загрузке нового файла после предыдущего файла.Любые идеи, как я могу решить это?

Ответы [ 4 ]

1 голос
/ 29 сентября 2010

Один возможный сценарий.

Это прямая загрузка пути? Если это так, проверьте представление v $ locked_object и посмотрите, не заблокирован ли он кем-то во время загрузки.

select dbao.object_name
  from v$locked_object vlo,
       dba_objects dbao
  where vlo.object_id = dbao.object_id
    and dbao.object_name = 'Table that you are trying to load...'

Из документации Oracle на http://download.oracle.com/docs/cd/B10500_01/server.920/a96524/c21dlins.htm

Особенности блокировки с INSERT прямого пути

Во время прямой вставки, Oracle получает эксклюзивные замки на столе (или на всех разделах разделенных Таблица). В результате пользователи не могут выполнить любую параллельную вставку, обновление, или удалить операции на столе, и одновременное создание и создание индекса операции не разрешены. Параллельные запросы, однако, поддерживается, но запрос вернется только информация перед вставкой работа.

0 голосов
/ 29 сентября 2010

Проверьте эти представления.

  • DBA_BLOCKERS - показывает не ожидающие сеансы с удержанием ожидающих блокировок

  • DBA_DDL_LOCKS - показывает все блокировки DDL, удерживаемые или запрашиваемые

  • DBA_DML_LOCKS - показывает все блокировки DML, удерживаемые или запрашиваемые

  • DBA_LOCK_INTERNAL - отображает 1 строку для каждой блокировки или защелки, удерживаемых или запрашиваемых с именем пользователя, который удерживает блокировку

  • DBA_LOCKS - Показывает все блокировки или защелки, удерживаемые или запрашиваемые

  • DBA_WAITERS - Показывает все сеансы, ожидающие, но не удерживающие в ожидании блокировок

http://www.dba -oracle.com / t_ora_00054_locks.htm

0 голосов
/ 29 сентября 2010

Ваш стол заблокирован: ORA-00054 Это может быть связано с тем, что драйвер Oracle обрабатывает типы BLOB (драйвер блокирует запись, открывает поток для записи двоичных данных и нуждается в «некоторой помощи» для освобождения записи). Я бы попробовал следующее:

  1. Загрузить первый файл
  2. COMMIT;
  3. Загрузить второй файл
0 голосов
/ 29 сентября 2010

Может быть, это связано с размерами файла данных табличного пространства, размером таблицы, потому что ORA-00054 обычно появляется при выполнении инструкции ALTER.

Я не претендую на это.

...