#!/bin/bash
dmdbms='/home/dmdba' #数据库安装文件目录
dmdata='/dmdata/'
dmarch='/dmdata/arch'
dmbak='/dmdata/dmbak/'
install_file='' #
iso_file='/root/dm8_20210630_x86_rh6_64_ent/dm8_20210630_x86_rh6_64_ent' #数据库iso文件目录
dm_ini_set='/root/AutoParaAdj2.5.sql' #参数优化路径
sys_set() {
groupadd dinstall -g 2001
useradd -G dinstall -m -d /home/dmdba -s /bin/bash dmdba -u 2001
mkdir -p $dmdbms;
mkdir -p $dmdata;
mkdir -p $dmbak;
mkdir -p $dmarch;
chown dmdba:dinstall -R $dmdbms;
chown dmdba:dinstall -R $dmdata;
chown dmdba:dinstall -R $dmbak;
chown dmdba:dinstall -R $dmarch;
cat << EOF >>/etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.core_pattern = /dmdata/core.%p
vm.swappiness=10
vm.dirty_background_ratio = 0
EOF
sysctl -p
cat << EOF >>/etc/security/limits.conf
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
EOF
ulimit -a
sleep 5;
su - dmdba <<EOF
ulimit -a
EOF
cat << EOF >> /home/dmdba/.bash_profile
export DM_HOME="$dmdbms"
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
EOF
su - dmdba <<EOF
source /home/dmdba/.bash_profile
EOF
}
install_db (){
#挂载安装和非挂载安装
read -p "please choice 1:use mount; 0 no user mount:"
if [ $REPLY -eq 1 ];then
mount -oloop $iso_file/*.iso /mnt
/mnt/DMInstall.bin -i
mount_pos=`df -k|grep mnt|awk '{print $1}'`
umount $mount_pos
fi
if [ $REPLY -eq 0 ];then
su - dmdba <<EOF
install_file/DMInstall.bin -i
EOF
fi
}
init_db()
{
su - dmdba <<EOF
#EXTENT_SIZE数据文件使用的簇大小(16),可选值:16,32,64,单位页
#PAGE_SIZE数据页大小(8)可选值:4,8,16,32,单位:K
#CASE_SENSITIVE大小敏感(Y),可选值:Y/N,1/0;
#CHARSET/UNICODE_FLAG字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
cd $dmdbms/bin/
./dminit path=$dmdata PAGE_SIZE=32 EXTENT_SIZE=32 charset=1 log_size=2048 case_sensitive=0
EOF
if [ $? -ne 0 ];then
echo "please check process "
else
cd $dmdbms/script/root;
./dm_service_installer.sh -t dmserver -dm_ini $dmdata/DAMENG/dm.ini -p dmdb
cd $dmdbms/bin/
./DmServicedmdb start
fi
}
set_info()
{
su - dmdba <<EOF
disql SYSDBA/SYSDBA <<EOF
select id_code;
select id_code;
alter database mount;
alter database add archivelog 'dest=/dmdata/arch ,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;
SP_INIT_JOB_SYS(1);
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak01', 6, '01000000$dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'bak01', 1, 2, 1, 32, 0, '23:00:00', NULL, '2021-10-25 14:42:15', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak02', 6, '11000000$dmbak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'bak2', 1, 2, 1, 95, 0, '23:00:00', NULL, '2021-10-25 14:44:30', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak','bak1',0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''$dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2021-10-25 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');
exit;
EOF
}
#sys_set
#install_db;
#init_db;
set_info;