小知識:解決EXP-00003的報錯


客戶有個需求:某用戶程序(含exp導出任務)報錯EXP-00003,這個錯誤並不會影響整個導出任務的結束,但由於是晚上的定時任務,該錯誤會觸發夜間告警。客戶想通過數據庫層面來規避掉此錯誤。
事實上,這個錯誤是比較普遍的,我們知道Oracle 11g有一個延遲段創建的特性,這個特性在最佳實踐一般是建議關閉的,但由於默認是開啟,大部分環境還是默認值。如果我們直接通過網絡去搜索這個錯誤,也會得到一些答案,給出的解決方案有兩種,一是關閉該特性(但是這對之前的空表無效),二是給空表主動插入一條數據(這在實際生產環境實際是不現實的)。
客戶的數據庫環境是11.2.0.4,我在自己測試環境順手驗證了下,結果發現並不會報錯EXP-00003。
依次確認:

  • 1.延遲段創建的參數是默認值,即沒有關閉;
  • 2.實驗的空表沒有對應的段;
--1.參數默認設置:
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation            boolean     TRUE

--2.查看兩張測試表對應的段,發現T_NULL沒有對應的段:
sys@CRMDB> select segment_name, owner from dba_segments where owner='JINGYU' and segment_name in('T1','T_NULL');

SEGMENT_NAME                   OWNER
------------------------------ ------------------------------
T1                             JINGYU

但導出空表T_NULL(沒有對應段)可以成功,並不會報錯:EXP-00003

[oracle@jystdrac2 ~]$ exp jingyu/jingyu file=test001.dmp tables=t_null,t1 

Export: Release 11.2.0.4.0 - Production on Mon Jul 27 17:09:43 2020

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Tes
Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path ...
. . exporting table                         T_NULL          0 rows exported
. . exporting table                             T1          7 rows exported
Export terminated successfully without warnings.

難道說Oracle已經解決了這個問題?那客戶遇到的情況呢?這是怎么回事?
事實上,了解到客戶程序用到的是windows平台,安裝的是一個32位的Oracle 11.2.0.1 版本的Windows客戶端。
程序使用exp導出時調用的是這個客戶端,還是會報錯。
那其實解決方案就簡單了,結合客戶一些其他需求,還是選擇安裝32位的客戶端,只不過我們可以將版本換成11.2.0.4,這樣再次測試,就不會再報錯EXP-00003。
而這個現象其實官方還有篇MOS文章有說明:

  • Error During Schema Level Export - EXP-00003: no storage definition found for segment(0, 0) (Doc ID 1969081.1)

很多客戶對客戶端的版本不太care,而事實上客戶端版本選擇穩定版也是有必要的,比如文中的問題,如果一開始就安裝了11.2.0.4版本的客戶端,就不會有這個問題了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM