您好,登錄后才能下訂單哦!
本篇內容主要講解“數據庫表導出不全導致tomcat無法發布程序怎么辦”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“數據庫表導出不全導致tomcat無法發布程序怎么辦”吧!
今天開發找我調錯誤,tomcat啟動后無法訪問程序,看了下數據庫正常,仔細看了下tomcat的錯誤[org.springframework.jdbc.support.SQLErrorCodesFactory]-SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
發現和數據庫表和程序對不上有關,對比開發庫和生產庫,發現用戶表數量不一致,開發庫比生產庫多近10張表。
問過倒庫的人員,表示導出時未報錯。靈光一現,11g的deferred_segment_creation屬性,經查果然如此,重新導出導入后,此問題解決。
通知各個操作人員倒庫完成后
[oracle@vm51 ~]$ sqlplus 業務用戶/密碼
SQL> select count(*) from user_tables;
檢查源庫和目標庫的表數量是否一致
11G中新特性,當表無數據時,不分配segment,以節省空間
解決方法:
1、在空表中插入數據,再rollback,則產生segment。導出時則可導出空表。太麻煩。
2、設置deferred_segment_creation 參數
alter system set deferred_segment_creation=false;
該參數值默認是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment。
需注意的是:該值設置后對以前導入的空表不產生作用,仍不能導出,只能對后面新增的表產生作用。
如需導出之前的空表,進入業務用戶,用以下這句查找用戶下的空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
把查詢結果導出,執行導出的語句。
到此,相信大家對“數據庫表導出不全導致tomcat無法發布程序怎么辦”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。