国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE 服務器的配置及優化

2024-08-29 13:39:17
字體:
來源:轉載
供稿:網友

  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的參數值。
  
  任何回卷段的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的參數值。
  
  與高速緩存有關的是游標在會話中的緩存方式。
  
  在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
  
  配置調度進程的數目。
  
  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
  
  CONNECT_TIMEOUT_LISTENER=10
  
  TRACE_LEVEL_LISTENER=ADMIN
  
  SID_LIST_LISTENER=
  
  (SID_LIST=
  
  (SID_DESC=
  
  (SID_NAME=MYDB)
  
  )
  
  )
  
  添加MTS參數之后要重新啟動數據庫。
  
  在SQL*PLUS下用PS命令檢查共享服務器和調度程序是否存在。
  
  ? PS -EFGREP FOXMOLD;
  
  具有ORA_SNNN_SID和ORA_DNNN_SID名稱的進程分別是共享服務器和調度進程。
  
  SELECT USERNAME,PROGRAM,SERVER FROM V$SESSION WHERE AUDSID=USERENV('SESSIONID');
  
  在SERVER列中返回的值應該是SHARED,假如是DEDICATED,就說明沒有正確配置MTS.
  
  用LSNRCTL SERVICES命令來檢查調度程序是否向監聽器登記了服務。
  
  8.移動數據庫文件
  
  第一種方法﹕(ALTER DATABASE)
  
  關閉數據庫-移動數據文件-裝載并改名-啟動
  
  1>SVRMGRL
  
  2>CONNECT INTERNAL
  
  3>SHUTDOWN
  
  4>EXIT
  
  5>MV /U/PRODUCT/ORADATA/FOXMOLD/USER01.DBF   /DB3/ORADATA
  
  6>SVRMGRL
  
  7>CONNECT INTERNAL
  
  8>STARTUP MOUNT FOXMOLD
  
  9>ALTER DATABASE RENAME FILE
  
  '/U/PRODUCT/ORADATA/FOXMOLD/USER01.DBF' TO
  
  '/DB3/ORADATA/USER01.DBF'
  
  10> ALTER DATABASE OPEN
  
  第二種方法﹕(ALTER TABLESPACE)
  
  關閉數據庫-移動數據文件-裝載并改名-啟動
  
  1>SVRMGRL
  
  2>CONNECT INTERNAL
  
  3>SHUTDOWN
  
  4>EXIT
  
  5>MV /U/PRODUCT/ORADATA/FOXMOLD/USER01.DBF   /DB3/ORADATA
  
  6>SVRMGRL
  
  7>CONNECT INTERNAL
  
  8>ALTER TABLESPACE DATA RENAME DATAFILE
  
  '/U/PRODUCT/ORADATA/FOXMOLD/USER01.DBF' TO
  
  '/DB3/ORADATA/USER01.DBF'
  
  9> ALTER DATABASE OPEN
  
  9. 統計分析
  
  SPOOL C:/ANALYZE.SQL
  
  SELECT  'ANALYZE TABLE 'TRIM(OBJECT_NAME)'  COMPUTE  STATISTICS; '
  
  FROM USER_OBJECTS
  
  WHERE OBJECT_TYPE='TABLE'
  
  然后運行analyze.sql文件即可
  
  最后,對TABLESPACE碎片進行清理.
  
  SELECT TABLESPACE_NAME, PERCENT_BLOCKS_COALESCED
  
  FROM DBA_FREE_SPACE_COALESCED
  
  去看那一個TABLESPACE對應的值不是100的就運行如下命令:
  
  ALTER TABLESPACE TABLESPACE_NAME COALESCE
  
  注重:假如TABLESPACE的值為100就沒有必要作此命令.
  
  10.移動TABLE INDEX 到另一個TABLESPACE
  
  1>SPOOL C:/MV_INDEX.SQL
  
  2>SELECT 'ALTER INDEX 'TRIM(OBJECT_NAME)' REBUILD TABLESPACE FOXMOLD1;
' FROM USER_OBJECTS WHERE OBJECT_TYPE='INDEX'
  
  3>將此命令生成MV_INDEX.SQL文件
  
  4>@C:/MV_INDEX.SQL
  
  11.MAINTAINING THE CONTROLFILE
  
  1>SVRMGRL
  
  2>CONNECT INTERNAL
  
  3>SHUTDOWN
  
  4>EXIT
  
  5>CP /U/PRODUCT/ORADATA/FOXMOLD/CONTROL01.CTL
  
  /DB4/ORADATA/CONTROL01.CTL
  
  6>CHMOD 660 /DB4/ORADATA/CONTROL01.CTL
  
  7>修改INIT.ORA CONTROL_FILES=……
  
  8>STARTUP MOUNT FOXMOLD
  
  12.MAINTAINING REDO LOG FILE
  
  1>SHUTDOWN
  
  2>EXIT
  
  3>CP /DISK1/*.RDO /DISK4/*.RDO
  
  4>CHMOD 660 /DISK4/*.RDO
  
  5>STARTUP MOUNT FOXMOLD
  
  13.RECOVER SYNTAX
  
  A.RECOVER A CLOSED DATABASE
  
  1>RECOVER DATABASE
  
  2>RECOVER DATAFILE '/DISK1/DF2.DBF'
  
  3>ALTER DATABASE RECOVER DATABASE
  
  B.RECOVER AN OPEN DATABASE
  
  1>RECOVER TABLESPACE USER_DATA
  
  2>RECOVER DATAFILE 2
  
  3>ALTE

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延川县| 电白县| 龙海市| 江华| 沂水县| 德格县| 兴国县| 扶沟县| 南昌县| 高阳县| 崇阳县| 景东| 昌黎县| 磐安县| 婺源县| 翁源县| 远安县| 含山县| 阜新| 南召县| 盐城市| 龙陵县| 衡山县| 婺源县| 上蔡县| 镇远县| 揭东县| 岫岩| 宕昌县| 富宁县| 墨玉县| 叶城县| 九龙坡区| 昭苏县| 华容县| 含山县| 洛宁县| 和静县| 塘沽区| 清徐县| 安庆市|