Skip to content

Commit 032d71f

Browse files
committed
Clean up installer and run scripts
1 parent 91449a3 commit 032d71f

File tree

2 files changed

+324
-384
lines changed

2 files changed

+324
-384
lines changed

hammerdb/install-script

Lines changed: 93 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
#
2121
# Script to set the system up for running hammerdb.
2222
#
23-
disks=none
24-
mountpoint=none
25-
db_type=none
26-
log_mount_point="none"
23+
disks=
24+
mountpoint=
25+
db_type=
26+
log_mount_point=
2727

2828
install_mssql()
2929
{
@@ -32,50 +32,50 @@ install_mssql()
3232
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
3333
yum -y remove unixODBC-utf16 unixODBC-utf16-devel
3434
ACCEPT_EULA=Y yum install -y mssql-tools unixODBC-devel
35+
# shellcheck disable=SC2016
3536
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
36-
cd /usr/local/HammerDB
37+
cd /usr/local/HammerDB || fatal "Cannot cd /usr/local/hammerdb"
3738
cp -R /tmp/hammerdb-tpcc/mssql/* .
3839

3940

40-
rm -rf ${mountpoint}/mssql_data/*
41-
mkdir -p ${mountpoint}/mssql_data
42-
chown -R mssql:mssql ${mountpoint}/mssql_data
43-
chown -R mssql:mssql /perf1/mssql_data
41+
rm -rf "${mountpoint}"/mssql_data/
42+
mkdir -p "${mountpoint}"/mssql_data
43+
chown -R mssql:mssql "${mountpoint}"/mssql_data
4444

4545
systemctl stop mssql-server
4646

47-
cd /opt/mssql/bin/
47+
cd /opt/mssql/bin/ || fatal "Cannot cd /opt/mssql/bin"
4848
mkdir /var/opt/mssql/secrets/
4949

5050
MSSQL_SA_PASSWORD="100yard-"
5151
export MSSQL_SA_PASSWORD
52-
export MSSQL_PID="Evaluation"
52+
export MSSQL_PID="Evaluation"
5353

5454
rm -rf /var/opt/mssql
5555
chmod 777 /var/opt
5656

57-
echo 1 > input
58-
echo Yes >> input
59-
echo 100yard- >> input
60-
echo 100yard- >> input
61-
62-
./mssql-conf -n setup accept-eula < input
57+
./mssql-conf -n setup accept-eula <<'EOF'
58+
1
59+
Yes
60+
100yard-
61+
100yard-
62+
EOF
6363

6464
sleep 30
6565
systemctl stop mssql-server
6666

67-
cd /var/opt/mssql
68-
mv data ${mountpoint}/mssql_data
69-
ln -sf ${mountpoint}/mssql_data/data .
67+
cd /var/opt/mssql || fatal "Cannot cd /var/opt/mssql"
68+
mv data "${mountpoint}"/mssql_data
69+
ln -sf "${mountpoint}"/mssql_data/data .
7070

7171
systemctl disable mssql-server.service
7272
systemctl restart mssql-server.service
7373

74-
cd /usr/local/HammerDB
74+
cd /usr/local/HammerDB || fatal "Cannot cd /usr/local/hammerdb"
7575

76-
./createdb_mssql_mnt.sh -m ${mountpoint} > crdb.out 2>&1
76+
./createdb_mssql_mnt.sh -m "${mountpoint}" > crdb.out 2>&1
7777

78-
./update_temp_mnt.sh -m ${mountpoint} > upd_tmp.out 2>&1
78+
./update_temp_mnt.sh -m "${mountpoint}" > upd_tmp.out 2>&1
7979
}
8080

8181
install_mariadb()
@@ -92,33 +92,33 @@ install_mariadb()
9292
#
9393
# Configure things in and mount the appropriate item.
9494
#
95-
cd /usr/local/HammerDB
95+
cd /usr/local/HammerDB || fatal "Cannot cd /usr/local/hammerdb"
9696
cp -R /tmp/hammerdb-tpcc/mariadb/* .
9797

9898
#
9999
# Clean up any residual stuff and set up the directories
100100
#
101-
rm -rf ${mountpoint}/mysql/* ${log_mount_point}/mysql/log
102-
mkdir -p ${mountpoint}/mysql/data
103-
chown -R mysql:mysql ${mountpoint}/mysql
104-
mkdir -p ${log_mount_point}/mysql/log
105-
chown -R mysql:mysql ${log_mount_point}/mysql
101+
rm -rf "${mountpoint}"/mysql/* "${log_mount_point}"/mysql/log
102+
mkdir -p "${mountpoint}"/mysql/data
103+
chown -R mysql:mysql "${mountpoint}"/mysql
104+
mkdir -p "${log_mount_point}"/mysql/log
105+
chown -R mysql:mysql "${log_mount_point}"/mysql
106106

107107

108-
totmem=`cat /proc/meminfo | grep "MemTotal:" | awk '{print $2}'`
108+
totmem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
109109
#
110110
# Updating the value of buffer_pool_size based on available memory
111111
# Setting bufferpool to half of physical memory if memory is less than 128G else set to 64G
112112
#
113-
totmem_BP=`expr $totmem / 1024`
114-
totmem_BP=`expr $totmem_BP / 2`
113+
totmem_BP=$((totmem / 1024))
114+
totmem_BP=$((totmem_BP / 2))
115115

116116
#
117117
# Configure the mariadb config file with mountpoint and bufferpool
118118
#
119119

120120
sed -i "s+^datadir=.*+datadir=${mountpoint}\/mysql\/data+" my.cnf
121-
if [ $totmem_BP -lt 64000 ]; then
121+
if ((totmem_BP << 64000 )); then
122122
sed -i "s/^innodb_buffer_pool_size=.*/innodb_buffer_pool_size=${totmem_BP}M/" my.cnf
123123
else
124124
sed -i "s/^innodb_buffer_pool_size=.*/innodb_buffer_pool_size=64000M/" my.cnf
@@ -148,35 +148,35 @@ install_postgres()
148148
#
149149
dnf -y install postgresql.x86_64 postgresql-contrib.x86_64 postgresql-server.x86_64 glibc-langpack-en libpq
150150

151-
cd /usr/local/HammerDB
151+
cd /usr/local/HammerDB || fatal "Cannot cd /usr/local/hammerdb"
152152
cp -R /tmp/hammerdb-tpcc/postgres/* .
153153

154154
rm -rf /var/lib/pgsql/data
155-
rm -rf ${mountpoint}/postgres_data
155+
rm -rf "${mountpoint}"/postgres_data
156156

157-
mkdir -p ${mountpoint}/postgres_data
158-
ln -sf ${mountpoint}/postgres_data /var/lib/pgsql/data
159-
chmod 700 ${mountpoint}/postgres_data
160-
chown -R postgres:postgres ${mountpoint}/postgres_data
161-
mkdir -p ${log_mount_point}/postgres_log
162-
chown -R mysql:mysql ${log_mount_point}/postgres_log
157+
mkdir -p "${mountpoint}"/postgres_data
158+
ln -sf "${mountpoint}"/postgres_data /var/lib/pgsql/data
159+
chmod 700 "${mountpoint}"/postgres_data
160+
chown -R postgres:postgres "${mountpoint}"/postgres_data
161+
mkdir -p "${log_mount_point}"/postgres_log
162+
chown -R mysql:mysql "${log_mount_point}"/postgres_log
163163

164164
postgresql-setup initdb
165165
sleep 10
166-
mv /var/lib/pgsql/data/pg_wal ${log_mount_point}/postgres_log
167-
ln -sf ${log_mount_point}/postgres_log/pg_wal /var/lib/pgsql/data/pg_wal
166+
mv /var/lib/pgsql/data/pg_wal "${log_mount_point}"/postgres_log
167+
ln -sf "${log_mount_point}"/postgres_log/pg_wal /var/lib/pgsql/data/pg_wal
168168

169-
totmem=`cat /proc/meminfo |grep "MemTotal:" | awk '{print $2}'`
169+
totmem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
170170

171171
#
172172
# Change shared_buffer size based on available memory
173173
#
174-
totmem_MB=`expr $totmem / 1024`
175-
totmem_BP=`expr $totmem_MB / 2` # Buffer pool is half of physical memory
174+
totmem_MB=$((totmem / 1024))
175+
totmem_BP=$((totmem_MB / 2)) # Buffer pool is half of physical memory
176176
#
177177
# IF total memory is more than 128G then bufferpool is set to 64G else set to half of physical memory
178178
#
179-
if [ ${totmem_BP} -lt 64000 ]; then
179+
if ((totmem_BP < 65000)) ; then
180180
sed -i "s/^shared_buffers =.*/shared_buffers = ${totmem_BP}MB/" postgresql.conf
181181
else
182182
sed -i "s/^shared_buffers =.*/shared_buffers = 64000MB/" postgresql.conf
@@ -194,7 +194,8 @@ install_postgres()
194194

195195
usage()
196196
{
197-
echo "Usage:
197+
cat <<'EOF'
198+
Usage:
198199
./install-script [-h] [-d disk name] [-m mount point] [-t dbtype]
199200
200201
Usage:
@@ -207,51 +208,37 @@ usage()
207208
Examples:
208209
./install-script -d '/dev/sdb'
209210
./install-script -d '/perf1'
210-
"
211+
EOF
212+
exit
213+
}
214+
215+
fatal()
216+
{
217+
echo "$*"
218+
exit 1
211219
}
212220

213221
#
214222
# If we did not pass any arguments, flag it.
215223
#
216224
if [ $# -eq 0 ]; then
217-
usage;
218-
exit;
225+
usage
219226
fi
220227

221-
while [ $# -gt 0 ]
222-
do
223-
case $1 in
224-
-h)
225-
usage;
226-
exit;
227-
;;
228-
-d)
229-
disks=$2
230-
shift 2
231-
;;
232-
-M)
233-
log_mount_point=$2
234-
shift 2
235-
;;
236-
-m)
237-
mountpoint=$2
238-
shift 2
239-
;;
240-
-t)
241-
db_type=$2
242-
shift 2
243-
;;
244-
*)
245-
usage;
246-
exit;
247-
;;
228+
while getopts 'hd:M:m:t:' opt ; do
229+
case "$opt" in
230+
d) disks="$OPTARG" ;;
231+
M) log_mount_point="$OPTARG" ;;
232+
m) mountpoint="$OPTARG" ;;
233+
t) db_type="$OPTARG" ;;
234+
h) usage ;;
235+
*) usage ;;
248236
esac
249237
done
250238

