When we have 2 VMs configured for Oracle Single Instance database and we want to execute the HammerDB TPC-C benchmark from a single Client (Master) HammerDB to get the aggregate result from all slaves. How should we set up the HammerDB environment?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
HammerDB has moved here and will get a quicker response as it has more visibility https://github.com/TPC-Council/HammerDB. But to give a quick answer -what you are doing is very typical. By default the Oracle environment for Master/Slave is more focused to RAC so only the Master retrieves results - however if you want all of the Slaves to report in the EDITABLE OPTIONS section set "mode" to "Local" and then it will also run the monitor virtual user to time the test and capture results.
Steve
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for response. Sure i will create account and post queries on github forum.
For my setup here is the following : 2 VMs each configured with a single instance Oracle 19c database with a TPCC schema . Both VMs are clones hence the oracle SID etc is similar for both VMs. Both VMs are created on different storage inculding their datbase.
Once i setup the tnsnames.ora and listner.ora with load balance enabled. If i just invoke a HammerDB GUI (local mode) in client host and start test in local mode, the test runs hammerDB IO on both the nodes listed in tnsnames. In this case i get result only on the client machine which is fine.
If i set client machine as master and set hammerDB instance on VMs as slave. I create the driver script on master and the distribute script using master distribution button. In this case i see virtual users created on both slaves and master for the test. Slaves have /tmp/hammmerdb.log file created on them with results also being logged in them sometimes. When we add the result in both VMs (slaves) it doesnt match the result in the master. Is this behaviour expected?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Vikram,
Yes this is expected. The best way to think of the default Master/Slave mode is with Oracle RAC. One database with multiple instances - so the Master does the timing and the Slaves run against their target instances. It is not configured for the Master to gather all the Slave results. (However this is a good suggestion for a future enhancement).
If you have done the Mater Distribution you need to check the script for the line:
set mode "Local" ;# HammerDB operational mode
If you have distributed this will be Master in all so you need to change it manually. When this is set to Slave the monitor instance does not do any timing on the Slave - everything is captured on the Master. For multiple VMs it is best to set to set it to Local on the Slave - for your environment it is best to run a master on one VM - distribute and then change mode to Local. The results will be different as it is 2 different VMs and then you can add these manually.
Steve
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
When we have 2 VMs configured for Oracle Single Instance database and we want to execute the HammerDB TPC-C benchmark from a single Client (Master) HammerDB to get the aggregate result from all slaves. How should we set up the HammerDB environment?
Hi,
HammerDB has moved here and will get a quicker response as it has more visibility https://github.com/TPC-Council/HammerDB. But to give a quick answer -what you are doing is very typical. By default the Oracle environment for Master/Slave is more focused to RAC so only the Master retrieves results - however if you want all of the Slaves to report in the EDITABLE OPTIONS section set "mode" to "Local" and then it will also run the monitor virtual user to time the test and capture results.
Steve
Hi Steve,
Thanks for response. Sure i will create account and post queries on github forum.
For my setup here is the following : 2 VMs each configured with a single instance Oracle 19c database with a TPCC schema . Both VMs are clones hence the oracle SID etc is similar for both VMs. Both VMs are created on different storage inculding their datbase.
Once i setup the tnsnames.ora and listner.ora with load balance enabled. If i just invoke a HammerDB GUI (local mode) in client host and start test in local mode, the test runs hammerDB IO on both the nodes listed in tnsnames. In this case i get result only on the client machine which is fine.
If i set client machine as master and set hammerDB instance on VMs as slave. I create the driver script on master and the distribute script using master distribution button. In this case i see virtual users created on both slaves and master for the test. Slaves have /tmp/hammmerdb.log file created on them with results also being logged in them sometimes. When we add the result in both VMs (slaves) it doesnt match the result in the master. Is this behaviour expected?
Vikram,
Yes this is expected. The best way to think of the default Master/Slave mode is with Oracle RAC. One database with multiple instances - so the Master does the timing and the Slaves run against their target instances. It is not configured for the Master to gather all the Slave results. (However this is a good suggestion for a future enhancement).
If you have done the Mater Distribution you need to check the script for the line:
set mode "Local" ;# HammerDB operational mode
If you have distributed this will be Master in all so you need to change it manually. When this is set to Slave the monitor instance does not do any timing on the Slave - everything is captured on the Master. For multiple VMs it is best to set to set it to Local on the Slave - for your environment it is best to run a master on one VM - distribute and then change mode to Local. The results will be different as it is 2 different VMs and then you can add these manually.
Steve