#!/bin/sh
CUR_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
echo "CUR_DIR : $CUR_DIR"
echo "check env var"
if [ ${GAUSSHOME} ] && [ -d ${GAUSSHOME}/bin ];then
echo "GAUSSHOME: ${GAUSSHOME}"
else
echo "GAUSSHOME NOT EXIST"
exit 1;
fi
SUPER_PASSWORD=Gauss_234
clean_database_env()
{
SS_DATA=$1
if [ -d ${SS_DATA} ]; then
echo "${SS_DATA} exists, so need to clean and recreate"
rm -rf ${SS_DATA}
else
echo "${SS_DATA} not exists, so need to recreate"
fi
mkdir ${SS_DATA}
}
clear_shm()
{
ipcs -m | grep $USER | awk '{print $2}' | while read shm; do
if [ -n ${shm} ]; then
ipcrm -m ${shm}
fi
done
ipcs -s | grep $USER | awk '{print $2}' | while read shm; do
if [ -n ${shm} ]; then
ipcrm -s ${shm}
fi
done
}
kill_gaussdb()
{
ps ux | grep gaussdb | grep -v grep | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1
ps ux | grep gsql | grep -v grep | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1
ps ux | grep dssserver | grep -v grep | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1
clear_shm
sleep 2
}
kill_dss()
{
ps ux | grep dssserver | grep -v grep | awk '{print $2}' | xargs kill -9 > /dev/null 2>&1
}
assign_hatest_parameter()
{
for node in $@
do
echo -e "log_min_messages = log" >> ${node}/postgresql.conf
echo -e "logging_module = 'on(ALL)'" >> ${node}/postgresql.conf
echo -e "ss_log_level = 255" >> ${node}/postgresql.conf
echo -e "ss_log_backup_file_count = 100" >> ${node}/postgresql.conf
echo -e "ss_log_max_file_size = 1024MB" >> ${node}/postgresql.conf
echo -e "enable_bbox_dump = on" >> ${node}/postgresql.conf
cat ${node}/postgresql.conf | grep enable_bbox_dump
done
}
assign_dorado_parameter()
{
SS_DATA=$1
for node in $@
do
if [ ${node} == ${SS_DATA} ]; then
continue
fi
echo -e "\nxlog_lock_file_path = '${SS_DATA}/shared_lock_primary'" >> ${node}/postgresql.conf
echo -e "\nss_log_level = 255" >> ${node}/postgresql.conf
echo -e "\nss_log_backup_file_count = 100" >> ${node}/postgresql.conf
echo -e "\nss_log_max_file_size = 1GB" >> ${node}/postgresql.conf
done
}
init_gaussdb()
{
inst_id=$1
dss_home=$2
SS_DATA=$3
nodedata_cfg=$4
if [ $# == 5 ]; then
dorado_shared_disk=$5
echo "${GAUSSHOME}/bin/gs_initdb -D ${SS_DATA}/dn${inst_id} --nodename=single_node -w ${SUPER_PASSWORD} --vgname=\"+data,+log\" --enable-dss --dms_url=\"${nodedata_cfg}\" -I ${inst_id} --socketpath=\"UDS:${dss_home}/.dss_unix_d_socket\" -d -n -g ${dorado_shared_disk}"
${GAUSSHOME}/bin/gs_initdb -D ${SS_DATA}/dn${inst_id} --nodename=single_node -w ${SUPER_PASSWORD} --vgname="+data,+log" --enable-dss --dms_url="${nodedata_cfg}" -I ${inst_id} --socketpath="UDS:${dss_home}/.dss_unix_d_socket" -d -n -g ${dorado_shared_disk}
else
echo "${GAUSSHOME}/bin/gs_initdb -D ${SS_DATA}/dn${inst_id} --nodename=single_node -w ${SUPER_PASSWORD} --vgname=\"+data,+log\" --enable-dss --dms_url=\"${nodedata_cfg}\" -I ${inst_id} --socketpath=\"UDS:${dss_home}/.dss_unix_d_socket\""
${GAUSSHOME}/bin/gs_initdb -D ${SS_DATA}/dn${inst_id} --nodename=single_node -w ${SUPER_PASSWORD} --vgname="+data,+log" --enable-dss --dms_url="${nodedata_cfg}" -I ${inst_id} --socketpath="UDS:${dss_home}/.dss_unix_d_socket"
fi
}
set_gaussdb_port()
{
data_node=$1
pg_port=$2
echo "" >> ${data_node}/postgresql.conf
echo "port = ${pg_port}" >> ${data_node}/postgresql.conf
echo "comm_sctp_port = $((pg_port + 30))" >> ${data_node}/postgresql.conf
echo "comm_control_port = $((pg_port + 40))" >> ${data_node}/postgresql.conf
}
start_gaussdb()
{
data_node=$1
echo "> starting ${data_node}" && nohup ${GAUSSHOME}/bin/gaussdb -D ${data_node} &
sleep 10
}
stop_gaussdb()
{
data_node=$1
echo "> stop ${data_node}" && ${GAUSSHOME}/bin/gs_ctl stop -D ${data_node}
sleep 5
}