亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

[Oracle]利用開源工具實(shí)現(xiàn)自己的TPC-C

瀏覽:7日期:2023-11-15 16:22:28
[Oracle] How to Use Open Source Tools to Implement Your Own TPC-C 作者:Fenng 日期:Mar 14 2004 (v0.13)站點(diǎn):Http://www.dbanotes.net本文簡(jiǎn)介 介紹如何利用開源工具實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)環(huán)境中的TPC-C.對(duì)DBA、開發(fā)人員、BI實(shí)施者有一定的參考價(jià)值. 引言描述設(shè)想一下這樣一種情況: 您正在負(fù)責(zé)公司的一個(gè)OLTP類型的數(shù)據(jù)庫(kù)項(xiàng)目,面臨數(shù)據(jù)庫(kù)服務(wù)器選型的問題:如何選擇硬件才能滿足產(chǎn)品環(huán)境的業(yè)務(wù)要求? 這個(gè)事情是“拍腦袋” 能決定的嗎?不可否認(rèn),硬件選型是一門藝術(shù),選擇合適的硬件,能給公司節(jié)省大筆的費(fèi)用,選擇不能滿足業(yè)務(wù)需求的服務(wù)器產(chǎn)品,不但花了冤枉錢,還會(huì)對(duì)將來的業(yè)務(wù)產(chǎn)生影響。可能大家首先會(huì)想到參考服務(wù)器的TPC-C的信息。提到TPC-C,可能很多人對(duì)此都感到既熟悉又生疏,因?yàn)榻?jīng)常聽人說起,但是具體的問下去,能說清楚的又沒有多少人,而且,從大家口中得到的還不盡相同。那么什么是TPC/TPC-C這些都代表什么意思呢?什么是TPC?TPC(Transaction Processing Performance Council,事務(wù)處理性能委員會(huì))是一個(gè)非盈利性的組織,其官方站點(diǎn)在http://www.tpc.org。其宗旨是為了制定商務(wù)應(yīng)用基準(zhǔn)程序(Benchmark)的標(biāo)準(zhǔn)規(guī)范,提供性能和價(jià)格度量,并治理測(cè)試結(jié)果的發(fā)布。在業(yè)界極其具有權(quán)威性。TPC的基準(zhǔn)程序的標(biāo)準(zhǔn)規(guī)范(Standard Specification)是對(duì)公共開放的,可以在官方站點(diǎn)上得到,但是TPC卻不提供基準(zhǔn)程序的代碼。任何軟硬件廠商或其它測(cè)試者可以根據(jù)標(biāo)準(zhǔn)規(guī)范,最優(yōu)地構(gòu)建自己待測(cè)的系統(tǒng)。為保證測(cè)試結(jié)果的客觀性,被測(cè)試者(通常是廠家)必須提交給TPC一套完整的報(bào)告(Full Disclosure Report),包括被測(cè)系統(tǒng)的具體配置、分類價(jià)格和包含五年維護(hù)費(fèi)用在內(nèi)的總價(jià)格。該報(bào)告必須由TPC授權(quán)的審核員核實(shí)(TPC本身并不做審計(jì))。什么是tpmC?先說一下TPC-C,TPC-C是聯(lián)機(jī)事務(wù)處理(on-line transaction processing , OLTP)的基準(zhǔn)程序。TPC-C模擬一個(gè)批發(fā)商的貨物治理環(huán)境。TPC-C使用三種性能和價(jià)格度量,其中性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡(jiǎn)稱;C指TPC中的C基準(zhǔn)程序。它的定義是每分鐘內(nèi)系統(tǒng)處理的新訂單個(gè)數(shù)。了解了這些內(nèi)容,您可能會(huì)想:我們公司的PC服務(wù)器完全是自己攢出來的,如何進(jìn)行TPC-C的衡量的?也去參考TPC官方站點(diǎn)上的信息?不要忘了,TPC.org 上公布的測(cè)試結(jié)果都是各大廠商根據(jù)自己的系統(tǒng)進(jìn)行了充分優(yōu)化之后的出來的結(jié)果。打個(gè)比方,TPC公布的數(shù)值就好比嶄新的法拉利跑車經(jīng)過專業(yè)技師們的精心檢查保養(yǎng),然后在專用跑道上跑出來的速度值,而我們的情況可能是法拉利(甚至是夏利)要在鄉(xiāng)村土路上行駛,可比性大打折扣。有的朋友會(huì)想:那我們可以根據(jù)自己的情況,拿一個(gè)秒表在“鄉(xiāng)村土路”上測(cè)試一下看看呀。這樣的意義也是顯而易見的,對(duì)我們的實(shí)際的環(huán)境不是更具有參考價(jià)值?不錯(cuò),這也正是本文的目的:讓我們利用開源(Open Source)工具來實(shí)現(xiàn)自己的針對(duì)Oracle數(shù)據(jù)庫(kù)的TPC-C。Hammerora—The Open Source Oracle Load Test Tool首先介紹一下Hammerora。從創(chuàng)作者對(duì)這個(gè)工具的標(biāo)題描述可以看出,Hammerora是一款Oracle數(shù)據(jù)庫(kù)負(fù)載測(cè)試工具。該工具可以在Oracle 8i、9i和10g等版本上使用。當(dāng)前可以用在Linux/Unix和Windows上.初步實(shí)現(xiàn)了跨平臺(tái).Hammerora 完全用TCL/TK寫就,以GPL版權(quán)形式發(fā)布。作者是Steve Shaw。該項(xiàng)目的主頁(yè)在:http://sourceforge.net/projects/hammerora/ 。圖1: Hammerora的LogoHammerora的設(shè)計(jì)原理是解析Oracle的Trace文件,并把它們轉(zhuǎn)化為Oratcl程序,然后在Oracle數(shù)據(jù)庫(kù)中用多個(gè)用戶并發(fā)的對(duì)用戶的事務(wù)進(jìn)行“回放”。我們知道,Oracle的Trace文件能夠翔實(shí)的記錄用戶對(duì)數(shù)據(jù)庫(kù)的操作。這樣Hammerora能夠保證對(duì)用戶環(huán)境的真實(shí)模擬。Hammerora最初是用以學(xué)習(xí)的目的:期望是模擬數(shù)據(jù)庫(kù)的一定數(shù)量的用戶。這樣一個(gè)小的基于家庭的學(xué)習(xí)開發(fā)系統(tǒng)就能夠比較接近產(chǎn)品環(huán)境。這個(gè)工具已經(jīng)成長(zhǎng)為一個(gè)Oracle數(shù)據(jù)庫(kù)做壓力測(cè)試--從小的數(shù)據(jù)庫(kù)到大的基于RAC的集群。TCL語(yǔ)言已經(jīng)用來提供高性能的和Oracle數(shù)據(jù)庫(kù)的OCI集成,而無需重新編譯生成的程序。每個(gè)生成的程序具有嚴(yán)格的TCL/Oratcl兼容性,并且可以在Hammerora的命令行Shell下運(yùn)行。TCL的強(qiáng)大功能和靈活性意味著潛在的功能是無窮盡的。TCL線程包用來實(shí)現(xiàn)對(duì)Oracle數(shù)據(jù)庫(kù)的多個(gè)并發(fā)連接。Hammerora包含Oracle存儲(chǔ)過程和TCL驅(qū)動(dòng)腳本用來運(yùn)行TPC-C基準(zhǔn)程序。 但是,我們先要構(gòu)建一個(gè)同TPC-C規(guī)范相符的數(shù)據(jù)庫(kù)。這樣,我們需要用到Orabm。OrabmOrabm是Geoff Ingram (High-Performance Oracle: Proven Methods forAchieving Optimum Performance and Availability一書的作者)構(gòu)建的一個(gè)程序包,包含了一套SQL腳本和幾個(gè)命令行程序。Orabm數(shù)據(jù)裝載程序(Orabmload)構(gòu)建了一組遵從TPC-C標(biāo)準(zhǔn)的數(shù)據(jù)用以測(cè)試。Orabm的程序包和源代碼可以從它的主頁(yè)面http://www.linxcel.co.uk/orabm/ 得到。Orabm的運(yùn)行機(jī)制Orabm的運(yùn)行機(jī)制在Geoff Ingram有明確的說明,這里翻譯如下:Orabm 通過在每個(gè)用戶指定的并發(fā)數(shù)據(jù)庫(kù)會(huì)話(session)中運(yùn)行用戶執(zhí)行數(shù)量的數(shù)據(jù)庫(kù)事務(wù)來進(jìn)行工作.事務(wù)通過ORABM模式下的ORABM_SERVERSIDE_STRESS存儲(chǔ)過程運(yùn)行.對(duì)每個(gè)并發(fā)會(huì)話來說,ORABM_SERVERSIDE_STRESS 運(yùn)行在orabm命令行下指定的事務(wù)數(shù),并返回該會(huì)話在采樣間隔完成時(shí)的TPS值.要確保所有并發(fā)會(huì)話都是在采樣間隔期間處理事務(wù),TPS值僅包括事務(wù)的中間的80%,也即:初始的10%和最后的10%將忽略掉.更具體信息可以參考http://www.linxcel.co.uk/orabm/的內(nèi)容.安裝步驟1 安裝Oracle OCI 庫(kù)對(duì)Oracle 9i 來說,假如沒有安裝該組件的話,可能要重新運(yùn)行runInstall,在Oracle 9i Client prodUCts樹中選擇'Oracle Call Interfaces' . 對(duì)Oracle 10g來說,Oracle 10 OCI 庫(kù)應(yīng)該是默認(rèn)安裝的.2 安裝TCLcd /usr/local/src/tcl8.4.5/unixrm -f config.cache./configure --enable-threads --enable-sharedmake cleanmakemake install3 安裝TKcd /usr/local/src/tk8.4.5/unixrm -f config.cache./configure --with-tcl=../../tcl8.4.5/unix --enable-threads --enable-sharedmake cleanmake make install4 安裝TCL Threadscd /usr/local/src/thread2.5.2/unixrm -f config.cachesh ../configure --enable-threads --enable-sharedmake cleanmakemake install5 安裝Oratcl對(duì)10g來說,要編輯配置文件,在1728 行四周, FOUND_ORACLE=0 那一行的下面添加如下部分內(nèi)容:echo 'checking for Oracle 10.0 style toplevel (libclient10.a)' 1>&6echo 'configure:1730: checking for Oracle 10.0 style toplevel (libclient10.a)' >&5for f in $oracle_Directory $oratest1 $oratest2 $oratest3 $oracle4 /opt/oracle /u/oracle /usr/oracle /usr/local/oracle ; do echo '$ac_t''looking for lib/libclient10.a in $f' 1>&6 if test -r '$f/lib/libclient10.a' ; then ORA='$f/lib' ORACLE_HOME=$f echo '$ac_t''setting ORA to $ORA' 1>&6 testver=10 ORA_MAJOR_VERSION=10 ORA_MINOR_VERSION=0 FOUND_ORACLE=1 break fidoneeXPort ORACLE_HOME=your_oracle_home_directorycd /usr/local/src/oratcl-4-1-branch/unix rm -f config.cachesh ../configure --with-tcl=../../tcl8.4.5/unix --with-oracle-directory=$ORACLE_HOME --with-oracle-version=9 ( or 10 or 8! ) --enable-threads --enable-shared注:紅色部分為針對(duì)不同的數(shù)據(jù)庫(kù)版本需要做的調(diào)整.vi Makefile – 把所有的 -rpath 改做 -Wl,-rpath,make cleanmakemake installsqlplus orabm/orabm @delivery_sp.sql;;;sqlplus orabm/orabm @new_order_sp.sql;. sqlplus orabm/orabm @ostat_sp.sql; sqlplus orabm/orabm @payment_sp.sql; sqlplus orabm/orabm @slev_sp.sql步驟操作命令1創(chuàng)建 ORABM用戶(用TOOLS做默認(rèn)表空間, TEMP 表空間為臨時(shí)表空間)sqlplus system/pwd @orabm_user2創(chuàng)建表sqlplus system/pwd @orabm_tab3裝載數(shù)據(jù)$orabmload Warehouses 14創(chuàng)建索引sqlplus system/pwd @orabm_ind5分析表和索引sqlplus system/pwd @orabm_analyze6創(chuàng)建壓力測(cè)試PL/SQL 過程sqlplus system/pwd @orabm_serverside_stress7把表和索引數(shù)據(jù)緩沖到SGAsqlplus system/pwd @orabm_cache把tpc-c.tcl腳本載入Hammerora中(remember to change the file filter from *.trc to *.tcl to see TCL files),在該tpc-c.tcl中查找connect字符串,調(diào)整為你的數(shù)據(jù)庫(kù)用戶連接信息。 并調(diào)整虛擬用戶信息。測(cè)試運(yùn)行 運(yùn)行Hammerora,創(chuàng)建需要的用戶數(shù), 來模擬TPC-C 基準(zhǔn)程序(注重調(diào)整好執(zhí)行Hammerora程序的環(huán)境變量,最好直接用Oracle用戶來執(zhí)行). 下圖為筆者筆記本電腦上得到的數(shù)據(jù)[機(jī)器性能查了一點(diǎn)兒 :) ] :圖2: Hammerora測(cè)試結(jié)果示例參考信息http://hammerora.sourceforge.net/ Hammerora的主頁(yè).當(dāng)前的軟件版本是1.15.http://www.linxcel.co.uk/orabm/ Geoff Ingram維護(hù)的個(gè)人站點(diǎn).該站點(diǎn)上還有一個(gè)很有趣的工具orastress.用來進(jìn)行Oracle數(shù)據(jù)庫(kù)壓力測(cè)試.http://www.tpc.org TPC官方站點(diǎn).http://www.cnoug.org/viewthread.PHP?tid=63技術(shù)高手RudolfLu很早以前就曾對(duì)orabm這個(gè)工具做過介紹.http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm Installing Oracle 10g on RHEL AS 3 Step-by-Step 本文作者Fenng,某美資公司DBA,業(yè)余時(shí)間混跡于各數(shù)據(jù)庫(kù)相關(guān)的技術(shù)論壇且樂此不疲。目前關(guān)注如何利用ORACLE數(shù)據(jù)庫(kù)有效地構(gòu)建企業(yè)應(yīng)用。對(duì)Oracle tuning、troubleshooting有一點(diǎn)研究。個(gè)人技術(shù)站點(diǎn): http://www.dbanotes.net/。可以通過電子郵件 dbanotes@gmail.com 聯(lián)系到他。原文出處http://www.dbanotes.net/Oracle/Use_OpenSourceTool_implement_YourOwn_TPC-C.htm回首頁(yè)  All Articles (by Fenng) are licensed under a Creative Commons License.I would welcome any feedback. Please send questions, comments or corrections to dbanotes@gmail.com
主站蜘蛛池模板: 国产一级特黄aaaa大片野外 | 国产亚洲制服 | www.黄在线| 国产小视频在线观看免费 | 日韩视频欧美视频 | 夜色www国产精品资源站 | 女性一级全黄生活片 | 欧美视频黄色 | 亚洲日韩中文字幕一区 | 免费黄色在线观看视频 | 国产在线一区在线视频 | 一区二区三区视频在线 | 国产一区不卡 | 亚洲国产一区二区三区综合片 | 九九在线观看免费视频 | 黄色网址免费观看 | 美国黄色片网站 | 亚洲一级毛片视频 | 女人被免费视频网站 | 99欧美在线 | 国产一级c片| 久久久久久午夜精品 | 清草在线视频精品 | 久久久精品久久久久久久久久久 | 亚洲精品欧美一区二区三区 | 国产cdts| 精品视频免费观看 | 亚洲精品久中文字幕 | 国产精品久久久久激情影院 | 久久99精品一级毛片 | 91新视频| 182tv午夜线路一线路二 | 久久亚洲私人国产精品va | 99视频有精品视频免费观看 | 欧美一做特黄毛片 | 成人免费动作大片黄在线 | 国产欧美日韩视频在线观看一区二区 | 一级黄色片中国 | 韩国免费高清一级毛片性色 | 欧美午夜一艳片欧美精品 | 欧美zzzz|