#!/bin/sh
###
# create database JIRADB with
#   - 20 MB data devspace and 8 MB log devspace
#   - database user jirauser (with password jiraedit)
###



id=`id | sed s/\(.*// | sed s/uid=//`

if [ "$id" = "0" ]; then
        echo "dont start script as root " 1>&2
        exit 1
fi

INSTROOT=/usr/sapdb/depend
PATH=/usr/sapdb/indep_prog/bin:$PATH
export PATH

# name of the database
SID=JIRADB

# data dir of instance
DATADIR=/hdb1/sapdb/indep_data/wrk

# start remote communication server
#x_server start >/dev/null 2>&1

# stop and drop probably existing database
dbmcli -d $SID -u dbm,dbm db_offline >/dev/null 2>&1
dbmcli -d $SID -u dbm,dbm db_drop >/dev/null 2>&1


# create new database
echo "create database $SID..."
_o=`dbmcli -s -R  $INSTROOT db_create $SID dbm,dbm 2>&1`
_test=`echo $_o | grep OK`
if [ "$_test" = "" ]; then
        echo "create $SID failed: $_o" 1>&2
        exit 1
fi


# create directory where to put the database files
mkdir -p $DATADIR/$SID

# setup database parameters
echo "set parameters for $SID..."
_o=`cat <<EOF | dbmcli -d $SID -u dbm,dbm 2>&1
param_rmfile
param_startsession
param_init OLTP
param_put LOG_MODE SINGLE
param_put CAT_CACHE_SUPPLY 300
param_put DATA_CACHE 2500
param_put MAXDATADEVSPACES 5
param_put MAXDATAPAGES 1024000
param_checkall
param_commitsession
param_adddevspace 1 SYS  $SID/DISKS01   F
param_adddevspace 1 DATA $SID/DISKD0001 F 2560
param_adddevspace 1 LOG  $SID/DISKL001  F 1024
quit
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
        echo "set parameters failed: $_o" 1>&2
        exit 1
fi



# startup database
echo "start $SID..."
_o=`dbmcli -d $SID -u dbm,dbm db_start 2>&1`
_test=`echo $_o | grep OK`
if [ "$_test" = "" ]; then
        echo "start $SID failed: $_o" 1>&2
        exit 1
fi

# initialize database files
echo "initialize $SID..."
_o=`cat <<EOF | dbmcli -d $SID -u dbm,dbm 2>&1
util_connect dbm,dbm
util_execute init config
util_activate dba,dba
quit
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
        echo "initializing $SID failed: $_o" 1>&2
        exit 1
fi

# load database system tables
echo "load system tables..."
_o=`dbmcli -d $SID -u dbm,dbm load_systab -u dba,dba -ud domain 2>&1`
_test=`echo $_o | grep OK`
if [ "$_test" = "" ]; then
        echo "load system tables failed: $_o" 1>&2
        exit 1
fi

# create database user
echo "create database user..."
_o=`cat <<EOF | dbmcli -d $SID -u dba,dba
sql_connect dba,dba
sql_execute CREATE USER jirauser PASSWORD jiraedit DBA NOT EXCLUSIVE
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
        echo "create db user failed: $_o" 1>&2
        exit 1
fi

echo "set backup parameters..."
_o=`cat <<EOF | dbmcli -d $SID -u dbm,dbm 2>&1
medium_put data $SID/datasave FILE DATA 0 8 YES
medium_put auto $SID/autosave FILE AUTO
util_connect dbm,dbm
backup_save data
autosave_on
quit
EOF`
_test=`echo $_o | grep ERR`
if [ "$_test" != "" ]; then
        echo "set backup parameters failed: $_o" 1>&2
        exit 1
fi


exit 0
