使用BenchMarkSQL测试openGauss

作者:李强

Email:liqiang3@sugon.com

版本:1.0 2020-07-14 初稿

BenchmarkSQL是对OLTP数据库主流测试标准TPC-C的开源实现。目前最新版本为V5.0,该版本自带支持Firebird,Oracle和PostgreSQL数据库,测试结果详细信息存储在CSV文件中,并可以将结果转换为HTML报告。

本手册将介绍,如何对BenchMarkSQL 5.0进行改造,使其可以测试openGauss。

1. openGauss配置

首先配置openGauss数据库,创建测试所需的用户、数据库,并完成远程连接配置。

1.1 数据库信息

以曙光openGauss测试环境为例。

  • IP:192.168.5.1
  • Port:26000
  • DB_HOME:/opt/huawei/install/data/db1

1.2 创建新用户

创建远程连接用户sugon,并授予SYSADMIN管理员权限。

su - omm

postgres=# CREATE USER sugon PASSWORD 'Sugon2020';

postgres=# ALTER USER sugon SYSADMIN;

1.3 创建新数据库

新建表空间和数据库。

postgres=#  create tablespace sugondb relative location 'sugondb';

postgres=#  create database sugondb with tablespace=sugondb;

1.4 配置远程连接

使用gs_guc添加客户端访问验证。本次测试BenchMarkSQL测试软件放在openGauss本机,故客户端IP与数据库服务器IP相同。

配置完成后,使用gsql进行访问验证。

gs_guc set -N all -I all -h "host sugondb sugon 192.168.5.1/32 sha256"

gsql -h 192.168.5.1 -p 26000 -Usugon -W Sugon2020 -d sugondb

2. BenchMarkSQL配置

调整BenchMarkSQL配置,完成对openGauss的测试工具。

2.1 下载并上传BenchMarkSQL

下载BenchMarkSQL源码包,并上传和解压。

  • 下载地址:https://sourceforge.net/projects/benchmarksql/

mkdir /opt/software/ && cd /opt/software/

rz  # 上传benchmarksql-5.0.zip

yum install -y unzip

unzip benchmarksql-5.0.zip

2.2 修改源代码

BenchMarkSQL默认并不支持Firebird,Oracle和PostgreSQL之外的数据库,需要添加openGauss的相关信息,否则执行测试时会检查报错。

cd /opt/software/benchmarksql-5.0/src/client

vi jTPCC.java

/oracle

找到程序支持的数据库列表,复制并添加opengauss相关内容,使其支持opengauss。

2.3 安装编译软件包

BenchMarkSQL需要安装java依赖包和ant编译包。

yum install -y java ant

java -version

ant -version

Java版本需大于JDK7,即>1.7.0。

2.4 编译

进程benchmarksql-5.0目录,使用ant完成编译。

cd /opt/software/benchmarksql-5.0

ant

2.5 下载并上传openGauss JDBC驱动

BenchMarkSQL使用JDBC驱动包,连续各种数据库,故需要下载openGauss的JDBC驱动包。

  • 下载地址:https://opengauss.org/zh/download.html

下载JDBC centos_x86_64版。

上传openGauss-1.0.0-JDBC.tar.gz到benchmarksql-5.0/lib路径,并解压。

cd /opt/software/benchmarksql-5.0/lib

tar -xvzf openGauss-1.0.0-JDBC.tar.gz

mkdir opengauss

mv postgresql.jar opengauss/

打开https://opengauss.org/zh/docs/1.0.0/docs/Developerguide/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%8E%A5%E5%8F%A3.html

找到驱动类名称:org.postgresql.Driver

打开https://opengauss.org/zh/docs/1.0.0/docs/Developerguide/%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93-0.html

找到openGauss的JDBC连接字符串格式:jdbc:postgresql://host:port/database

2.6 创建openGauss的props文件

Props.*为BenchMarkSQL的测试配置文件,在生成测试数据和执行测试时,BenchMarkSQL都会使用该文件。

可复制已有的props.*模板,修改为可用于openGauss的配置文件。

cd /opt/software /benchmarksql-5.0/run

cp props.ora props.opengauss

vi props.opengauss

# 修改连接信息

db=opengauss

driver=org.postgresql.Driver

conn=jdbc:postgresql://192.168.5.1:26000/sugondb

user=sugon

password=Sugon2020

# 修改OS监控的网卡和磁盘

osCollectorDevices=net_ens192 blk_sdb

后期可根据测试场景调整更多参数。

2.7 修改funcs.sh文件

在benchmarksql-5.0/run/ funcs.sh文件中添加openGauss的JDBC路径和DB类型检查项。

vi funcs.sh

# 添加openGauss的JDBC路径

opengauss)

cp="../lib/opengauss/*:../lib/*"

;;

2.8 修改runDatabaseBuild.sh文件

因openGauss暂不支持FOREIGN KEY和SEQUNCE,需要删除数据生成后的外键和序列操作。

cd /opt/software/benchmarksql-5.0/run

vi runDatabaseBuild.sh

#AFTER_LOAD="indexCreates foreignKeys extraHistID buildFinish"

AFTER_LOAD="indexCreates buildFinish"

