當(dāng)前位置:
首頁(yè) >
优化调整Oracle 8i数据库
發(fā)布時(shí)間:2025/7/14
16
豆豆
生活随笔
收集整理的這篇文章主要介紹了
优化调整Oracle 8i数据库
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Oracle?8i數(shù)據(jù)庫(kù)服務(wù)器是高度可優(yōu)化的軟件產(chǎn)品,經(jīng)常性的調(diào)整可以優(yōu)化系統(tǒng)的性能,防止出現(xiàn)數(shù)據(jù)瓶頸。我們通過(guò)調(diào)整數(shù)據(jù)庫(kù)系統(tǒng),可以使它達(dá)到最佳性能以滿足用戶的需要。
下面,筆者將介紹優(yōu)化和調(diào)整Sun?SPARC?Solaris系統(tǒng)平臺(tái)上的Oracle?8i數(shù)據(jù)庫(kù)服務(wù)器的一些相關(guān)命令和方法。
Solaris性能監(jiān)控命令
Solaris提供了性能監(jiān)控命令,用于監(jiān)控?cái)?shù)據(jù)庫(kù)性能和決定數(shù)據(jù)庫(kù)的需求。除了為Oracle進(jìn)程提供統(tǒng)計(jì)外,它們還為CPU提供使用統(tǒng)計(jì),為整個(gè)系統(tǒng)提供中斷、交換、分頁(yè)和上下文轉(zhuǎn)換功能。監(jiān)控命令包括:
1.vmstat
vmstat命令報(bào)告Solaris上的進(jìn)程、虛擬內(nèi)存、磁盤、分頁(yè)和CPU的活動(dòng)情況。下面命令將顯示系統(tǒng)每5秒鐘做的事的概要:
%?vmstat?5?
2.sar
sar命令用于監(jiān)控交換、分頁(yè)、磁盤和CPU活動(dòng)。下面命令用于每10秒顯示10次分頁(yè)活動(dòng)的概要:
$?sar?-p?10?10
3.iostat
iostat命令報(bào)告終端和磁盤的活動(dòng)。該報(bào)告顯示哪些磁盤是忙的(該信息在平衡I/O負(fù)載時(shí)有用)。下面命令用于每5秒顯示5次終端和磁盤活動(dòng):
$?iostat?5?5
4.swap
swap命令報(bào)告關(guān)于交換空間使用的信息。交換空間的不足可以導(dǎo)致系統(tǒng)懸掛,減慢響應(yīng)時(shí)間。
5.mpstat
mpstat命令報(bào)告每個(gè)處理器的統(tǒng)計(jì)。
調(diào)整內(nèi)存管理
1.分配足夠的交換空間
內(nèi)存交換(swapping)可以造成很大的內(nèi)存開銷,應(yīng)該將它最小化。在Solaris上使用sar?-w或vmstat?-S命令來(lái)檢查交換。若系統(tǒng)在交換,且需要節(jié)省內(nèi)存,則應(yīng)采用以下措施:
避免運(yùn)行不必要的系統(tǒng)daemon進(jìn)程或應(yīng)用程序進(jìn)程;
減少數(shù)據(jù)庫(kù)緩沖區(qū)的數(shù)量,以釋放一些內(nèi)存;
減少UNIX文件緩沖區(qū)的數(shù)量(特別是在使用原始設(shè)備時(shí))。
在Solaris上用swap?-l命令決定當(dāng)前正在使用多少交換空間。使用swap?-a命令向系統(tǒng)中增加交換區(qū)。用系統(tǒng)RAM兩到四倍的交換空間啟動(dòng)數(shù)據(jù)庫(kù)。若準(zhǔn)備使用Oracle?Developer、Oracle?Applications或Oracle?InterOffice,則使用更高的值。監(jiān)控交換空間的使用,在必要時(shí)增加它。
2.控制分頁(yè)
內(nèi)存分頁(yè)(paging)可能沒有交換那樣問(wèn)題嚴(yán)重,因?yàn)闉榱诉\(yùn)行,整個(gè)應(yīng)用程序不必全部放在內(nèi)存中。少量的分頁(yè)不可能顯著地影響系統(tǒng)的性能。為了檢測(cè)過(guò)多的分頁(yè),在快速響應(yīng)或空閑期間運(yùn)行測(cè)量,并與響應(yīng)遲緩時(shí)的測(cè)量進(jìn)行比較。使用vmstat或sar?-p監(jiān)控分頁(yè)。
若系統(tǒng)有過(guò)多的頁(yè)面活動(dòng),則需考慮以下解決辦法:
安裝更多的內(nèi)存;
將一些工作移到另一系統(tǒng)中;
配置系統(tǒng)核心使用更少的內(nèi)存;
保持SGA在單個(gè)共享內(nèi)存段中。
沒有足夠的共享內(nèi)存,將不能夠啟動(dòng)數(shù)據(jù)庫(kù)。這時(shí),我們可以重新配置UNIX核心,以增加共享內(nèi)存。
調(diào)整磁盤I/O
I/O瓶頸是最容易識(shí)別的性能問(wèn)題。跨所有可用的磁盤均勻地平衡I/O,可以減少磁盤存取的時(shí)間。對(duì)于較小的數(shù)據(jù)庫(kù)和不使用并行查詢選項(xiàng)的那些數(shù)據(jù)庫(kù),要確保不同的數(shù)據(jù)文件和表空間跨可用的磁盤分布。
1.調(diào)整DBWR,增加寫帶寬
Oracle提供以下方法以防止DBWR(數(shù)據(jù)庫(kù)寫進(jìn)程)活動(dòng)成為瓶頸:
使用異步I/O?異步I/O允許進(jìn)程繼續(xù)處理下一個(gè)操作,而不必等待在發(fā)出寫后,最小化了空閑時(shí)間,因而改善了系統(tǒng)性能。Solaris支持原始設(shè)備和文件系統(tǒng)數(shù)據(jù)文件的異步I/O。
使用I/O從屬?I/O從屬(slave)是專用的進(jìn)程,其惟一功能是執(zhí)行I/O。它們代替Oracle?7的多個(gè)DBWR特性(實(shí)際上它們是多個(gè)DRWR的概括,可以由其它進(jìn)程分布)。不管異步I/O是否可用,它們都可以操作。若設(shè)置的話,它們被從LARGE_POOL_SIZE分配,否則從共享內(nèi)存緩沖區(qū)分配。
初始化參數(shù)控制了I/O從屬的行為,其中DISK_ASYNCH_IO和TAPE_ASYNCH_IO允許分別為磁盤和磁帶設(shè)備關(guān)閉異步I/O(因?yàn)槊總€(gè)進(jìn)程類型的I/O從屬缺省為0,除非明確設(shè)置,否則沒有I/O從屬被發(fā)布)。
若DISK_ASYNCH_IO或TAPE_ASYNCH_IO無(wú)效,則DBWR_IO_SLAVES應(yīng)該設(shè)置大于0,否則DBWR將成為一個(gè)瓶頸。在這種情況下,Solaris上DBWR_IO_SLAVES的最佳值為4,而在LGWR_IO_SLAVES的情況下,發(fā)布的從屬不應(yīng)該超過(guò)9個(gè)。
DB_WRITER_PROCESSES代替Oracle?7的參數(shù)DB_WRITERS,指定某實(shí)例的數(shù)據(jù)庫(kù)寫進(jìn)程的初始數(shù)量。若使用DBWR_IO_SLAVES,則只有一個(gè)數(shù)據(jù)庫(kù)寫進(jìn)程被使用,而不管DB_WRITER_PROCESSES的設(shè)置。
2.使用IOSTAT查找大磁盤請(qǐng)求隊(duì)列
請(qǐng)求隊(duì)列顯示特定磁盤設(shè)備上等待服務(wù)的I/O請(qǐng)求有多長(zhǎng)。由大量的磁盤I/O或由平均查找時(shí)間I/O引起請(qǐng)求隊(duì)列。磁盤請(qǐng)求隊(duì)列應(yīng)該為0或接近于0。
3.選擇合適的文件系統(tǒng)類型
Sun?SPARC?Solaris允許選擇文件系統(tǒng)。文件系統(tǒng)有不同特性,它們用于存取數(shù)據(jù)的技術(shù)對(duì)數(shù)據(jù)庫(kù)性能有實(shí)質(zhì)性的影響。文件系統(tǒng)通常包括:
.s5:UNIX系統(tǒng)V文件系統(tǒng);
.ufs:UNIX文件系統(tǒng)(由BSD?UNIX派生);
.vxfs:Veritas文件系統(tǒng);
.原始設(shè)備:沒有文件系統(tǒng)。
通常沒有事實(shí)證明文件系統(tǒng)與文件系統(tǒng)是相配的,甚至不同的ufs文件系統(tǒng)也難以比較(因?yàn)閳?zhí)行不同),盡管ufs通常是高性能的選擇,但根據(jù)選擇文件系統(tǒng)的不同,性能差別變化也很大。
監(jiān)控磁盤性能
使用sar?-b和sar?-u可以監(jiān)控磁盤性能。
sar?-b對(duì)磁盤性能的重要性如下:
(1)bread/s、bwrit/s:塊讀和塊寫,它們對(duì)文件系統(tǒng)而言是非常重要的。
(2)pread/s、pwrit/s:分區(qū)讀和分區(qū)寫,它們對(duì)原始分區(qū)數(shù)據(jù)庫(kù)系統(tǒng)是非常重要的。
Oracle塊大小應(yīng)該匹配磁盤塊大小或是磁盤塊大小的倍數(shù)。若可能的話,在數(shù)據(jù)庫(kù)文件使用文件系統(tǒng)前在分區(qū)上做文件系統(tǒng)檢查;然后制作一個(gè)新的文件系統(tǒng),確保它是清潔的和不破碎的。盡可能地均勻分布磁盤I/O,將數(shù)據(jù)庫(kù)文件與日志文件分開。
調(diào)整CPU的使用
1.在同一優(yōu)先權(quán)上保持所有Oracle用戶和進(jìn)程
在Oracle中,所有用戶和后臺(tái)進(jìn)程操作在同一優(yōu)先級(jí)上,修改優(yōu)先權(quán)對(duì)競(jìng)爭(zhēng)和響應(yīng)時(shí)間有意想不到的影響。
例如,若LGWR(日志寫進(jìn)程)獲得低優(yōu)先權(quán),則它不能充分地執(zhí)行,LGWR將成為一個(gè)瓶頸;另一方面,若LGWR有高的優(yōu)先權(quán),用戶進(jìn)程可能要忍受較壞的響應(yīng)時(shí)間。
2.在多處理器系統(tǒng)上使用處理器親和力/捆綁
在多處理器環(huán)境中,使用處理器親和力/捆綁(affinity/binding,若它在系統(tǒng)中可用)。處理器捆綁禁止某進(jìn)程從一個(gè)CPU移動(dòng)到另一個(gè),允許CPU高速緩存中的信息被更好地利用,而且可以捆綁服務(wù)器進(jìn)程,從而充分利用高速緩存(因?yàn)樗偸腔顒?dòng)的,允許后臺(tái)進(jìn)程在CPU間流動(dòng))。
3.為Export(導(dǎo)出)/Import(導(dǎo)入)和SQLLoader使用單任務(wù)鏈接
若要在用戶和Oracle?8i之間傳輸大量的數(shù)據(jù)(如使用Export/Import),使用單任務(wù)結(jié)構(gòu)是非常高效的,因?yàn)樽鳛閱稳蝿?wù)鏈接Oracle可執(zhí)行程序,允許某用戶進(jìn)程直接存取整個(gè)SGA。但運(yùn)行單任務(wù)需要更多的內(nèi)存。為了使用單任務(wù)導(dǎo)入、導(dǎo)出和SQLLoader(sqlldrst)可執(zhí)行程序,我們可以調(diào)用make文件的ins_rdbms.mk(在$ORACLE_HOME/rdbms/lib目錄中)。
下面是用于實(shí)現(xiàn)單任務(wù)導(dǎo)入、導(dǎo)出和SQLLoader(sqlldrst)的可執(zhí)行程序:
%?cd?$ORACLE_HOME/rdbms/lib
%?make?-f?ins_utilities.mk?singletask
調(diào)整塊大小和文件大小
在Solaris上,Oracle塊缺省值為2KB,可以設(shè)置的實(shí)際大小為2KB的倍數(shù),最大設(shè)置值為16KB。
最優(yōu)的塊大小通常是缺省值,但隨著應(yīng)用程序而變化。為了用不同的Oracle塊大小建立數(shù)據(jù)庫(kù),在創(chuàng)建數(shù)據(jù)庫(kù)前在initsid.ora文件中增加下面行:
db_block_size=new_block_size
調(diào)整Solaris緩沖區(qū)高速緩存大小
為了充分利用原始設(shè)備的優(yōu)點(diǎn),我們需要調(diào)整Oracle?8i緩沖區(qū)高速緩存的大小和Solaris緩沖區(qū)高速緩存。
Solaris緩沖區(qū)高速緩存由操作系統(tǒng)提供。它在內(nèi)存中保存數(shù)據(jù)的塊(在它們被從內(nèi)存?zhèn)魉偷酱疟P前,反之亦然)。
Oracle?8i緩沖區(qū)高速緩存是在內(nèi)存中保存Oracle數(shù)據(jù)庫(kù)緩沖區(qū)的區(qū)域。因?yàn)镺racle?8i可以使用原始設(shè)備,它不需要使用Solaris緩沖區(qū)高速緩存。
在移動(dòng)原始設(shè)備時(shí),增加Oracle?8i緩沖區(qū)高速緩存的大小。若系統(tǒng)中內(nèi)存的數(shù)量是有限的,則相應(yīng)地減少Solaris緩沖區(qū)高速緩存的大小。
Solaris命令sar可以幫助決定哪些緩沖區(qū)高速緩存應(yīng)該增加或減少:
sar?-b:報(bào)告Solaris緩沖區(qū)高速緩存的活動(dòng);
sar?-w:報(bào)告Solaris內(nèi)存交換活動(dòng);
sar?-u:報(bào)告CPU利用情況;
sar?-r:報(bào)告內(nèi)存利用情況;
sar?-p:報(bào)告Solaris內(nèi)存分頁(yè)活動(dòng)。
通常在緩存命中率上升時(shí),我們需要增加Oracle?8i緩沖區(qū)高速緩存的大小,而在交換/分頁(yè)活動(dòng)變高時(shí),我們需要減少高速緩存的大小。
我們還可以使用Oracle?8i建立的跟蹤(Trace)和警報(bào)(Alter)文件來(lái)診斷和解決運(yùn)行中存在的問(wèn)題。
只要我們充分利用以上命令和方法,就可以很好地優(yōu)化與調(diào)整Oracle?8i數(shù)據(jù)庫(kù)了。 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
下面,筆者將介紹優(yōu)化和調(diào)整Sun?SPARC?Solaris系統(tǒng)平臺(tái)上的Oracle?8i數(shù)據(jù)庫(kù)服務(wù)器的一些相關(guān)命令和方法。
Solaris性能監(jiān)控命令
Solaris提供了性能監(jiān)控命令,用于監(jiān)控?cái)?shù)據(jù)庫(kù)性能和決定數(shù)據(jù)庫(kù)的需求。除了為Oracle進(jìn)程提供統(tǒng)計(jì)外,它們還為CPU提供使用統(tǒng)計(jì),為整個(gè)系統(tǒng)提供中斷、交換、分頁(yè)和上下文轉(zhuǎn)換功能。監(jiān)控命令包括:
1.vmstat
vmstat命令報(bào)告Solaris上的進(jìn)程、虛擬內(nèi)存、磁盤、分頁(yè)和CPU的活動(dòng)情況。下面命令將顯示系統(tǒng)每5秒鐘做的事的概要:
%?vmstat?5?
2.sar
sar命令用于監(jiān)控交換、分頁(yè)、磁盤和CPU活動(dòng)。下面命令用于每10秒顯示10次分頁(yè)活動(dòng)的概要:
$?sar?-p?10?10
3.iostat
iostat命令報(bào)告終端和磁盤的活動(dòng)。該報(bào)告顯示哪些磁盤是忙的(該信息在平衡I/O負(fù)載時(shí)有用)。下面命令用于每5秒顯示5次終端和磁盤活動(dòng):
$?iostat?5?5
4.swap
swap命令報(bào)告關(guān)于交換空間使用的信息。交換空間的不足可以導(dǎo)致系統(tǒng)懸掛,減慢響應(yīng)時(shí)間。
5.mpstat
mpstat命令報(bào)告每個(gè)處理器的統(tǒng)計(jì)。
調(diào)整內(nèi)存管理
1.分配足夠的交換空間
內(nèi)存交換(swapping)可以造成很大的內(nèi)存開銷,應(yīng)該將它最小化。在Solaris上使用sar?-w或vmstat?-S命令來(lái)檢查交換。若系統(tǒng)在交換,且需要節(jié)省內(nèi)存,則應(yīng)采用以下措施:
避免運(yùn)行不必要的系統(tǒng)daemon進(jìn)程或應(yīng)用程序進(jìn)程;
減少數(shù)據(jù)庫(kù)緩沖區(qū)的數(shù)量,以釋放一些內(nèi)存;
減少UNIX文件緩沖區(qū)的數(shù)量(特別是在使用原始設(shè)備時(shí))。
在Solaris上用swap?-l命令決定當(dāng)前正在使用多少交換空間。使用swap?-a命令向系統(tǒng)中增加交換區(qū)。用系統(tǒng)RAM兩到四倍的交換空間啟動(dòng)數(shù)據(jù)庫(kù)。若準(zhǔn)備使用Oracle?Developer、Oracle?Applications或Oracle?InterOffice,則使用更高的值。監(jiān)控交換空間的使用,在必要時(shí)增加它。
2.控制分頁(yè)
內(nèi)存分頁(yè)(paging)可能沒有交換那樣問(wèn)題嚴(yán)重,因?yàn)闉榱诉\(yùn)行,整個(gè)應(yīng)用程序不必全部放在內(nèi)存中。少量的分頁(yè)不可能顯著地影響系統(tǒng)的性能。為了檢測(cè)過(guò)多的分頁(yè),在快速響應(yīng)或空閑期間運(yùn)行測(cè)量,并與響應(yīng)遲緩時(shí)的測(cè)量進(jìn)行比較。使用vmstat或sar?-p監(jiān)控分頁(yè)。
若系統(tǒng)有過(guò)多的頁(yè)面活動(dòng),則需考慮以下解決辦法:
安裝更多的內(nèi)存;
將一些工作移到另一系統(tǒng)中;
配置系統(tǒng)核心使用更少的內(nèi)存;
保持SGA在單個(gè)共享內(nèi)存段中。
沒有足夠的共享內(nèi)存,將不能夠啟動(dòng)數(shù)據(jù)庫(kù)。這時(shí),我們可以重新配置UNIX核心,以增加共享內(nèi)存。
調(diào)整磁盤I/O
I/O瓶頸是最容易識(shí)別的性能問(wèn)題。跨所有可用的磁盤均勻地平衡I/O,可以減少磁盤存取的時(shí)間。對(duì)于較小的數(shù)據(jù)庫(kù)和不使用并行查詢選項(xiàng)的那些數(shù)據(jù)庫(kù),要確保不同的數(shù)據(jù)文件和表空間跨可用的磁盤分布。
1.調(diào)整DBWR,增加寫帶寬
Oracle提供以下方法以防止DBWR(數(shù)據(jù)庫(kù)寫進(jìn)程)活動(dòng)成為瓶頸:
使用異步I/O?異步I/O允許進(jìn)程繼續(xù)處理下一個(gè)操作,而不必等待在發(fā)出寫后,最小化了空閑時(shí)間,因而改善了系統(tǒng)性能。Solaris支持原始設(shè)備和文件系統(tǒng)數(shù)據(jù)文件的異步I/O。
使用I/O從屬?I/O從屬(slave)是專用的進(jìn)程,其惟一功能是執(zhí)行I/O。它們代替Oracle?7的多個(gè)DBWR特性(實(shí)際上它們是多個(gè)DRWR的概括,可以由其它進(jìn)程分布)。不管異步I/O是否可用,它們都可以操作。若設(shè)置的話,它們被從LARGE_POOL_SIZE分配,否則從共享內(nèi)存緩沖區(qū)分配。
初始化參數(shù)控制了I/O從屬的行為,其中DISK_ASYNCH_IO和TAPE_ASYNCH_IO允許分別為磁盤和磁帶設(shè)備關(guān)閉異步I/O(因?yàn)槊總€(gè)進(jìn)程類型的I/O從屬缺省為0,除非明確設(shè)置,否則沒有I/O從屬被發(fā)布)。
若DISK_ASYNCH_IO或TAPE_ASYNCH_IO無(wú)效,則DBWR_IO_SLAVES應(yīng)該設(shè)置大于0,否則DBWR將成為一個(gè)瓶頸。在這種情況下,Solaris上DBWR_IO_SLAVES的最佳值為4,而在LGWR_IO_SLAVES的情況下,發(fā)布的從屬不應(yīng)該超過(guò)9個(gè)。
DB_WRITER_PROCESSES代替Oracle?7的參數(shù)DB_WRITERS,指定某實(shí)例的數(shù)據(jù)庫(kù)寫進(jìn)程的初始數(shù)量。若使用DBWR_IO_SLAVES,則只有一個(gè)數(shù)據(jù)庫(kù)寫進(jìn)程被使用,而不管DB_WRITER_PROCESSES的設(shè)置。
2.使用IOSTAT查找大磁盤請(qǐng)求隊(duì)列
請(qǐng)求隊(duì)列顯示特定磁盤設(shè)備上等待服務(wù)的I/O請(qǐng)求有多長(zhǎng)。由大量的磁盤I/O或由平均查找時(shí)間I/O引起請(qǐng)求隊(duì)列。磁盤請(qǐng)求隊(duì)列應(yīng)該為0或接近于0。
3.選擇合適的文件系統(tǒng)類型
Sun?SPARC?Solaris允許選擇文件系統(tǒng)。文件系統(tǒng)有不同特性,它們用于存取數(shù)據(jù)的技術(shù)對(duì)數(shù)據(jù)庫(kù)性能有實(shí)質(zhì)性的影響。文件系統(tǒng)通常包括:
.s5:UNIX系統(tǒng)V文件系統(tǒng);
.ufs:UNIX文件系統(tǒng)(由BSD?UNIX派生);
.vxfs:Veritas文件系統(tǒng);
.原始設(shè)備:沒有文件系統(tǒng)。
通常沒有事實(shí)證明文件系統(tǒng)與文件系統(tǒng)是相配的,甚至不同的ufs文件系統(tǒng)也難以比較(因?yàn)閳?zhí)行不同),盡管ufs通常是高性能的選擇,但根據(jù)選擇文件系統(tǒng)的不同,性能差別變化也很大。
監(jiān)控磁盤性能
使用sar?-b和sar?-u可以監(jiān)控磁盤性能。
sar?-b對(duì)磁盤性能的重要性如下:
(1)bread/s、bwrit/s:塊讀和塊寫,它們對(duì)文件系統(tǒng)而言是非常重要的。
(2)pread/s、pwrit/s:分區(qū)讀和分區(qū)寫,它們對(duì)原始分區(qū)數(shù)據(jù)庫(kù)系統(tǒng)是非常重要的。
Oracle塊大小應(yīng)該匹配磁盤塊大小或是磁盤塊大小的倍數(shù)。若可能的話,在數(shù)據(jù)庫(kù)文件使用文件系統(tǒng)前在分區(qū)上做文件系統(tǒng)檢查;然后制作一個(gè)新的文件系統(tǒng),確保它是清潔的和不破碎的。盡可能地均勻分布磁盤I/O,將數(shù)據(jù)庫(kù)文件與日志文件分開。
調(diào)整CPU的使用
1.在同一優(yōu)先權(quán)上保持所有Oracle用戶和進(jìn)程
在Oracle中,所有用戶和后臺(tái)進(jìn)程操作在同一優(yōu)先級(jí)上,修改優(yōu)先權(quán)對(duì)競(jìng)爭(zhēng)和響應(yīng)時(shí)間有意想不到的影響。
例如,若LGWR(日志寫進(jìn)程)獲得低優(yōu)先權(quán),則它不能充分地執(zhí)行,LGWR將成為一個(gè)瓶頸;另一方面,若LGWR有高的優(yōu)先權(quán),用戶進(jìn)程可能要忍受較壞的響應(yīng)時(shí)間。
2.在多處理器系統(tǒng)上使用處理器親和力/捆綁
在多處理器環(huán)境中,使用處理器親和力/捆綁(affinity/binding,若它在系統(tǒng)中可用)。處理器捆綁禁止某進(jìn)程從一個(gè)CPU移動(dòng)到另一個(gè),允許CPU高速緩存中的信息被更好地利用,而且可以捆綁服務(wù)器進(jìn)程,從而充分利用高速緩存(因?yàn)樗偸腔顒?dòng)的,允許后臺(tái)進(jìn)程在CPU間流動(dòng))。
3.為Export(導(dǎo)出)/Import(導(dǎo)入)和SQLLoader使用單任務(wù)鏈接
若要在用戶和Oracle?8i之間傳輸大量的數(shù)據(jù)(如使用Export/Import),使用單任務(wù)結(jié)構(gòu)是非常高效的,因?yàn)樽鳛閱稳蝿?wù)鏈接Oracle可執(zhí)行程序,允許某用戶進(jìn)程直接存取整個(gè)SGA。但運(yùn)行單任務(wù)需要更多的內(nèi)存。為了使用單任務(wù)導(dǎo)入、導(dǎo)出和SQLLoader(sqlldrst)可執(zhí)行程序,我們可以調(diào)用make文件的ins_rdbms.mk(在$ORACLE_HOME/rdbms/lib目錄中)。
下面是用于實(shí)現(xiàn)單任務(wù)導(dǎo)入、導(dǎo)出和SQLLoader(sqlldrst)的可執(zhí)行程序:
%?cd?$ORACLE_HOME/rdbms/lib
%?make?-f?ins_utilities.mk?singletask
調(diào)整塊大小和文件大小
在Solaris上,Oracle塊缺省值為2KB,可以設(shè)置的實(shí)際大小為2KB的倍數(shù),最大設(shè)置值為16KB。
最優(yōu)的塊大小通常是缺省值,但隨著應(yīng)用程序而變化。為了用不同的Oracle塊大小建立數(shù)據(jù)庫(kù),在創(chuàng)建數(shù)據(jù)庫(kù)前在initsid.ora文件中增加下面行:
db_block_size=new_block_size
調(diào)整Solaris緩沖區(qū)高速緩存大小
為了充分利用原始設(shè)備的優(yōu)點(diǎn),我們需要調(diào)整Oracle?8i緩沖區(qū)高速緩存的大小和Solaris緩沖區(qū)高速緩存。
Solaris緩沖區(qū)高速緩存由操作系統(tǒng)提供。它在內(nèi)存中保存數(shù)據(jù)的塊(在它們被從內(nèi)存?zhèn)魉偷酱疟P前,反之亦然)。
Oracle?8i緩沖區(qū)高速緩存是在內(nèi)存中保存Oracle數(shù)據(jù)庫(kù)緩沖區(qū)的區(qū)域。因?yàn)镺racle?8i可以使用原始設(shè)備,它不需要使用Solaris緩沖區(qū)高速緩存。
在移動(dòng)原始設(shè)備時(shí),增加Oracle?8i緩沖區(qū)高速緩存的大小。若系統(tǒng)中內(nèi)存的數(shù)量是有限的,則相應(yīng)地減少Solaris緩沖區(qū)高速緩存的大小。
Solaris命令sar可以幫助決定哪些緩沖區(qū)高速緩存應(yīng)該增加或減少:
sar?-b:報(bào)告Solaris緩沖區(qū)高速緩存的活動(dòng);
sar?-w:報(bào)告Solaris內(nèi)存交換活動(dòng);
sar?-u:報(bào)告CPU利用情況;
sar?-r:報(bào)告內(nèi)存利用情況;
sar?-p:報(bào)告Solaris內(nèi)存分頁(yè)活動(dòng)。
通常在緩存命中率上升時(shí),我們需要增加Oracle?8i緩沖區(qū)高速緩存的大小,而在交換/分頁(yè)活動(dòng)變高時(shí),我們需要減少高速緩存的大小。
我們還可以使用Oracle?8i建立的跟蹤(Trace)和警報(bào)(Alter)文件來(lái)診斷和解決運(yùn)行中存在的問(wèn)題。
只要我們充分利用以上命令和方法,就可以很好地優(yōu)化與調(diào)整Oracle?8i數(shù)據(jù)庫(kù)了。 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的优化调整Oracle 8i数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vs 2005 與vs 2003 語法比
- 下一篇: 日记一则