MYSQL教程之[Oracle]使用开源工具完成本人的TPC-C
关于这个理由我把它放在最后一位。在很多业界专家中有一个相当一致的观点:MySQL不能很好的扩展。关于这点可能有很大的分歧,争论的焦点主要集中于水平可扩展性和垂直可扩展性上。MySQL则更倾向于垂直可扩展性。oracleHowtoUseOpenSourceToolstoImplementYourOwnTPC-C
Fenng
日期:Mar142004(v0.13)
站点:Http://www.dbanotes.net
本文简介
先容怎样使用开源工具完成Oracle数据库情况中的TPC-C.对DBA、开辟职员、BI实行者有必定的参考代价.
弁言形貌
假想一下如许一种情形:
您正在卖力公司的一个OLTP范例的数据库项目,面对数据库服务器选型的成绩:怎样选择硬件才干满意产物情况的营业请求?这个事变是“拍脑壳”能决意的吗?
不成否定,硬件选型是一门艺术,选择符合的硬件,能给公司节俭年夜笔的用度,选择不克不及满意营业需求的服务器产物,不仅花了冤枉钱,还会对未来的营业发生影响。
大概人人起首会想到参考服务器的TPC-C的信息。提到TPC-C,大概良多人对此都感应既熟习又生疏,由于常常听人提及,可是详细的问下往,能说分明的又没有几人,并且,从人人口中失掉的还不尽不异。那末甚么是TPC/TPC-C这些都代表甚么意义呢?
甚么是TPC?
TPC(TransactionProcessingPerformanceCouncil,事件处置功能委员会)是一个非红利性的构造,其官方站点在http://www.tpc.org。其主旨是为了制订商务使用基准程序(Benchmark)的尺度标准,供应功能和代价器度,并办理测试了局的公布。在业界极为具有威望性。
TPC的基准程序的尺度标准(StandardSpecification)是对大众开放的,能够在官方站点上失掉,可是TPC却不供应基准程序的代码。任何软硬件厂商或别的测试者能够依据尺度标准,最优地构建本人待测的体系。为包管测试了局的客不雅性,被测试者(一般是厂家)必需提交给TPC一套完全的呈报(FullDisclosureReport),包含被测体系的具体设置、分类代价和包括五年保护用度在内的总代价。该呈报必需由TPC受权的考核员核实(TPC自己其实不做审计)。
甚么是tpmC?
先说一下TPC-C,TPC-C是联机事件处置(on-linetransactionprocessing,OLTP)的基准程序。TPC-C摹拟一个零售商的货品办理情况。TPC-C利用三种功能和代价器度,个中功能由TPC-C吞吐率权衡,单元是tpmC。tpm是transactionsperminute的简称;C指TPC中的C基准程序。它的界说是每分钟内体系处置的新定单个数。
懂得了这些内容,您大概会想:我们公司的PC服务器完整是本人攒出来的,怎样举行TPC-C的权衡的?也往参考TPC官方站点上的信息?不要忘了,TPC.org上发布的测试了局都是各年夜厂商依据本人的体系举行了充实优化以后的出来的了局。打个例如,TPC发布的数值就比如极新的法拉利跑车经由专业技师们的经心反省调养,然后在公用跑道上跑出来的速率值,而我们的情形多是法拉利(乃至是夏利)要在墟落土路下行驶,可比性年夜打扣头。
有的伴侣会想:那我们能够依据本人的情形,拿一个秒表在“墟落土路”上测试一下看看呀。如许的意义也是不言而喻的,对我们的实践的情况不是更具有参考代价?不错,这也恰是本文的目标:让我们使用开源(OpenSource)工具来完成本人的针对Oracle数据库的TPC-C。
Hammerora—TheOpenSourceOracleLoadTestTool
起首先容一下Hammerora。从创作者对这个工具的题目形貌能够看出,Hammerora是一款Oracle数据库负载测试工具。该工具能够在Oracle8i、9i和10g等版本上利用。
以后能够用在Linux/Unix和Windows上.开端完成了跨平台.Hammerora完整用TCL/TK写就,以GPL版权情势公布。作者是SteveShaw。
该项目标主页在:http://sourceforge.net/projects/hammerora/。
:Hammerora的Logo
Hammerora的计划道理是剖析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。
Orabm
Orabm是GeoffIngram(High-PerformanceOracle:ProvenMethodsfor
AchievingOptimumPerformanceandAvailability一书的作者)构建的一个程序包,包括了一套SQL剧本和几个命令路程序。Orabm数据装载程序(Orabmload)构建了一组服从TPC-C尺度的数据用以测试。Orabm的程序包和源代码能够从它的主页面http://www.linxcel.co.uk/orabm/失掉。
Orabm的运转机制
Orabm的运转机制在GeoffIngram有明白的申明,这里翻译以下:Orabm经由过程在每一个用户指定的并发数据库会话(session)中运转用户实行数目的数据库事件来举行事情.事件经由过程ORABM形式下的ORABM_SERVERSIDE_STRESS存储历程运转.
对每一个并发会话来讲,ORABM_SERVERSIDE_STRESS运转在orabm命令行下指定的事件数,并前往该会话在采样距离完成时的TPS值.要确保一切并发会话都是在采样距离时代处置事件,TPS值仅包含事件的两头的80%,也即:初始的10%和最初的10%将疏忽失落.
更具体信息能够参考http://www.linxcel.co.uk/orabm/的内容.
安装步骤
1安装OracleOCI库
对Oracle9i来讲,假如没有安装该组件的话,大概要从头运转runInstall,在Oracle9iClientproducts树当选择"OracleCallInterfaces".
对Oracle10g来讲,Oracle10OCI库应当是默许安装的.
2安装TCL
cd/usr/local/src/tcl8.4.5/unix
rm-fconfig.cache
./configure--enable-threads--enable-shared
makeclean
make
makeinstall
3安装TK
cd/usr/local/src/tk8.4.5/unix
rm-fconfig.cache
./configure--with-tcl=../../tcl8.4.5/unix--enable-threads--enable-shared
makeclean
make
makeinstall
4安装TCLThreads
cd/usr/local/src/thread2.5.2/unix
rm-fconfig.cache
sh../configure--enable-threads--enable-shared
makeclean
make
makeinstall
5安装Oratcl
对10g来讲,要编纂设置文件,在1728行四周,FOUND_ORACLE=0那一行的上面增加以下部份内容:
echo"checkingforOracle10.0styletoplevel(libclient10.a)"1>&6
echo"configure:1730:checkingforOracle10.0styletoplevel(libclient10.a)">&5
forfin$oracle_directory$oratest1$oratest2$oratest3$oracle4/opt/oracle/u/oracle/usr/oracle/usr/local/oracle;do
echo"$ac_t""lookingforlib/libclient10.ain$f"1>&6
iftest-r"$f/lib/libclient10.a";then
ORA="$f/lib"
ORACLE_HOME=$f
echo"$ac_t""settingORAto$ORA"1>&6
testver=10
ORA_MAJOR_VERSION=10
ORA_MINOR_VERSION=0
FOUND_ORACLE=1
break
fi
done
exportORACLE_HOME=your_oracle_home_directory
cd/usr/local/src/oratcl-4-1-branch/unixrm-fconfig.cache
sh../configure--with-tcl=../../tcl8.4.5/unix--with-oracle-directory=$ORACLE_HOME--with-oracle-version=9(or10or8!)--enable-threads--enable-shared
注:白色部分为针对分歧的数据库版本必要做的调剂.
viMakefile–把一切的-rpath改做-Wl,-rpath,
makeclean
make
makeinstall
sqlplusorabm/orabm@delivery_sp.sql
sqlplusorabm/orabm@new_order_sp.sql.
sqlplusorabm/orabm@ostat_sp.sql
sqlplusorabm/orabm@payment_sp.sql
sqlplusorabm/orabm@slev_sp.sql
步骤操纵
命令
1创立ORABM用户(用TOOLS做默许表空间,TEMP表空间为一时表空间)
sqlplussystem/pwd@orabm_user
2
创立表
sqlplussystem/pwd@orabm_tab
3
装载数据
$orabmloadWarehouses1
4
创立索引
sqlplussystem/pwd@orabm_ind
5
剖析表和索引
sqlplussystem/pwd@orabm_analyze
6
创立压力测试PL/SQL历程
sqlplussystem/pwd@orabm_serverside_stress
7
把表和索引数据缓冲到SGA
sqlplussystem/pwd@orabm_cache
把tpc-c.tcl剧本载进Hammerora中(remembertochangethefilefilterfrom*.trcto*.tcltoseeTCLfiles),在该tpc-c.tcl中查找connect字符串,调剂为你的数据库用户毗连信息。并调剂假造用户信息。
测试运转
运转Hammerora,创立必要的用户数,来摹拟TPC-C基准程序(注重调剂好实行Hammerora程序的情况变量,最好间接用Oracle用户来实行).下图为笔者条记本电脑上失掉的数据[呆板功能查了一点儿:)]:
:Hammerora测试了局示例
参考信息
http://hammerora.sourceforge.net/Hammerora的主页.以后的软件版本是1.15.
http://www.linxcel.co.uk/orabm/GeoffIngram保护的团体站点.该站点上另有一个很风趣的工具orastress.用来举行Oracle数据库压力测试.
http://www.tpc.orgTPC官方站点.
http://www.cnoug.org/viewthread.php?tid=63手艺妙手RudolfLu很早之前就曾对orabm这个工具做过先容.
http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htmInstallingOracle10gonRHELAS3Step-by-Step
本文作者
Fenng,某美资公司DBA,专业工夫混迹于各数据库相干的手艺论坛且乐此不疲。今朝存眷怎样使用ORACLE数据库无效地构建企业使用。对Oracletuning、troubleshooting有一点研讨。团体手艺站点:http://www.dbanotes.net/。能够经由过程电子邮件dbanotes@gmail.com接洽到他。
原文出处
http://www.dbanotes.net/Oracle/Use_OpenSourceTool_implement_YourOwn_TPC-C.htm
回想页
AllArticles(byFenng)arelicensedunderaCreativeCommonsLicense.
Iwouldwelcomeanyfeedback.Pleasesendquestions,commentsorcorrectionstodbanotes@gmail.com
一个相关的问题是第三方支持的资格问题,尽管直接来自厂商的支持和服务可以一定程度上减缓这个问题,但是,对于有的企业来说,通过强有力的本地化支持显然更有吸引力。 如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 呵呵,这就是偶想说的 索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。 一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。 语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的! 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 连做梦都在想页面结构是怎么样的,绝非虚言
页:
[1]