使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能)
1.Swingbench 简介
Swingbench 是一个免费负载生成器(和基准测试),旨在对 Oracle 数据库
进行压力测试。目前最新版本 Swingbench 2.6。
SwingBench 由负载生成器,协调器和集群概述组成。该软件可以生成负载
并绘制交易/响应时间图表。
Swingbench 可用于演示和测试技术,例如实际应用程序集群,在线表重建,备用数据库,在线备份和恢复等。SwingBench 附带的代码包括 6 个基准,OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle 和
StressTest …整个框架是用 Java 开发的,因此可以在各种平台上运行。
要运行 swingbench,必须在客户端平台上安装 Java 虚拟机(JVM)。JVM 必须至少为 Java 8 或更高版本。尽管 Swingbench 附带了最新的 jdbc 库,这意味着它可以在不需要任何其他库的情况下针对 Oracle 数据库运行,但如果需要,则有必要安装 Oracle OCI 库。这些可以在这里下载:
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
Swingbench 下载地址:http://www.dominicgiles.com/downloads.html

2.Swingbench 在windows上的使用
首先在作者网站上下载最新的2.6版本,文件名swingbenchlatest.zip,大小为27.6M左右
解压在D:\swingbench

2.2 安装 JDK
因 为 运 行 这 个 软 件 需 要 java8 支 持 , 我 这 里 安 装 的 是
jdk-8u221-windows-x64.exe,然后配置好 Java 的环境变量。
主要配置 JAVA_HOME 和 Path。
如下图:

2.3 创建测试数据
在 windows 上运行 swingbench\winbin 下的 oewizard 2.bat 脚本,create
the order entry 创建测试数据,connect string 的格式为//oracle 数据库
所在主机的 IP 地址/oracle 数据库的实例名,如:“//192.168.16.215/xe”。
一步一步走,根据情况选择测试数据的大小,可以选较小的 1G 测试数据,注意需要提供一个具有 DBA 权限的用户。
2.3.1运行oewizard脚本
D:\swingbench>cd winbin
D:\swingbench\winbin>"oewizard 2.bat"


2.3.2选择安装版本(version2)
选择Version2.0

2.3.3创建测试的用户和表空间


指定Oracle数据的IP和实例名: //IP/实例名
2.3.4数据库参数设置
远程连接到数据库,创建用户,表空间,选择数据文件的位置。


数据库参数说明:
partitioning Model 分区模型
No partitioning
Hash partitioning
Compression Used 使用的压缩
No Compression
Advnced Compression
Tablespace Type 表空间类
Normal Tablespace
Bigfile Tablespace
Indexing Used 使用的索引
No Indexes
Primary Keys Only
All Indexes

我这里设置的较小的1G测试数据,等待大约十几分钟,如果实际情况可以根据需要选择。
2.3.5设置并发数
选择并行度,如果系统性能高的话可以适量增加。

2.3.6开始执行


Wizard Log日志窗口可以save of File保存一下,然后关闭,然后就等想到完成了。


2.3.7执行完成
执行时间较长,等待执行完成后点击OK,保存生成的文件,关闭程序。

2.4 运行基准测试
运行D:\swingbench\winbin\swingbench.bat脚本,进行压力测试


2.4.1选择基准测试

2.4.2 配置截图

设置一下数据库的用户名和密码,数据库的IP和实例名,设置好测试并发用户数。
2.4.3配置Distributed Controls
如果不进行配置,无法监控到CPU和磁盘等信息

配置IP,管理员用户,密码以及ssh的端口号。
2.4.4 运行测试
点击上方的运行按钮执行


3 Swingbench 在CentOS上的使用
1.对应的CentOS7有安装桌面环境
2.在作者网站上下载最新的2.6版本,文件名swingbenchlatest.zip,大小为27.6M左右。
3.把zip压缩包上传到Linux上的/opt目录
3.1 解压缩swingbenchlatest.zip
解压在/opt/swingbench
# cd /opt
# unzip swingbenchlatest.zip

3.2卸载CentOS7自带的OpenJDK
3.2.1查看安装的jdk
# rpm -qa |grep jdk
[root@host ~]# rpm -qa |grep jdk
java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch

3.2.2依次卸载
根据查询结果依次删除
# rpm -e java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64 --nodeps
# rpm -e java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64 --nodeps
# rpm -e java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 --nodeps
# rpm -e java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64 --nodeps
# rpm -e copy-jdk-configs-3.3-10.el7_5.noarch --nodeps


3.3 安装JDK
因为运行这个软件需要java8支持,我这里安装的是jdk-8u211-linux-x64.tar.gz,然后配置好Java的环境变量。
我这里统一放在 /opt目录下
3.3.1解压jdk-8u211-linux-x64.tar.gz
# cd /opt
# tar -zxvf jdk-8u211-linux-x64.tar.gz

3.3.2配置Java环境变量
vi /etc/profile
在最后增加
# ------jdk---------
export JAVA_HOME=/opt/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin

