gbase8s数据库软件rpm包制作

yum install rpm-build

yum install rpmdevtools

rpmdev-setuptree

mkdir -p /root/rpmbuild/BUILD/tmp/GBase8s-V8.8

cd /root/rpmbuild/BUILD/tmp/GBase8s-V8.8

将数据库安装包与init_gbase.sh上传至此目录下

vi init_gbase.sh

#!/bin/bash
################################
#version 1.0
#author wangyongixang
#email  wangyongixang@gbase.cn
#init for rpm-gbase8s
################################
export LANG=C
loginfo(){
  echo -e "[$(date +'%Y-%m-%d %H:%M:%S')] $*"
}


INSTALL_DIR=/opt/gbase8s
GBASESERVER=gbase8s
SQLHOSTS=/opt/gbase8s/etc/sqlhosts
GBASELOCALE=zh_CN.utf8
PORTNO=9088
DATADIR=/opt/gbase8s/dbs
ONCONFIG=onconfig
ROOTSIZE=512000
PLOGSIZE=102400
LLOGSIZE=102400
SBSPACESIZE=102400
TEMPSIZE=102400
DATASIZE=1024000



groupadd gbasedbt
useradd -g gbasedbt  -d /home/gbasedbt -s /bin/bash -m gbasedbt
echo "gbasedbt:GBase123"| chpasswd

mkdir -p $INSTALL_DIR 2>/dev/null 
chown gbasedbt:gbasedbt $INSTALL_DIR 2>/dev/null
chmod 0755 $INSTALL_DIR 2>/dev/null

SOFTPACKNAME=$(ls GBase*.tar 2>/dev/null)

tar -xf ${SOFTPACKNAME} 2>/dev/null

timeout 1800 ./ids_install -i silent -DLICENSE_ACCEPTED=TRUE -DUSER_INSTALL_DIR=$INSTALL_DIR

cp $INSTALL_DIR/etc/onconfig.std $INSTALL_DIR/etc/$ONCONFIG

sed -i "s#^ROOTPATH.*#ROOTPATH $DATADIR/rootdbs#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^ROOTSIZE.*#ROOTSIZE $ROOTSIZE#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DBSERVERNAME.*#DBSERVERNAME $GBASESERVER#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^LTAPEDEV.*#LTAPEDEV /dev/null#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^USERMAPPING.*#USERMAPPING ADMIN#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DEF_TABLE_LOCKMODE.*#DEF_TABLE_LOCKMODE row#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^VPCLASS.*#VPCLASS cpu,num=1,noage #g" $INSTALL_DIR/etc/$ONCONFIG

chown gbasedbt:gbasedbt $INSTALL_DIR/etc/$ONCONFIG
echo "$GBASESERVER onsoctcp 0.0.0.0 $PORTNO" > $SQLHOSTS
chown gbasedbt:gbasedbt $SQLHOSTS


cat >> /home/gbasedbt/.bash_profile <<EOF
export GBASEDBTSERVER=$GBASESERVER
export GBASEDBTDIR=$INSTALL_DIR
export GBASEDBTSQLHOSTS=$SQLHOSTS
export ONCONFIG=$ONCONFIG
export PATH=${INSTALL_DIR}/bin:\${PATH}
export GL_DATE="%iY-%m-%d"
export DATETIME="%iY-%m-%d %H:%M:%S"
export DB_LOCALE=$GBASELOCALE
export CLIENT_LOCALE=$GBASELOCALE
export GL_USEGLU=1
export DBACCESS_SHOW_TIME=1
EOF

mkdir -p $DATADIR
chown gbasedbt:gbasedbt $DATADIR
chmod 0755 $DATADIR
cd $DATADIR

touch rootdbs plogdbs llogdbs sbspace1 tmpdbs1 datadbs1
chown gbasedbt:gbasedbt *
chmod 660 *

su - gbasedbt -c "timeout 1800 oninit -ivy"

sleep 5

su - gbasedbt -c ". /home/gbasedbt/.bash_profile &&
timeout 25 dbaccess sysmaster -<<! >/dev/null 2>&1
select 1 from dual;
!
"
if [ ! $? -eq 0 ];then
exit
fi

su - gbasedbt -c "onspaces -c -d plogdbs -p $DATADIR/plogdbs -o 0 -s $PLOGSIZE >/dev/null 2>&1"
su - gbasedbt -c "onspaces -c -d llogdbs -p $DATADIR/llogdbs -o 0 -s $LLOGSIZE >/dev/null 2>&1"
su - gbasedbt -c "onspaces -c -d tmpdbs01 -p $DATADIR/tmpdbs1 -o 0 -s $TEMPSIZE -k 16 -t >/dev/null 2>&1"
su - gbasedbt -c "onspaces -c -S sbspace01 -p $DATADIR/sbspace1 -o 0 -s $SBSPACESIZE >/dev/null 2>&1"
su - gbasedbt -c "onspaces -c -d datadbs1 -p $DATADIR/datadbs1 -o 0 -s $DATASIZE -k 16 >/dev/null 2>&1"



PLOGFILE=$(echo $PLOGSIZE | awk '{printf("%d\n",substr($1,1,1) * 10 ^ (length($1) - 1))}')
su - gbasedbt -c "onparams -p -d plogdbs -s $PLOGFILE -y >/dev/null 2>&1"

