Oracle数据库迁移后变慢,迁移数据之后,读取数据库变得很慢
在某天晚上,業務人員把數據庫遷至新庫,通過數據泵導入導出這種方式遷至新庫上。
新庫與老庫均為rac環境
在第二天上午,業務人員突然報說數據庫處理單子的速度變的很慢,一上午壓了2000個單子。
出現這種情況的原因有這么幾種:
1.導數的時候沒有導統計信息
2.表和索引的統計信息變了
3.是否產生了不同的計劃任務
這里我就能想到這么三點,可能會有各種不同的問題,下面我們跟業務人員要一下跑的業務語句
select SERIAL_NUMBER,
ORD_NO,
USER_ID,
ACCNO,
ACTION_TYPE,
START_DATE,
RETURN_DATE,
RECONFIG_REASON,
DEAL_FLAG,
RETURN_CODE,
RETURN_DESC,
BACK_REASON,
LOGTIME,
CW_STATE,
CW_desc,
DL_STATE,
DL_DESC,
HD_FLAG,
ORDER_ID,
WORK_ORDER_ID
from (select *
from fwkt_new.tif_rs_info t2
where deal_flag = '0'
and rownum < 500
union
select *
from fwkt_new.tif_rs_info t
where deal_flag = '1'
and rownum < 80000);
以上是業務人員的處理單子的sql語句
拿到sql語句,我們首先分析下老庫和新庫的執行計劃是否一致
老庫的執行計劃
新庫的執行計劃
對比兩個庫,執行計劃兩邊完全一致,并沒有說執行計劃有變。
那這個問題出現在哪兒呢?
后來又有業務人員說登陸數據庫慢,會不會是登錄數據庫慢導致業務處理的速度變慢了呢?
原來業務人員使用的是數據庫連接地址是scan,用scan ip可以負載均衡,但是會產生大量的gc,還會導致閂鎖的出現。所以讓業務人員把scan ip禁掉,讓應用使用vip去連接數據庫
改完之后,數據庫的處理速度有改善,但是處理速度改善的不是很明顯,說明還是有問題,到底是什么問題導致數據庫處理的速度變慢呢?
連接數據庫慢,會不會是監聽有問題導致的呢?
遂登陸grid用戶查看監聽信息
在這之間沒有做截圖,我口述一下吧!!!
lsnrctl status
發現節點1和節點2的監聽注冊信息不一致。
然后登陸數據庫查看service_name
發現兩邊的service_name也不一致
更改數據庫的service_name名稱與節點1和節點2保持一致,并且節點1和節點2可以支持多個service_name的名稱。
更改完畢,重新加載一下數據庫的監聽,并在數據庫里面注冊一下監聽的信息。
所有操作完成之后,業務人員說積壓的單子瞬間就沒了。
至此,問題解決。
總結一下:
這究其原因就是oracle數據庫里面的service_name不一致,導致監聽的注冊信息不一致,會導致數據庫處理速度變慢,所以大家在改任何數據庫參數的時候一定要小心謹慎。
總結
以上是生活随笔為你收集整理的Oracle数据库迁移后变慢,迁移数据之后,读取数据库变得很慢的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: oracle如何查询系统变量数据,Ora
- 下一篇: oracle数据库批量操作系统,Orac
