程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 提高Oracle數據庫系統Import的性能

提高Oracle數據庫系統Import的性能

編輯:Oracle數據庫基礎

摘要:本文主要從系統級別的改變、init.ora參數的改變、import選項的改變三個方面來介紹如何實現提高ORACLE關系數據庫系統的import實用工具的性能,對廣大Oracle系統管理員在進行數據庫故障恢復時提高效率有較大意義。

Import和Export是Oracle數據庫系統的兩個配套的實用程序,Export把數據庫中的數據卸出到操作系統文件中,而Import實用程序則把Export卸出的數據恢復到數據庫中。import過程有時要花費幾個小時甚至幾天時間才能成功地完成。不幸的是,在許多情況下,import需要對數據庫進行故障的恢復,這時對時間的要求比較高,因而這種性能是不能勝任的。筆者在從事Oracle 7系統管理工作兩年期間,總結出有幾個基本的參數改變可以減少import所需的時間。

一、 系統級別的改變

1在重建數據庫時盡可能增大DB_BLOCK_SIZ參數。塊的大小越大,所需I/O循環的次數就越少。這種改變是永久性的,因此在修改它的時候應考慮到各種可能的影響。

2建立並使用一個大的rollback段,同時將其他rollback段關閉(offline)。一個rollback段大約需要最大的表(table)的50%的大小就足夠了。

3在import完成之前將數據庫置於NOARCHIVELOG模式。這將減少創建和管理archive日志的時間。

4與rollback段一樣,創建幾個大的重做日志文件(redo log files),越大越好。關閉一些小的重做日志文件。重做日志文件越大,所需的日志切換的次數就越少。檢查警告日志信息如“Thread 1 cannot allocate new log,sequence 17,Checkpoint not complete”,這就意味著日志文件需要擴大或數量需增加。

5如果可能,盡量將rollback段、表數據和重做日志文件分布在不同的硬盤上。這樣可以減少I/O沖突的可能性。

二、 intr.ora參數的改變

1將LOG_CHECKPOINT_INTERVAL的值置為大於重做日志文件的大小。這個值通常以操作系統的塊大小來定義(UNIX系統大多是512字節)。這樣可以將檢查點checkpoint)減小到最少(僅在日志切換時執行)。

2增大SORT_AREA_SIZE的值。這種增加取決於機器中其他活動進程的狀況以及還有多少可用的空閒內存。我們可以試5-10次來尋找一個最佳值。若機器開始交換(swapping)及頁面(paging)切換,說明值設置得太大。

三、 import選項改變

1置COMMIT=N。這將導致import在每個對象(如table)結束之後提交(commit),而非緩沖區滿提交。這就是我們為什麼需要一個大的rollback段。

2采用一個大的BUFFER值。這個值要視系統活動狀況、數據庫大小等情況而定。通常幾兆字節就夠了,但是若有足夠的內存這個值還可更大些。同樣,我們可以查看頁面和交換的情況來確定這個值是否太大。這將減少import進程到文件中讀取數據的次數(每次它將讀取一個buffer大小的數據)。

3置INDEXES=N。這將加快導入無索引表的速度。采用INDEXFILE選項,在數據導入完成後建立索引。建立索引時SORT_AREA_SIZE值要足夠大。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved