簡體   English   中英

加載大數據文件時出現ORA-00054

[英]ORA-00054 while loading large data file

加載大數據文件時,我得到ORA-00054(〜10 gb)在上一個文件之后加載此新文件時,發生錯誤。 有什么想法可以解決這個問題嗎?

一種可能的情況。

這是直接路徑負荷嗎? 如果是這樣,請檢查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的鎖定注意事項

在直接路徑INSERT期間,Oracle獲得表(或分區表的所有分區)上的排他鎖。 結果,用戶無法在表上執行任何並發插入,更新或刪除操作,並且不允許並發索引創建和構建操作。 但是,支持並發查詢,但是查詢將僅返回插入操作之前的信息。

也許這與表空間數據文件的大小,表的大小有關,因為ORA-00054通常在運行ALTER語句時出現。

我不假裝在這里。

檢查那些視圖。

  • 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

您的表似乎已鎖定: ORA-00054可能是由於Oracle驅動程序處理BLOB類型的原因(驅動程序鎖定了記錄,打開了一個流以寫入二進制數據,並且需要“一些幫助”來釋放記錄) )。 我會嘗試下一個安全性:

  1. 加載第一個文件
  2. 承諾;
  3. 加載第二個文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM