參考鏈接:https://blog.csdn.net/fuqiangnxn/article/details/98758707
https://www.jianshu.com/p/622545cb1341
要求:安裝jdk7及以上版本
安裝apache-ant(在官網上下載apache-ant-xxx.bin.zip,解壓,然後將bin目錄添加進環境變量PATH中)
1.在官網上下載benchmarksql 5.0
2.解壓,修改源碼,使其支持達夢數據庫
修改benchmarksql-5.0/src/client下的jTPCC.java,增加dm相關部分
if (iDB.equals("firebird"))
dbType = DB_FIREBIRD;
else if (iDB.equals("oracle"))
dbType = DB_ORACLE;
else if (iDB.equals("postgres"))
dbType = DB_POSTGRES;
else if (iDB.equals("dm"))
dbType = DB_UNKNOWN;
else
{
log.error("unknown database type '" + iDB + "'");
return;
}
3. 創建數據庫實例,並在其中創建BENCHMARK用戶,授予DBA權限
4. 使用ant編譯源碼。直接進加壓後的benchmarksql目錄下,執行ant即可
5. 在run目錄下根據其它數據庫的props文件創建達夢的props.dm
//前面一部分修改如下,後面的暫時沒改
db=dm
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://localhost:5236
user=BENCHMARK
password=BENCHMARK
6. 修改benchmarksql-5.0/run下的funcs.sh,添加dm數據庫類型
在benchmarksql-5.0/lib目錄下創建一個dm目錄,將對應的jdbc驅動拷貝至該目錄下,然後修改funcs.sh文件
function setCP()
{
case "$(getProp db)" in
firebird)
cp="../lib/firebird/*:../lib/*"
;;
oracle)
cp="../lib/oracle/*"
if [ ! -z "${ORACLE_HOME}" -a -d ${ORACLE_HOME}/lib ] ; then
cp="${cp}:${ORACLE_HOME}/lib/*"
fi
cp="${cp}:../lib/*"
;;
postgres)
cp="../lib/postgres/*:../lib/*"
;;
dm)
cp="../lib/dm/*:../lib/*"
;;
esac
myCP=".:${cp}:../dist/*"
export myCP
case "$(getProp db)" in
firebird|oracle|postgres|dm)
;;
"") echo "ERROR: missing db= config option in ${PROPS}" >&2
exit 1
;;
*) echo "ERROR: unsupported database type 'db=$(getProp db)' in ${PROPS}" >&2
exit 1
;;
esac
7. 修改benchmarksql-5.0/run/runDatabaseBuild.sh,去掉AFTER_LOAD中的extraHistID
8. 構建測試環境,在benchmarksql-5.0/run目錄下執行
./runDatabaseBuild.sh props.dm
9. 開始測試TPC-C,在benchmarksql-5.0/run目錄下執行
./runBenchmark.sh props.dm
在測試之前,可以修改props.dm中的runTxnsPerTerminal=0,runMins=20
測試完成後會在benchmarksql-5.0/run目錄下生成一個my_result_+日期的文件夾
10. 生成結果報告,在benchmarksql-5.0/run目錄下執行
./generateReport.sh my_result_2020-04-02_030832
注意:執行這個命令之前需要先安裝R語言。
yum -y install R
這篇文章只是單純的讓benchmarksql5.0能夠在達夢數據庫上測試TPC-C,關於提升性能方面的一些配置,如修改ini參數、創建適合達夢的索引、修改建表語句以提升性能等均不涉及。