复制AFTER_LOAD=行,注释掉原行。新行中删除foreignKeys和 extraHistID。

2.9 创建测试环境

使用runDatabaseBuild.sh脚本,生成测试数据。

cd /opt/software/benchmarksql-5.0/run

./runDatabaseBuild.sh props.opengauss

2.10 检查确认

使用sugon用户登录,检查测试表是否已经创建。

su - omm

gsql -h 192.168.5.1 -p 26000 -Usugon -W Sugon2020 -d sugondb

sugondb=> select tablename,tableowner,created from pg_tables where schemaname='public';

确认bmsql_*相关测试表都已创建。

2.11 执行测试

使用./runBenchmark.sh脚本执行测试,得出TPMC值。

./runBenchmark.sh props.opengauss

使用BenchMarkSQL测试openGauss相关推荐

  1. BenchmarkSQL 测试Oracle 12c TPC-C 性能

    使用BenchmarkSQL测试一下Oracle 12c的TPC-C性能,同时对比一下PostgreSQL 9.5的性能. 测试机: 3 * PCI-E SSD,逻辑卷条带,XFS,数据块对齐,16核 ...

  2. postgresql测试题_使用BenchmarkSQL测试PostgreSQL

    BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB.PostgreSQL.MySQL.Oracle以及SQL Server等数据库直接进行测 ...

  3. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  4. 手把手系列:(一)用Benchmarksql测试Oracle数据库性能

    os 环境: Oracle linux /Oracle 12C RAC(搭建rac集群请参考这里),oracle12c数据库 从 sourceforge 下载Benchmarksql 5.0: htt ...

  5. benchmarksql测试mysql_使用benchmarkSQL测试数据库的TPCC

    压力测试是指在MySQL上线前,需要进行大量的压力测试,从而达到交付的标准.压力测试不仅可以测试MySQL服务的稳定性,还可以测试出MySQL和系统的瓶颈. TPCC测试:Transaction Pr ...

  6. BenchmarkSQL测试工具 对 DM 达梦单机数据库进行tpcc测试

    1 下载BenchmarkSQL 自行去官网下载 ,此处不贴下载链接: 略 : 自行去官网下载 ,个人实验用的是5.0版本 上传到到DM服务器并解压缩 [dmdba@centos benchmarks ...

  7. benchmarksql测试mysql_web安全(一):sql注入详解

    SQL 注入分类方式: 提交方式:GET POST COOKIE参数注入:数字型/字符型/搜索型数据库类型:ACCESS/Mysql/MSSQL/Oracle手工注入方法:联合查询.报错注入.盲注(基 ...

  8. 服务器 解决方案_为什么无服务器解决方案不安全?

    服务器 解决方案 In recent years, the growth of Serverless has been monumental. More and more organisations ...

  9. 如何成为Web开发人员—编写第一个Web应用程序

    Where to begin? This is perhaps the most common question asked by all newcomers to IT. There are so ...

最新文章

  1. 【BZOJ】1045: [HAOI2008]糖果传递(中位数)
  2. 基于 RT-Thread的麦克纳姆轮小车循迹运动控制算法开发和研究
  3. 《设计团队协作权威指南》—第1章1.3节甘为螺丝钉
  4. linux网络编程之一般应用采用的协议和不同套接字的地址结构以及用户进程和内核通过哪些函数传递套接字的地址结构
  5. python 3.7.732位安装步骤_Python3.7安装pyaudio教程解析
  6. 比特币未来几个月怎么样_您需要了解的关于比特币技术的未来
  7. [常用知识]如何在Eclipse、myEclipse中分别配置Tomcat和JBoss应用服务器
  8. 【Codeforces 1114C】Trailing Loves (or L'oeufs?)
  9. Maven安装配置及在idea中配置
  10. 罗技无法使用计算机上的配置文件,Win10专业版罗技无线鼠标无法使用咋办?
  11. 一些常用单位之间的换算
  12. 金碟财务软找不到服务器怎么办,金蝶财务软件KIS标准版客户端连接不上服务器解决办法.pdf...
  13. python 相关系数矩阵_用numpy计算Pearson相关系数
  14. TIMESTAMP和DATETIME的区别以及选择
  15. 磊科路由器信号按键_超简单的磊科路由器重置方法
  16. mysql 1055 - Expression 解决
  17. 0926 - 微商的动力
  18. matlab求x对应y值,matlab 不知道函数表达式,已知y值求x
  19. 计算机为什么会出现网络用户,电脑登陆QQ经常提示异地登陆是怎么回事?
  20. 虚拟主机安装php网站教程,虚拟主机简单安装wordpress教程

热门文章

  1. 区块链学习2——区块链浏览器的搭建
  2. 教你炒股票25:每日解盘
  3. 114.114.114.114和8.8.8.8,哪个DNS好?
  4. Win10 安装NASM
  5. VScode配置C++环境
  6. mac MySql 重启
  7. 一万八的M1 iPad Pro ,怎么就成了“期货”
  8. 浮点数切分 C++
  9. linux插网卡不能识别,linux-解决添加的网卡无法识别的问题
  10. python相关性分析模型,相关性分析原理及Python实战