电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

[Oracle]利用開源工具實現自己的TPC-C

瀏覽:40日期: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)站點:Http://www.dbanotes.net本文簡介 介紹如何利用開源工具實現Oracle數據庫環境中的TPC-C.對DBA、開發人員、BI實施者有一定的參考價值. 引言描述設想一下這樣一種情況: 您正在負責公司的一個OLTP類型的數據庫項目,面臨數據庫服務器選型的問題:如何選擇硬件才能滿足產品環境的業務要求? 這個事情是“拍腦袋” 能決定的嗎?不可否認,硬件選型是一門藝術,選擇合適的硬件,能給公司節省大筆的費用,選擇不能滿足業務需求的服務器產品,不但花了冤枉錢,還會對將來的業務產生影響。可能大家首先會想到參考服務器的TPC-C的信息。提到TPC-C,可能很多人對此都感到既熟悉又生疏,因為經常聽人說起,但是具體的問下去,能說清楚的又沒有多少人,而且,從大家口中得到的還不盡相同。那么什么是TPC/TPC-C這些都代表什么意思呢?什么是TPC?TPC(Transaction Processing Performance Council,事務處理性能委員會)是一個非盈利性的組織,其官方站點在http://www.tpc.org。其宗旨是為了制定商務應用基準程序(Benchmark)的標準規范,提供性能和價格度量,并治理測試結果的發布。在業界極其具有權威性。TPC的基準程序的標準規范(Standard Specification)是對公共開放的,可以在官方站點上得到,但是TPC卻不提供基準程序的代碼。任何軟硬件廠商或其它測試者可以根據標準規范,最優地構建自己待測的系統。為保證測試結果的客觀性,被測試者(通常是廠家)必須提交給TPC一套完整的報告(Full Disclosure Report),包括被測系統的具體配置、分類價格和包含五年維護費用在內的總價格。該報告必須由TPC授權的審核員核實(TPC本身并不做審計)。什么是tpmC?先說一下TPC-C,TPC-C是聯機事務處理(on-line transaction processing , OLTP)的基準程序。TPC-C模擬一個批發商的貨物治理環境。TPC-C使用三種性能和價格度量,其中性能由TPC-C吞吐率衡量,單位是tpmC。tpm是transactions per minute的簡稱;C指TPC中的C基準程序。它的定義是每分鐘內系統處理的新訂單個數。了解了這些內容,您可能會想:我們公司的PC服務器完全是自己攢出來的,如何進行TPC-C的衡量的?也去參考TPC官方站點上的信息?不要忘了,TPC.org 上公布的測試結果都是各大廠商根據自己的系統進行了充分優化之后的出來的結果。打個比方,TPC公布的數值就好比嶄新的法拉利跑車經過專業技師們的精心檢查保養,然后在專用跑道上跑出來的速度值,而我們的情況可能是法拉利(甚至是夏利)要在鄉村土路上行駛,可比性大打折扣。有的朋友會想:那我們可以根據自己的情況,拿一個秒表在“鄉村土路”上測試一下看看呀。這樣的意義也是顯而易見的,對我們的實際的環境不是更具有參考價值?不錯,這也正是本文的目的:讓我們利用開源(Open Source)工具來實現自己的針對Oracle數據庫的TPC-C。Hammerora—The Open Source Oracle Load Test Tool首先介紹一下Hammerora。從創作者對這個工具的標題描述可以看出,Hammerora是一款Oracle數據庫負載測試工具。該工具可以在Oracle 8i、9i和10g等版本上使用。當前可以用在Linux/Unix和Windows上.初步實現了跨平臺.Hammerora 完全用TCL/TK寫就,以GPL版權形式發布。作者是Steve Shaw。該項目的主頁在:http://sourceforge.net/projects/hammerora/ 。圖1: Hammerora的LogoHammerora的設計原理是解析Oracle的Trace文件,并把它們轉化為Oratcl程序,然后在Oracle數據庫中用多個用戶并發的對用戶的事務進行“回放”。我們知道,Oracle的Trace文件能夠翔實的記錄用戶對數據庫的操作。這樣Hammerora能夠保證對用戶環境的真實模擬。Hammerora最初是用以學習的目的:期望是模擬數據庫的一定數量的用戶。這樣一個小的基于家庭的學習開發系統就能夠比較接近產品環境。這個工具已經成長為一個Oracle數據庫做壓力測試--從小的數據庫到大的基于RAC的集群。TCL語言已經用來提供高性能的和Oracle數據庫的OCI集成,而無需重新編譯生成的程序。每個生成的程序具有嚴格的TCL/Oratcl兼容性,并且可以在Hammerora的命令行Shell下運行。TCL的強大功能和靈活性意味著潛在的功能是無窮盡的。TCL線程包用來實現對Oracle數據庫的多個并發連接。Hammerora包含Oracle存儲過程和TCL驅動腳本用來運行TPC-C基準程序。 但是,我們先要構建一個同TPC-C規范相符的數據庫。這樣,我們需要用到Orabm。OrabmOrabm是Geoff Ingram (High-Performance Oracle: Proven Methods forAchieving Optimum Performance and Availability一書的作者)構建的一個程序包,包含了一套SQL腳本和幾個命令行程序。Orabm數據裝載程序(Orabmload)構建了一組遵從TPC-C標準的數據用以測試。Orabm的程序包和源代碼可以從它的主頁面http://www.linxcel.co.uk/orabm/ 得到。Orabm的運行機制Orabm的運行機制在Geoff Ingram有明確的說明,這里翻譯如下:Orabm 通過在每個用戶指定的并發數據庫會話(session)中運行用戶執行數量的數據庫事務來進行工作.事務通過ORABM模式下的ORABM_SERVERSIDE_STRESS存儲過程運行.對每個并發會話來說,ORABM_SERVERSIDE_STRESS 運行在orabm命令行下指定的事務數,并返回該會話在采樣間隔完成時的TPS值.要確保所有并發會話都是在采樣間隔期間處理事務,TPS值僅包括事務的中間的80%,也即:初始的10%和最后的10%將忽略掉.更具體信息可以參考http://www.linxcel.co.uk/orabm/的內容.安裝步驟1 安裝Oracle OCI 庫對Oracle 9i 來說,假如沒有安裝該組件的話,可能要重新運行runInstall,在Oracle 9i Client prodUCts樹中選擇'Oracle Call Interfaces' . 對Oracle 10g來說,Oracle 10 OCI 庫應該是默認安裝的.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對10g來說,要編輯配置文件,在1728 行四周, FOUND_ORACLE=0 那一行的下面添加如下部分內容: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注:紅色部分為針對不同的數據庫版本需要做的調整.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創建 ORABM用戶(用TOOLS做默認表空間, TEMP 表空間為臨時表空間)sqlplus system/pwd @orabm_user2創建表sqlplus system/pwd @orabm_tab3裝載數據$orabmload Warehouses 14創建索引sqlplus system/pwd @orabm_ind5分析表和索引sqlplus system/pwd @orabm_analyze6創建壓力測試PL/SQL 過程sqlplus system/pwd @orabm_serverside_stress7把表和索引數據緩沖到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字符串,調整為你的數據庫用戶連接信息。 并調整虛擬用戶信息。測試運行 運行Hammerora,創建需要的用戶數, 來模擬TPC-C 基準程序(注重調整好執行Hammerora程序的環境變量,最好直接用Oracle用戶來執行). 下圖為筆者筆記本電腦上得到的數據[機器性能查了一點兒 :) ] :圖2: Hammerora測試結果示例參考信息http://hammerora.sourceforge.net/ Hammerora的主頁.當前的軟件版本是1.15.http://www.linxcel.co.uk/orabm/ Geoff Ingram維護的個人站點.該站點上還有一個很有趣的工具orastress.用來進行Oracle數據庫壓力測試.http://www.tpc.org TPC官方站點.http://www.cnoug.org/viewthread.PHP?tid=63技術高手RudolfLu很早以前就曾對orabm這個工具做過介紹.http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm Installing Oracle 10g on RHEL AS 3 Step-by-Step 本文作者Fenng,某美資公司DBA,業余時間混跡于各數據庫相關的技術論壇且樂此不疲。目前關注如何利用ORACLE數據庫有效地構建企業應用。對Oracle tuning、troubleshooting有一點研究。個人技術站點: http://www.dbanotes.net/。可以通過電子郵件 dbanotes@gmail.com 聯系到他。原文出處http://www.dbanotes.net/Oracle/Use_OpenSourceTool_implement_YourOwn_TPC-C.htm回首頁  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
標簽: Oracle 數據庫
主站蜘蛛池模板: 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 金蝶帐无忧|云代账软件|智能财税软件|会计代账公司专用软件 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 3A别墅漆/3A环保漆_广东美涂士建材股份有限公司【官网】 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | HYDAC过滤器,HYDAC滤芯,现货ATOS油泵,ATOS比例阀-东莞市广联自动化科技有限公司 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 充气膜专家-气膜馆-PTFE膜结构-ETFE膜结构-商业街膜结构-奥克金鼎 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 物流公司电话|附近物流公司电话上门取货 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 深圳市东信高科自动化设备有限公司| 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 天津散热器_天津暖气片_天津安尼威尔散热器制造有限公司 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 |