本文目的:将mysql与oracle分别安装在本地Linux磁盘上,与安装在ceph rbd块上做基础的性能对比。因图片较多。没有上传所有图片。若是有兴趣的可以与我联系。
一、测试工具
Oracle:loadrunner11
Mysql :? sysbench
二、基本方法
在不涉及任何具体业务系统,单纯对比数据库装在本地与装在集群rbd上的基本测试数据。
Oracle12c :在本地服务器上安装后,通过loadrunner往数据库一个表中持续写1个小时的数据测试出基本的每秒事务处理数,以及每个事物的相应时间。然后将oracle安装在集群rbd上并持续写1个小时的数据,对比2者的tps(每秒事务处理数),response(事务相应时间)。
Mysql? :在本地安装后,通过sysbench往数据库表中写100W条数据,取耗时和每秒事务数。然后与安装在集群rbd上的数据做对比。
三、测试环境
本地服务器:CPU Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz 内存32G
集群:2节点
Rbd客户端:CPU Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz 内存32G
四、测试步骤
a、本地服务器测试
?????? 1、oracle12c
安装步骤(省略)
本地服务器挂载独立磁盘,安装oracle12c,安装选择OLTP且选择内存自动管理。Win8客户端安装oracle11g win32的客户端(安装过程省略)。
在oracle服务端配置监听文件listener.ora
[root@one ~]# cd /u01/app/oracle/product/12.1.0/db_1/network/admin/
[root@one admin]# cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORA12C)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/db_1)
(SID_NAME = ora12c)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.241)(PORT = 1521))
)
)
在win8客户端配置tnsnames
进入到客户端安装目录D:\app\zhang\product\11.2.0\client_1\network\admin
编辑tnsnames.ora文件
CONN241 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.241)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora12c)
)
)
注意格式,CONN241位服务端解析到本地的服务名,ora12c为数据库实例名。Ip为oracle服务端Ip地址.
Win8客户端配置环境变量
验证客户端连接远程oracle数据库
![]()
至此win8本地客户端连接远程oracle12c服务端配置成功。接下来安装测试软件loadrunner。
安装测试工具LD
安装过程省略 loadrunner11 。下载后,请下载破解工具 严格按照操作说明导入global-100 的序列号。
配置LD并测试
1、创建测试脚本
2、创建
3、严格按照下列设置
![]()
4、开始录制脚本
![]()
输入用户名跟密码。在安装数据库后创建的表test中插入一条数据,commit,quit.完成录制后,会生成脚本。这里我们把脚本修改调整一下:
![]()
红框中为在原来基础上增加的内容,并删掉所有的等待时间行lr_think_time所有
4、保存该脚本
点击保存,我这里保存到桌面,文件名为abc。
5、运行测试
![]()
选择之前保存的脚本abc
![]()
最终改成如下:
一个用户往数据库表中写数据,持续写1个小时。完成后取值。作为基本参考。
6、开始测试
7、持续写1个小时并取值
![]()
取最终结果值 tps:14.099?? response:0.002
?????? 2、mysql
安装步骤
进官网下载安装包,解压并安装。
官网安装步骤http://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html
验证登入
Mysql新版增加了密码复杂度插件。必须修改密码达到条件。才能操作数据库。
安装sysbench
下载sysbench
因为mysql是默认安装的,所有直接configure.否则需要执行mysqllib库文件
Make? &&? make install
Syebench测试
1、 准备100W的测试数据
2、开始测试
3、清除测试数据
结果:每秒事务数:68.24? 共执行时间146秒。
b、集群fuse挂载使用
集群环境:243 244 2台节点。创建1000G的rbd,通过iscsi挂载出去。
1、oracle12c测试
本地fuse挂载集群
安装oracle12c
剩下的省略。。。。。
Oracle配置监听
在win8客户端配置tnsnames
进入到客户端安装目录D:\app\zhang\product\11.2.0\client_1\network\admin
编辑tnsnames.ora文件
CONN241new =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.241)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora12c)
)
)
注意格式,CONN241位服务端解析到本地的服务名,ora12c为数据库实例名。Ip为oracle服务端Ip地址.
Win8客户端配置环境变量
配置客户端连接远程oracle数据库
Tnsnames.ora文件
验证客户端连接并写数据测试
至此win8本地客户端连接远程oracle12c服务端配置成功。接下来安装测试软件loadrunner。
运行loadrunner测试
选择之前保存的脚本abc
最终改成如下:
一个用户往数据库表中写数据,持续写1个小时。完成后取值。作为基本参考。
开始测试
持续写1个小时并取值
取最终结果值 tps:5.175?? response:0.005
2、 Mysql测试
更改mysql安装路径到集群目录
在集群挂载点创建mysql数据存储目录,并修改mysql权限。
重新安装mysql到集群挂载点
启动mysql并查看是否安装在集群挂载点
可以看到数据库重新安装到集群挂载点成功。
Syebench测试
1、 准备100W的测试数据
修改默认密码(默认为空,现在设置为123456)
准备1000000条数据
2、开始测试
观察集群容量是在增加
3、清除测试数据
结果:每秒事务数187,耗时53秒。
五、总结
本次测试只是对比数据库mysql与oracle安装在本地服务器上与安装在集群挂载目录时的每秒事务处理数(tps)。没有任何的业务系统,都是空数据库。Oracle对比一个用户持续写(loadrunner)1个小时的值。Mysql对比一个用户写100W(sysbench)条数据值。
| |
|
Sysbench |
Loadrunner |
| |
|
每秒事务数 |
共耗时 |
每秒事务数
(tps) |
事物相应时间
(response) |
| Mysql5.1 |
本地服务器 |
68 |
146s |
|
|
| 集群挂载点 |
187 |
53s |
|
|
| Oracle12c |
本地服务器 |
|
|
14.099 |
0.002 |
| 集群挂载点 |
|
|
5.175 |
0.005 |
Oracle12c 本地测试持续写1个小时较集群持续写1个小时tps值快近3倍。
Mysql 集群写100W条数据较本地写100W条数据tps值快近3倍。
具体的数据库性能测试得结合实际应用业务系统,与需求。