LLOGFILE=$(echo $LLOGSIZE | awk '{printf("%d\n",substr($1,1,1) * 10 ^ (length($1) - 1))}')
NEWFILE=$(expr $LLOGFILE / 10)
[ $NEWFILE -gt 1000000 ] && NEWFILE=1000000
for w in {1..10}
do
  su - gbasedbt -c "onparams -a -d llogdbs -s $NEWFILE >/dev/null 2>&1"
done

while :
do
  CURRLOG=$(su - gbasedbt -c "onmode -l; onmode -c; onstat -l" | awk '/U---C-L/{print $2}')
  if [ $CURRLOG -gt 6 ]; then
    break
  else
    sleep 1
  fi
done

for e in {1..6}
do
  su - gbasedbt -c "onparams -d -l $e -y >/dev/null 2>&1"
done

touch $INSTALL_DIR/etc/sysadmin/stop
chown gbasedbt:gbasedbt $INSTALL_DIR/etc/sysadmin/stop
chmod 644 $INSTALL_DIR/etc/sysadmin/stop

NUMMEM=$(awk '/^MemTotal:/{printf("%d\n",$2/1000)}' /proc/meminfo)
if [ $NUMMEM -le 1024 ]; then
exit
fi

sed -i "s#^PHYSBUFF.*#PHYSBUFF 1024#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^LOGBUFF.*#LOGBUFF 1024#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DBSPACETEMP.*#DBSPACETEMP tmpdbs01#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^SBSPACENAME.*#SBSPACENAME sbspace01#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^SYSSBSPACENAME.*#SYSSBSPACENAME sbspace01#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^NUMFDSERVERS.*#NUMFDSERVERS 8#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^MULTIPROCESSOR.*#MULTIPROCESSOR 1#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^AUTO_TUNE.*#AUTO_TUNE 0#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^CLEANERS.*#CLEANERS 8#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^STACKSIZE.*#STACKSIZE 512#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^ALLOW_NEWLINE.*#ALLOW_NEWLINE 1#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i 's#^USELASTCOMMITTED.*#USELASTCOMMITTED "COMMITTED READ"#g' $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DS_MAX_QUERIES.*#DS_MAX_QUERIES 5#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DS_TOTAL_MEMORY.*#DS_TOTAL_MEMORY 128000#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DS_NONPDQ_QUERY_MEM.*#DS_NONPDQ_QUERY_MEM 32000#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^TEMPTAB_NOLOG.*#TEMPTAB_NOLOG 1#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DUMPSHMEM.*#DUMPSHMEM 0#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^NETTYPE.*#NETTYPE soctcp,1,100,CPU#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^DIRECT_IO.*#DIRECT_IO 0#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^LOCKS.*#LOCKS 500000#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^SHMVIRTSIZE.*#SHMVIRTSIZE 204800#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^SHMADD.*#SHMADD 8192#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^SHMTOTAL.*#SHMTOTAL 0#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^BUFFERPOOL.*size=2.*#BUFFERPOOL size=2K,buffers=100000,lrus=8,lru_min_dirty=50,lru_max_dirty=60#g" $INSTALL_DIR/etc/$ONCONFIG
sed -i "s#^BUFFERPOOL.*size=16.*#BUFFERPOOL size=16K,buffers=100000,lrus=8,lru_min_dirty=50,lru_max_dirty=60#g" $INSTALL_DIR/etc/$ONCONFIG

su - gbasedbt -c "timeout 1800 onmode -ky"
sleep 5
su - gbasedbt -c "timeout 1800 oninit -vy"
sleep 5
mkdir -p ${INSTALL_DIR}/temp
ADMIN_SQLFILE=${INSTALL_DIR}/temp/admin_sqlfile.sql
cat << ! > $ADMIN_SQLFILE 2>&1
EXECUTE FUNCTION task ("modify chunk extendable on", 6);
!
if [ -s $ADMIN_SQLFILE ]; then
  chown gbasedbt:gbasedbt ${INSTALL_DIR}/temp
  chown gbasedbt:gbasedbt $ADMIN_SQLFILE
  su - gbasedbt -c "dbaccess sysadmin $ADMIN_SQLFILE >/dev/null 2>&1"
fi

echo "su - gbasedbt -c \"oninit\"" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local


exit 0

cd  /root/rpmbuild/SPECS

vi gbase_test.spec

Name:           GBase8s_test
Version:        8.8
BuildArch:      x86_64
Release:        1%{?dist}
Summary:        GBase8sV8.8_3.0.0_1_93e040_RHEL6_x86_64
Vendor:         wyx
AutoReqProv:    no
License:                MIT
URL:                    www.gbase.com.cn

%description
test

%prep

%build

%install
cp -r %_builddir/* %buildroot/

%pre

%post
cd /tmp/GBase8s-V8.8
chmod a+x init_gbase.sh
./init_gbase.sh


%preun
su - gbasedbt -c "onmode -ky"

%postun
userdel -rf gbasedbt
rm -rf /opt/gbase8s
rm -rf /GBASEDBTTMP

echo "数据库卸载完成"

%files
%defattr(-,root,root)
/tmp/GBase8s-V8.8/*


%changelog
* Thu May 05 2024 gbasedbt
- 

rpmbuild构建rpm包

rpmbuild -gg gbase_test.spce

构建结束后在/root/rpmbuild/RPMS/x86_64下生成数据库rpm安装包

rpm -ivh GBase8s_test-8.8-1.el7.centos.x86_64.rpm 进行数据库安装

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值