3.3.3让配置生效
# source /etc/profile

3.4创建测试数据
在Linux上运行swingbench/bin下的oewizard t脚本,create the order entry创建测试数据,connect string的格式为//oracle数据库所在主机的IP地址/oracle数据库的实例名,如:“//172.23.1.100/orcl”。一步一步走,根据情况选择测试数据的大小,可以选较小的1G测试数据,注意需要提供一个具有DBA权限的用户。
3.4.1运行oewizard脚本
# cd /opt/swingbench/bin
# ./oewizard
提示:如果不在桌面环境会报错

切换到桌面环境

在桌面打开控制台(终端),切换到root用户
$ su –
# cd /opt/swingbench/bin
# ./oewizard


3.4.2选择安装版本(version2)

3.4.3创建测试的用户和表空间





3.4.4数据库参数设置


我这里设置的较小的1G测试数据,等待大约十几分钟,如果实际情况可以根据需要选择。
3.4.5设置并发数
选择并行度,如果系统性能高的话可以适量增加。

3.4.6开始执行


3.4.7执行完成

执行时间较长,等待执行完成后点击OK,保存生成的文件,关闭程序。
3.5运行基准测试
运行/opt/swingbench/bin/swingbench脚本,进行压力测试


3.5.1选择基准测试


3.5.2配置截图

3.5.3配置Distributed Controls
如果不进行配置,无法监控到CPU和磁盘等信息, 配置Linux的IP,管理员用户,密码以及ssh的端口号。

4 Oracle数据库时间监控
数据库时间监控是一个独立的工具,可以监控Oracle应用程序的运行情况。这个工具也是使用Java来开发的,所以需要安装好Oracle JDK,这里我就不用多说了,可以查看上面的文档。
下载地址: http://www.dominicgiles.com/downloads.html
4.1下载解压缩
1.下载的文件名dbtimemonitor16Aug2018.zip,大小为16.2M左右。
2.把zip压缩包上传到Linux上的/opt目录并解压缩。
# cd /opt
# unzip dbtimemonitor16Aug2018.zip

4.2修改配置databases.xml文件
在其中添加数据库的配置,指定数据库管理员和密码,以及oracle数据库的IP和实例。
<MonitoredDatabase><ConnectString>//172.23.1.100/orcl</ConnectString><Comment>Test ERP System</Comment><Username>system</Username><Password>password</Password></MonitoredDatabase>
</WaitMonitor>

4.3切换到桌面环境运行
需要使用root管理员运行
$ su -
# cd /opt/dbtimemonitor/bin/
# ./dbtimemonitor


