oracle伺服器配置及最佳化

來源:互聯網
上載者:User
1.在ORACLE中實現分布式快速存取和充實記憶體是很重要的。
  

  要不惜任何代價避免頁面調度和交換﹐每次都必須把系統全域區(SGA)放到記憶體。
  
  將SGA放到記憶體中﹐在INIT.ORA中設定參數 PRE_PAGE_SGA
  
  PRE_PAGE_SGA=YES
  
   2.回卷段的竟爭會降低系統的效能。
  

  SELECT GETS,WAITS FROM V$ROLLSTAT;
  
  GETS代表回卷段被訪問的次數
  
  WAITS代表進程等待回卷段中哪個進程的次數
  
  如果GETS與WAITS的比大於2%表示存在竟爭問題
  
  解決辦法是建立更多的回卷段。
  
  有兩種類型的鎖存竟爭會產生嚴重的後果﹕立即鎖存(IMMEDIATE)和等待(WAIT)鎖存。
  
  等待鎖存的計算公式﹕
  
  WAIT CONTENTION=(MISSES/(GETS+MISSES))*100
  
  立即鎖存的計算公式﹕
  
  IMMEDIATE CONNECTION=(IMMEDIATE_MISSES/(IMMEDIATE_GETS+IMMEDIATE_MISSES))*100
  
  如果任何一個值>0則就存在對鎖存的竟爭
  
  如果發生恢複分配鎖存的竟爭﹐可以減小INIT.ORA中的LOG_SMALL_ENTRY_MAX_SIZE的參數值。如果發生恢複復制竟爭﹐可以增大INIT.ORA中的LOG_SIMULATANOUS_COPIES的參數值。 中國網管聯盟www_bitscn_com
  
  任何回卷段的OPTIMAL參數的設定不能太小﹐如果OPTIMAL  
  SELECT CLASS,COUNT FROM V$WAITSTAT WHERE UPPER(CLASS) IN ('SYSTEM UNDO HEADER)','SYSTEM UNDO BLOCK',
  
  'UNDO HEADER','UNDO BLOCK');
  
  SELECT SUM(VALUE) FROM V$SYSSTAT WHERE UPPER(NAME)
  
  IN ('DB BLOCK GETS','CONSISTENT GETS');
  
  第一條查詢中的每一類與第二條查詢中的比率最好<0.01
  
   3.提高緩衝區的效率。
  

  SELECT RELOADS,PINS FROM V$LIBRARYCACHE;
  
  RELOADS存入SQL命令被載入和分解的次數
  
  PINS存入資料庫對SQL高速緩衝區尋找一條語句的次數
  
  如果RELOADS與PINS的比率大於1%則應增加INIT.ORA中的SHARED_POOL_SIZE的參數值。
  
  SELECT GETMISSES,GETS FROM V$ROWCACHE;
  
  如果RELOADS與PINS的比率大於10%則應增加INIT.ORA中的
  
  SHARED_POOL_SIZE的參數值。
  
   4.使用者任何時點擁有的開啟游標的最大數
  

  修改INIT.ORA中的OPEN_CURSORS的參數值。 中國網管聯盟www_bitscn_com
  
  與快取有關的是遊標在會話中的緩衝方式。
  
  在INIT.ORA中增加 SESSION_CACHED_CURSORS=100
  
   5.SELECT SUM(GETS),SUM(GETMISSES) FROM V$ROWCACHE;
  

  必須使GETMISSES比率接近0, 為了最佳化效能﹐可以增加INIT.ORA中的參數SHARED_POLL_SIZE和DB_BLOCK_BUFFERS的值。
  
   6.SELECT NAME,VALUE FROM V$SYSSTAT WHERE UPPER(NAME) IN
  

  ('SORTS(MEMORY)','SORTS(DISK)');
  
  如果用於磁碟上的排序量較高﹐可以增加INIT.ORA中的SORT_AREA_SIZE的值。
  
   7.LGWR的記錄檔如果切換太快會影響資料庫的活動﹐導致效能的下將。
  

  在INIT.ORA 中 CHECKPOINT_PROCESS=TRUE
  
  LOG_CHECKPOINT_INTERVAL=10000
  
  LOG_CHECKPOINT_TIMEOUT=1800
  
  8.多線程 伺服器(MTS)的配置
  
  1> MTS_SERVICE
  
  這是發送器用來向SQL*NET監聽器註冊服務的服務名。
  
  最好取和SID相同的名稱。
  
  2>MTS_DISPATCHERS
  
  配置調度進程的數目。 網管網bitsCN_com
  
  3>MTS_MAX_DISPATCHERS
  
  配置調度進程的最大數目。
  
  4>MTS_SERCERS
  
  啟動共用伺服器的最初數目。
  
  5>MTS_MAX_SERVERS
  
  設定共用伺服器的最大數目。
  
  6>MTS_LISTENTER_ADDRESS
  
  這是發送器用來向SQL*NET監聽器註冊服務的服務名的地址。
  
  一個MTS的配置例子:
  
  在INIT.ORA中
  
  mts_listener_address='(ADDRESS=(PROTOCOL=TCP)(KEY=MYDB))'
  
  mts_dispatchers='tcp,10'
  
  mts_dispatchers='ipx,2'
  
  mts_max_dispatchers=10
  
  mts_max_servers=10
  
  mts_servers=2
  
  在LISTENER.ORA中應包括下類似的內容:
  
  LISTENER=
  
  (ADDRESS_LIST=
  
  (ADDRESS=
  
  (PROTOCOL=IPX)
  
  (KEY=MYDB)
  
  )
  
  (ADDRESS=
  
  (PROTOCOL=TCP)
  
  (HOST=OURHOST)
  
  (PORT=1521
  
  )
  
  STARTUP_WAIT_TIME_LISTENER=0
  

54ne.com

  CONNECT_TIMEOUT_LISTENER=10
  
  TRACE_LEVEL_LISTENER=ADMIN
  
  SID_LIST_LISTENER=
  
  (SID_LIST=
  
  (SID_DESC=
  
  (SID_NAME=MYDB)
  
  )
  
  )
  
  添加MTS參數之後要重新啟動資料庫。
  
  在SQL*PLUS下用PS命令檢查共用伺服器和發送器是否存在。
  
  ? PS -EF|GREP FOXMOLD;
  
  具有ORA_SNNN_SID和ORA_DNNN_SID名稱的進程分別是共用伺服器和調度進程。
  
  SELECT USERNAME,PROGRAM,SERVER FROM V$SESSION WHERE AUDSID=USERENV('SESSIONID');
  
  在SERVER列中返回的值應該是SHARED,如果是DEDICATED,就說明沒有正確配置MTS.
  
  用LSNRCTL SERVICES命令來檢查發送器是否向監聽器登記了服務。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.