由于工作中新申请数据库环境需求较多,每次人工安装效率非常低,而且容易有差异或出错,因此写了个简单的脚本用于初始化安装环境,脚本经过测试,适用于dm8版本,包括操作系统参数优化调整、sulinux关闭、静默安装软件等,分享给大家方便日常工作中使用,如有错误敬请指正。
脚本内容:
#!/bin/bash
#以root用户运行
#上传安装包至/media目录
mkdir /dmtmp
mount /media/dm8_*.iso /dmtmp
groupadd -g 12349 dinstall
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo "vServer1@bojx" |passwd --stdin dmdba
mkdir /dmdata
mkdir /dmdata/dmarch
mkdir /dmdata/dmbak
chown -R dmdba:dinstall /dmdata
chmod -R 755 /dmdata
mkdir /home/dmdba/dmdbms
chown dmdba:dinstall /home/dmdba/dmdbms
chmod 755 /home/dmdba/dmdbms
getenforce
setenforce 0
iptables -F
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
getenforce
systemctl stop firewalld
systemctl disable firewalld
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl stop iptables
systemctl disable iptables
cpu=$(lscpu|grep -e CPU: -e 'CPU(s)😂
mem=expr $(free -m|sed -n '2p' |awk '{print $2}')
kernel_shmmax=$(echo "cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'
* 1024 * 0.8" | bc | sed 's#..*$##')
kernel_shmall=$(echo "cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'
/ (getconf PAGESIZE
/ 1024)" | bc)
vm_nr_hugepages=echo "($mem*0.4+2048)/2 "| bc
echo "本机主机名:" $hostname
echo "本机cpu数:" $cpu
echo "本机内存_M:" $mem
echo "kernel_shmmax值设置为:" $kernel_shmmax
echo "kernel_shmall值设置为:" $kernel_shmall
echo "vm_nr_hugepages值设置为:" $vm_nr_hugepages
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 4194304
fs.file-max = 6815744
kernel.shmall = $kernel_shmall
kernel.shmmax = $kernel_shmmax
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
net.ipv4.ipfrag_high_thresh = 16777216
net.ipv4.ipfrag_low_thresh = 15728640
kernel.randomize_va_space = 0
vm.swappiness =10
vm.min_free_kbytes= 524288
kernel.panic_on_oops = 1
EOF
sysctl -p >/dev/null
cat >> /etc/security/limits.conf <<EOF
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard data unlimited
dmdba soft data unlimited
dmdba hard fsize unlimited
dmdba soft fsize unlimited
dmdba soft core unlimited
dmdba hard core unlimited
EOF
su - dmdba -c "cat >> /home/dmdba/auto_install.xml <<EOF
<?xml version="1.0"?>
<DATABASE>
<!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。-->
<LANGUAGE>zh</LANGUAGE>
<!--安装程序的时区配置,默认值为+08:00,范围:-12:59 ~ +14:00 -->
<TIME_ZONE>+08:00</TIME_ZONE>
<!-- key 文件路径 -->
<KEY></KEY>
<!--安装程序组件类型,取值 0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端。默认为 0。 -->
<INSTALL_TYPE>0</INSTALL_TYPE>
<!--安装路径,不允许为空。 -->
<INSTALL_PATH>/home/dmdba/dmdbms</INSTALL_PATH>
<!--是否初始化库,取值 Y/N、y/n,不允许为空。 -->
<INIT_DB>n</INIT_DB>
</DATABASE>
EOF"
su - dmdba -c "/dmtmp/DMInstall.bin -q /home/dmdba/auto_install.xml"
sleep 5
sh /home/dmdba/dmdbms/script/root/root_installer.sh
sleep 5
cat >> /home/dmdba/.bash_profile <<EOF
export PATH=$LD_LIBRARY_PATH:$DM_HOME:$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:.
EOF
脚本执行过后就可以安装实例了,安装命令供参考,根据实际调整参数:
dmdba:
./dminit path=/dmdata PORT_NUM=5236 LOG_SIZE=2048 PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=0 CHARSET=1 BLANK_PAD_MODE=1 DB_NAME=ECIF INSTANCE_NAME=ECIF SYSDBA_PWD=Sysxxx2021
root:
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p DM -dm_ini /dmdata/ECIF/dm.ini
文章
阅读量
获赞