您好,登錄后才能下訂單哦!
小編給大家分享一下oracle中如何解決導(dǎo)出含clob字段表報錯快照過舊問題,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
導(dǎo)出含clob字段的表數(shù)據(jù),報快照過舊,無法導(dǎo)出
該問題是因為含clob字段表數(shù)據(jù)過大導(dǎo)致,需要修改數(shù)據(jù)庫閃回參數(shù)解決
查看undo表空間大小是否足夠,undo_retention參數(shù)是否設(shè)置太小,一般跟undo空間無關(guān),只需修改參數(shù)即可
目前解決辦法有兩個,加大retention或者使用pctversion
另外,對于使用MSSM表空間的表,只有pctverion可用,lob retention不可用
1、加大retention
查看undo參數(shù)
SQL> show parameter undo
--修改undo閃回參數(shù)
alter system set undo_retention=7200 scope=both;
通過查詢oracle官網(wǎng),oracle的lob大字段有自己的retention參數(shù),如果只調(diào)整undo_retention,而沒有同步到lob大字段,該參數(shù)還是默認(rèn)的900s,確認(rèn)查詢結(jié)果如下:
select table_name,column_name,pctversion,retention from dba_lobs where table_name='T_PATIENT_DOC_COLB';
select table_name,column_name,pctversion,retention from dba_lobs where table_name='T_PATIENTS_DOC_CA';
select table_name,column_name,pctversion,retention from dba_lobs where table_name='T_CARE_DOC';
修改表含有l(wèi)ob大字段的retention設(shè)置
ALTER TABLE T_PATIENT_DOC_COLB MODIFY LOB(CONTENT)(retention);
ALTER TABLE T_PATIENTS_DOC_CA MODIFY LOB(SIGN)(retention);
ALTER TABLE T_PATIENTS_DOC_CA MODIFY LOB(TIMESTAMP)(retention);
ALTER TABLE T_CARE_DOC MODIFY LOB(CARE_DOC)(retention);
2、使用pctversion
從結(jié)果中可以看到,當(dāng)顯示指定pctversion的時候,retention參數(shù)會失效
SQL> alter table T_PATIENTS_DOC_CA modify lob(SIGN) (pctversion 10);
SQL> select column_name, pctversion, retention from user_lobs where table_name = 'T_PATIENTS_DOC_CA';
COLUMN_NAME PCTVERSION RETENTION
------------------------------ --------- ----------
SIGN 10
TIMESTAMP 7200
看完了這篇文章,相信你對“oracle中如何解決導(dǎo)出含clob字段表報錯快照過舊問題”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。