251-
if [[ $db_type == "none" ]]; then
252-
echo You need to designate the db type.
239+
if [[ -z "$db_type" ]]; then
240+
echo "You need to designate the db type."
253241
usage
254-
exit
255242
fi
256243

257244
#
@@ -267,13 +254,14 @@ curl -k -o /tmp/hammerdb-tpcc.tar https://people.redhat.com/srao/Hammerdb-Kit/ha
267254
#
268255
# Install the hammerdb
269256
#
270-
cd /tmp
257+
cd /tmp || fatal "Cannot cd /tmp"
271258
tar xf hammerdb-tpcc.tar
272-
cd /tmp/hammerdb-tpcc/Hammerdb
259+
cd /tmp/hammerdb-tpcc/Hammerdb || fatal "Cannot cd to hammerdb package directory!"
273260
unset DISPLAY
274-
echo "y" > input
275-
echo "/usr/local/HammerDB" >> input
276-
./HammerDB-3.2-Linux-x86-64-Install < input
261+
./HammerDB-3.2-Linux-x86-64-Install <<'EOF'
262+
y
263+
/usr/local/HammerDB
264+
EOF
277265

278266
#
279267
# Shutdown all running instances
@@ -285,33 +273,30 @@ systemctl stop mariadb
285273
#
286274
# Create filestems and mount if required
287275
#
288-
if [[ $mountpoint == *"none"* ]]; then
276+
if [[ -z "$mountpoint" ]]; then
277+
if [[ -z "$disks" ]] ; then
278+
echo "Disk must be specified if -m is not used"
279+
usage
280+
fi
289281
echo "using disk option"
290282
umount /perf1
291-
mkfs.xfs -f ${disks}
283+
mkfs.xfs -f "${disks}"
292284
mkdir -p /perf1
293-
mount ${disks} /perf1
285+
mount "${disks}" /perf1
294286
mountpoint="/perf1"
295287
else
296288
echo "using mountpoint option"
297-
echo ${mountpoint}
298-
fi
299-
300-
if [[ $log_mount_point == "none" ]]; then
301-
log_mount_point=${mountpoint}
302-
fi
303-
if [[ $db_type == "mssql" ]]; then
304-
install_mssql
305-
exit
306-
fi
307-
308-
if [[ $db_type == "mariadb" ]]; then
309-
install_mariadb
310-
exit
311-
fi
312-
313-
if [[ $db_type == "postgres" ]]; then
314-
install_postgres
315-
exit
289+
echo "${mountpoint}"
316290
fi
317291

292+
log_mount_point=${log_mount_point:-$mountpoint}
293+
case "$db_type" in
294+
mssql) install_mssql ;;
295+
mariadb) install_mariadb ;;
296+
postgres) install_postgres ;;
297+
*) echo "Unknown database $db_type specified"; usage ;;
298+
esac
299+
300+
# Local Variables:
301+
# sh-indentation: 8
302+
# End:

0 commit comments

Comments
 (0)