相关文章:
使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能)
1.Swingbench 简介 Swingbench 是一个免费负载生成器(和基准测试),旨在对 Oracle 数据库 进行压力测试。目前最新版本 Swingbench 2.6。 SwingBench 由负载生成器,协调器和集群概述组成。该软件可以生成负载 并绘制交易/响应时间…...
【预告】ORACLE Primavera P6 v22.12 虚拟机发布
引言 离ORACLE Primavera P6 EPPM最新系统 v22.12已过去了3个多月,应盆友需要,也为方便大家体验,我近日将构建最新的P6的虚拟环境,届时将分享给大家,最终可通过VMWare vsphere (esxi) / workstation 或Oracle virtua…...
机器学习100天(四十):040 线性支持向量机-公式推导
《机器学习100天》完整目录:目录 机器学习 100 天,今天讲的是:线性支持向量机-公式推导! 首先来看这样一个问题,在二维平面上需要找到一条直线划分正类和负类。 我们找到了 A、B、C 三条直线。这三条直线都能正确分类所有训练样本。但是,哪条直线最好呢?直观上来看,我…...
失败经验之震荡玩家往往死于趋势市场
亏损,是从去年开始的吧。 尤其是去年,仅仅一年,就亏掉了自从交易以来的所有盈利。 现在,我甚至不敢去计算具体的亏损金额。 保守估计,已经亏损100万左右。 现在回想,似乎也是必然。 交易本来就是一个走…...
应用层与传输层~
文章目录应用层自定义应用层协议什么是自定义应用层协议自定义方式运输层运输层概述运输层特点运输层协议UDP协议UDP的特点UDP首部格式校验规则TCP协议TCP的特点TCP协议段格式TCP的性质确认序号超时重传连接管理三次握手四次挥手TCP的状态滑动窗口流量控制拥塞控制延迟应答捎带…...
IO文件操作
认识文件 狭义的文件 存储在硬盘上的数据,以“文件"为单位,进行组织 常见的就是普通的文件 (文本文件,图片, office系列,视频,音频可执行程序…)文件夹也叫做"目录" 也是一种特殊的文件。 广义的文件 操作系统,是要负责管理软硬件资源,操作系统(…...
【构建工具】webpack 3、4 升级指南,摆脱低版本的困扰
一、依赖处理 1.升级通用依赖 借用 ncu 库实现,帮你改写需要升级的package.json 然后再 npm install ncu -u <packages> # 可以指定依赖 ncu # 升级全部依赖大概列了下升级的效果 add-asset-html-webpack-plugin ^2.1.3 → ^5.0.2 clean-webpack-…...
Javaweb第一个项目——实现简单的登陆功能
第一步:打开idea-->文件-->新建 第二步: 在Demo文件夹 点击右键-->添加框架支持-->找到Web应用程序 勾选 第三步:配置Tomcat 第四步:新建一个lib(建在web-INF文件夹下)文件夹 用于存放jar包…...
OpenKruise 开发者不容错过的带薪实习机会!马上加入 LFX Mentorship 计划
LFX Mentorship 计划由 Linux Foundation 组织发起,为像 OpenKruise 这样的 CNCF 托管项目提供了激励开源贡献、扶植社区发展的优秀土壤。参与其中的开发者不仅有机会在经验丰富的社区 Mentor 指导下贡献开源项目、为职业生涯加分,完成工作后还能获得 $3…...
《c++ primer笔记》第八章 IO库
前言 简单看一下就行 文章目录一、IO类1.1基本概念1.2管理输出缓冲二、文件输入输出2.1文件模式三、string流3.1istringstream3.2ostringstream一、IO类 1.1基本概念 我们常见的流有istream和ostream,这两个流都是有关输入和输出的,此外,…...
web开发 用idea创建一个新项目
这个写着就是给自己当备忘录用的QAQ 这个老师上课一通操作啥也没看清…卑微搞了半天看样子是成功了 记录一下省的以后忘了怎么创建(? zufe lxy 2023.3 先行条件是已经自己装好了Tomcat和idea!!(我的idea是申请了教育…...
【FMCW 03】测速
从上一讲 测距 末尾的frame讲起。我们知道一个chirp对应了一个采样后的IF信号,我们将这些采样后的IF信号按chirp的次序排列成一个帧(frame),这就得到了我们实际中接收后处理的FMCW信号。 由于chirp的发射返回时间很短,…...
ERP(企业资源管理)概述
🌟所属专栏:ERP企业资源管理🐔作者简介:rchjr——五带信管菜只因一枚😮前言:该系列将持续更新ERP的相关学习笔记,欢迎和我一样的小白订阅,一起学习共同进步~👉文章简介&a…...
深入理解java虚拟机精华总结:性能监控和故障处理工具、类加载机制
深入理解java虚拟机精华总结:性能监控和故障处理工具、类加载机制性能监控和故障处理工具、类加载机制jpsjstatjinfojmapjhatjstackVisualVM类加载机制类加载的时机类加载的过程加载验证准备解析初始化类加载器类与类加载器双亲委派模型破坏双亲委派模型往期内容&am…...
推荐系统与推荐算法
文章目录第一章1.1推荐系统意义与价值1.2推荐系统历史与框架1.3推荐算法分类第二章2.1协同过滤的基本思想与分类2.2基于用户的协同过滤2.3基于项目的协同过滤2.4基于邻域的评分预测2.5基于二部图的协同过滤第三章3.1基于关联规则的推荐3.2基于矩阵分解的评分预测3.3概率矩阵分解…...
socket 编程实战(编写客户端程序 )
编写客户端程序 接着上一篇:实战服务端程序 接下来我们再编写一个简单地客户端应用程序,客户端的功能是连接上小节所实现的服务器,连接成功之后向服务器发送数据,发送的数据由用户输入。示例代码如下所示: #include…...
“巨亏成名”的魔鬼交易员,你知道几个?
谁说在期货市场上只有赚大钱才能出名?殊不知还有这样一群特殊的交易员靠着巨额亏损而“一战成名”,亏得是老东家元气大伤,外号“魔鬼交易员”——“不亏不成魔”!接下来火象就给大家盘点几位代表性魔鬼交易员,看看他们…...
1380:分糖果(candy)
1380:分糖果(candy) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 童年的我们,将和朋友分享美好的事物作为自己的快乐。这天,C小朋友得到了Plenty of candies,将要把这些糖果分给要好的朋友们。已知糖果从一个人传…...
数据挖掘(2.1)--数据预处理
一、基础知识 1.数据的基本概念 1.1基础知识 数据是数据对象(Data Objects)及其属性(Attributes)的集合。 数据对象(一条记录、一个实体、一个案例、一个样本等)是对一个事物或者物理对象的描述。 数据对象的属性则是这个对象的性质或特征,例如一个人的肤色、眼球…...
PMP考前冲刺3.06 | 2023新征程,一举拿证
题目1-2:1.一名团队成员表示,他们的用户故事要等到迭代结束后才能完成,因为他们的职能经理要求他们协助解决高优先级的生产问题。项目经理应该做什么?A.将问题上报给项目发起人以解决和调整项目燃尽图B.与产品负责人讨论用户故事不…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
