全栈适配MySQL/Oracle/PostgreSQL/SQL server,3分钟极速部署,人力成本直降70%,老板连夜要求全员掌握。
这里小编将这些脚本整理出来,分享给大家。
更多技术分享点击下方链接👇👇👇👇
ocpsydz71e.feishu.cn/docx/EqksdL...
1.Oracle脚本
ini
【脚本说明】
1、下载19C安装包LINUX.X64_193000_db_home.zip后上传到/opt目录下
2、ISO系统镜像需要挂载,后期用于YUM
3、MY_SERVER_IP、MY_HOSTNAME根据自己环境修改
4、MY_ORA_SID为实例名、MY_ORA_MEMORY为分配到内存大小,根据实际情况修改
5、createAsContainerDatabase=TRUE表示容器数据库,改为false后就是非容器
直接执行脚本,自动化安装,本脚本适用于Linux7,其他操作系统可能涉及yum的配置不同,请自行修改
脚本创作不易,请多多支持,关注公众号:IT邦德
bash
#!/bin/bash
#==============================================================#
# 脚本名 : OracleShellInstall.sh
# 创建时间 : 2023-06-13 10:02:09
# 更新时间 : 2025-02-10 10:02:09
# 描述 : Oracle19C数据库一键安装脚本(单机CDB\NO-CDB)
# 路径 : /soft/OracleShellInstall
# 版本 : 2.0.0
# 作者 : 王丁丁 公众号:IT邦德
#==============================================================#
#==============================================================#
# 基础参数 #
#==============================================================#
##需要设置的参数
#本机服务器IP
export MY_SERVER_IP=192.168.6.5
#本机服务器主机名
export MY_HOSTNAME=dbhost
#ORACLE软件上传根目录
export MY_SOFT_BASE=/opt
#ORACLE软件名
export MY_ORA_SOFT1=LINUX.X64_193000_db_home.zip
## ISO系统镜像存放目录
export MY_DIRECTORY_ISO=/opt
##ORACLE软件存放的目录
export MY_DIRECTORY_SOFT=$MY_SOFT_BASE
##ORACLE脚本存放的目录
export MY_DIRECTORY_SCRIPT=$MY_SOFT_BASE
#==============================================================#
# 软件准备 #
#==============================================================#
## 1.将ISO系统镜像上传到系统
## 2.将数据库软件上传到系统
#if [ ! -d /opt/iso ]; then
#创建镜像目录
#mkdir /opt/iso
#fi
##确认是否有光驱设备
echo " "
MY_ISO=`mount | grep iso9660`
if [ ! -n "$MY_ISO" ];then
echo "Please Mount A CD ISO Image First"
exit
else
mount /dev/cdrom /mnt/ >/dev/null 2>&1
echo "Mount A CD ISO Image Already"
fi
#==============================================================#
# Oracle软件安装相关配置 #
#==============================================================#
#ORACLE软件安装根目录
export MY_DIR=/u01
##ORACLE BASE目录
export MY_ORA_BASE=$MY_DIR/app/oracle
##ORACLE HOME目录
export MY_ORA_HOME=$MY_ORA_BASE/product/19.3.0/dbhome_1
##ORACLE INVENTORY目录
export MY_INVENTORY_LOC=$MY_DIR/app/oraInventory
#ORACLE SID变量
export MY_ORA_SID=orcl
#ORACLE SYS密码
export MY_ORA_PASSWD=oracle
#数据分配的内存
export MY_ORA_MEMORY=1500
##数据文件存放目录
export MY_ORA_DATA=$MY_ORA_BASE/oradata
##判断ORACLE软件是否上传
if [ -f $MY_DIRECTORY_SOFT/$MY_ORA_SOFT1 ]; then
echo "Oracle Software Already Upload"
else
echo "Please Upload Oracle Software First"
exit
fi
#==============================================================#
# 本地yum配置 #
#==============================================================#
mkdir -p /tmp/confbak/yumbak/
mv /etc/yum.repos.d/* /tmp/confbak/yumbak/ >/dev/null 2>&1
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "Distribution: $ID"
echo "Version: $VERSION_ID"
if [ "$ID" = "8" ];then
echo "[localREPO]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/BaseOS" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
echo "[localREPO_APP]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8_app" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/AppStream" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
else
echo "[Oracle]" >> /etc/yum.repos.d/my.repo
echo "name=oracle_install" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
fi
else
echo "No OS Release file found."
fi
yum -y install bc >/dev/null 2>&1
#==============================================================#
# 内核参数计算 #
#==============================================================#
##服务器内存大小G单位
export MY_MEMORY_GB=`free -g | grep Mem | awk '{print $2}'`
##根据内存计算内核参数大小
export MY_SHMMAX=`echo "$MY_MEMORY_GB*1024*1024*1024*0.9" | bc | awk -F "." '{print $1}'`
export MY_SHMALL=`echo "$MY_MEMORY_GB*1024*1024*1024*0.9/4" | bc | awk -F "." '{print $1}'`
#==============================================================#
# 安装前准备工作 #
#==============================================================#
## 1.1 设置主机名
hostnamectl set-hostname $MY_HOSTNAME
sed -i '/^HOSTNAME=/d' /etc/sysconfig/network
echo "HOSTNAME=$MY_HOSTNAME" >> /etc/sysconfig/network
echo "1.1 Configure hostname completed."
## 1.2 修改hosts
cp /etc/hosts /tmp/confbak
cat >> /etc/hosts <<EOF
$MY_SERVER_IP $MY_HOSTNAME
EOF
echo "1.2 Configure Hosts Completed."
## 1.3 安装数据库依赖包
yum -y install bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc \
glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ \
libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat >/dev/null 2>&1
cd $MY_DIRECTORY_SOFT
echo "1.3 Install rpm Software Completed."
## 1.4 关闭防火墙
systemctl stop firewalld.service >/dev/null 2>&1
systemctl disable firewalld.service >/dev/null 2>&1
systemctl status firewalld.service >/dev/null 2>&1
echo "1.4 Disable Firewalld Service Completed."
## 1.5 关闭SELinux
cp /etc/selinux/config /tmp/confbak/config
sed -i '/^SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config
# cat /etc/selinux/config|grep "SELINUX=disabled"
setenforce 0 >/dev/null 2>&1
echo "1.5 Disable SELINUX Completed."
## 1.6 建立用户和组
if id -u oracle >/dev/null 2>&1; then
echo "Oracle User Exists."
else
groupadd -g 14321 oinstall >/dev/null 2>&1
groupadd -g 14322 dba >/dev/null 2>&1
groupadd -g 14323 oper >/dev/null 2>&1
groupadd -g 14324 backupdba >/dev/null 2>&1
groupadd -g 14325 dgdba >/dev/null 2>&1
groupadd -g 14326 kmdba >/dev/null 2>&1
groupadd -g 14327 racdba >/dev/null 2>&1
useradd -u 1101 -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,oper oracle >/dev/null 2>&1
echo oracle123 | passwd --stdin oracle >/dev/null 2>&1
echo "1.6 User Created Completed."
fi
## 1.7 创建相关目录
mkdir -p $MY_ORA_HOME
chown -R oracle:oinstall $MY_DIR/app
chmod -R 775 $MY_DIR/app
echo "1.7 Oracle Directories Created Completed."
## 1.8 修改内核参数
cp /etc/sysctl.conf /tmp/confbak/sysctl.conf
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 = 1048576
kernel.shmmax = $MY_SHMMAX
kernel.shmall = $MY_SHMALL
EOF
sysctl -p >/dev/null 2>&1
echo "1.8 Configure Linux Kernal Parameter Completed."
## 1.9 修改文件限制
cp /etc/security/limits.conf /tmp/confbak/limits.conf
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOF
echo "1.9 Configure Linux Resource Limit Completed."
## 1.10 配置系统环境变量
cp /etc/profile /tmp/confbak/profile
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
echo "1.10 Configure Linux Profile Env Completed."
## 1.11 配置NOZEROCONFIG
cat >> /etc/sysconfig/network <<EOF
NOZEROCONF=yes
EOF
echo "1.11 Configure Nozeroconfig Completed."
## 1.12 修改oracle用户环境变量
export MY_LD_LIBRARY_PATH=$MY_ORA_HOME/lib
export MY_CLASSPATH=$MY_ORA_HOME/JRE
su - oracle -c "
cat >> /home/oracle/.bash_profile <<EOF
ORACLE_SID=$MY_ORA_SID; export ORACLE_SID
ORACLE_UNQNAME=$MY_ORA_SID; export ORACLE_UNQNAME
ORACLE_BASE=$MY_ORA_BASE; export ORACLE_BASE
ORACLE_HOME=$MY_ORA_HOME; export ORACLE_HOME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_PATH=$MY_DIR/app/common/oracle/sql; export ORACLE_PATH
ORACLE_TERM=xterm; export ORACLE_TERM
TNS_ADMIN=$MY_ORA_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$MY_ORA_HOME/nls/data; export ORA_NLS11
PATH=/usr/sbin:$PATH; export PATH
PATH=$MY_ORA_HOME/bin:$MY_DIR/app/common/oracle/bin:$PATH; export PATH
#LD_LIBRARY_PATH=$MY_ORA_HOME/lib
LD_LIBRARY_PATH=${MY_LD_LIBRARY_PATH}:$MY_ORA_HOME/oracm/lib
LD_LIBRARY_PATH=${MY_LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
#CLASSPATH=$MY_ORA_HOME/JRE
CLASSPATH=${MY_CLASSPATH}:$MY_ORA_HOME/jlib
CLASSPATH=${MY_CLASSPATH}:$MY_ORA_HOME/rdbms/jlib
CLASSPATH=${MY_CLASSPATH}:$MY_ORA_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
umask 022
EOF
"
source /home/oracle/.bash_profile >/dev/null 2>&1
echo "1.12 Configure Oracle Env Completed."
## 1.13 解压数据库软件
echo "1.13 Start Unzip Oracle Software."
cd $MY_DIRECTORY_SOFT
rm -rf $MY_DIRECTORY_SOFT/database
chown oracle.oinstall $MY_DIRECTORY_SOFT/$MY_ORA_SOFT1 -R
chmod 755 -R $MY_DIRECTORY_SOFT/$MY_ORA_SOFT1
su - oracle -c "unzip -q $MY_DIRECTORY_SOFT/$MY_ORA_SOFT1 -d $MY_ORA_HOME" &
while true;
do
echo -n ".";sleep 2;
MY_EXEC=`ps -ef | grep unzip | grep -Evi grep`
if [ "$MY_EXEC" = "" ]
then
break;
fi
done
echo " "
echo "1.13 Unzip Oracle Software Completed."
#==============================================================#
# 数据库安装工作 #
#==============================================================#
## 2.1 创建数据库软件静默安装文件
mkdir -p $MY_INVENTORY_LOC
chown oracle.oinstall $MY_INVENTORY_LOC
if [ ! -d "$MY_DIRECTORY_SCRIPT" ]; then
mkdir -p $MY_DIRECTORY_SCRIPT
fi
cd $MY_DIRECTORY_SCRIPT
rm -rf db_install.rsp
cat >> db_install.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=$MY_INVENTORY_LOC
ORACLE_BASE=$MY_ORA_BASE
ORACLE_HOME=$MY_ORA_HOME
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT
oracle.install.db.config.starterdb.type=DATA_WAREHOUSE
EOF
chown oracle.oinstall $MY_DIRECTORY_SCRIPT -R
echo "2.1 Create Silent Configure File Completed."
## 2.2 静默安装数据库软件
chown oracle.oinstall $MY_DIRECTORY_SCRIPT/db_install.rsp
su - oracle -c "$MY_ORA_HOME/runInstaller -silent -force -noconfig -ignorePrereq -responseFile $MY_DIRECTORY_SCRIPT/db_install.rsp"
while true;
do
echo -n ".";sleep 2;
MY_EXEC=`ps -ef | grep java | grep -Evi grep`
if [ "$MY_EXEC" = "" ]
then
break;
fi
done
echo " "
if [ $? -eq 0 ]; then
sh $MY_INVENTORY_LOC/orainstRoot.sh >/dev/null 2>&1
sh $MY_ORA_HOME/root.sh >/dev/null 2>&1
NOW_DATE=`date +%Y-%m-%d`
echo "Check $MY_ORA_HOME/install/root_"$MY_HOSTNAME"_"$NOW_DATE"_xxx.log for the output of root script"
echo " "
echo "2.2 Install Oracle Software Completed."
else
echo "2.2 Install Oracle Software Failed."
fi
## 2.3 静默配置数据库监听
cd $MY_DIRECTORY_SCRIPT
rm -rf netca.rsp
cat >> netca.rsp <<EOF
[GENERAL]
RESPONSEFILE_VERSION="19.3"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
EOF
chown oracle.oinstall $MY_DIRECTORY_SCRIPT/netca.rsp
su - oracle -c "$MY_ORA_HOME/bin/netca -silent -responseFile $MY_DIRECTORY_SCRIPT/netca.rsp" >/dev/null 2>&1
echo "2.3 Configure Oracle Listener Completed."
## 2.4 配置静默创建数据库文件
cd $MY_DIRECTORY_SCRIPT
rm -rf dbca.rsp
cat >> dbca.rsp <<EOF
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
templateName=General_Purpose.dbc
gdbName=$MY_ORA_SID
sid=$MY_ORA_SID
createAsContainerDatabase=TRUE
numberOfPDBs=1
pdbName=pdb01
pdbAdminPassword=$MY_ORA_PASSWD
sysPassword=$MY_ORA_PASSWD
systemPassword=$MY_ORA_PASSWD
datafileDestination=$MY_ORA_BASE/oradata
recoveryAreaDestination=$MY_ORA_BASE/fast_recovery_area
storageType=FS
characterSet=AL32UTF8
nationalCharacterSet=UTF8
sampleSchema=true
totalMemory=$MY_ORA_MEMORY
databaseType=OLTP
databaseConfigType=SI
emConfiguration=NONE
EOF
echo "2.4 Create Silent Configure File Completed."
## 2.5 静默创建数据库
if [ ! -d "$MY_ORA_BASE/oradata" ]; then
mkdir $MY_ORA_BASE/oradata
fi
if [ ! -d "$MY_ORA_BASE/fast_recovery_area" ]; then
mkdir $MY_ORA_BASE/fast_recovery_area
fi
chown oracle.oinstall $MY_ORA_BASE/oradata
chown oracle.oinstall $MY_ORA_BASE/fast_recovery_area
chown oracle.oinstall $MY_DIRECTORY_SCRIPT/dbca.rsp
su - oracle -c "$MY_ORA_HOME/bin/dbca -silent -createDatabase -responseFile $MY_DIRECTORY_SCRIPT/dbca.rsp"
echo "2.5 Create Database Completed."
echo "Oracle successfully installed"
2.PostgreSQL脚本
bash
【脚本说明】
1、下载PG源码安装包后上传到/opt目录下
2、ISO系统镜像需要挂载,后期用于YUM
3、MY_SERVER_IP、MY_HOSTNAME根据自己环境修改
4、PG_VERSION为版本号,如果其他版本请更改
直接执行脚本,自动化安装,本脚本适用于Linux7,其他操作系统可能涉及yum的配置不同,请自行修改
脚本创作不易,请多多支持,关注公众号:IT邦德
bash
#!/bin/bash
#==============================================================#
# 脚本名 : PG_SOUECE.sh
# 创建时间 : 2024-03-08 22:00:00
# 更新时间 : 2024-03-09 23:00:00
# 描述 : PostgreSQL数据库源码一键安装脚本(单机)
# Linux系统 : Liunx7
# PG版本 : 14.11
# 脚本路径 : /opt
# 版本 : 2.0.0
# 作者 : 王丁丁,公众号:IT邦德,PostgreSQL ACE Partner
# 说明 : 其他版本替换相应的源码包即可
#==============================================================#
#==============================================================#
# 基础参数 #
#==============================================================#
##需要设置的参数
#本机服务器IP
export MY_SERVER_IP=192.168.3.20
#本机服务器主机名
export MY_HOSTNAME=pgpcp
#PostgreSQL相关RPM包上传根目录
export MY_SOFT_BASE=/opt
#PG源码包
export PG_SOFT=postgresql-14.11.tar.gz
#PG版本
export PG_VERSION=14.11
## ISO系统镜像存放目录
export MY_DIRECTORY_ISO=/opt
##PG源码包存放的目录
export MY_DIRECTORY_SOFT=$MY_SOFT_BASE
##PG脚本存放的目录
export MY_DIRECTORY_SCRIPT=$MY_SOFT_BASE
#==============================================================#
# PG安装相关配置 #
#==============================================================#
#PG根目录
export MY_PG_HOME=/pgccc
#PG数据目录
export PGDATA=$MY_PG_HOME/pgdata
#PG家目录
export PGHOME=/pgccc/pgsql
##PG源码编译目录
export MY_PG_COMPILE=/pgccc/soft/postgresql-$PG_VERSION
##判断安装包是否上传
if [ -f $MY_DIRECTORY_SOFT/$PG_SOFT ]; then
echo "PG Source Soft Already Upload"
else
echo "Please Upload PG Source Soft First"
exit
fi
#==============================================================#
# 挂载光驱 #
#==============================================================#
## 1.将ISO系统镜像上传到系统
## 2.将数据库软件上传到系统
## 确认是否有光驱设备
echo " "
MY_ISO=`mount | grep iso9660`
if [ ! -n "$MY_ISO" ];then
echo "Please Mount A CD ISO Image First"
exit
else
mount /dev/cdrom /mnt/ >/dev/null 2>&1
echo "Mount A CD ISO Image Already"
fi
#==============================================================#
# 1.本地yum配置 #
#==============================================================#
mkdir -p /tmp/confbak/yumbak/
mv /etc/yum.repos.d/* /tmp/confbak/yumbak/ >/dev/null 2>&1
## 确认操作系统的版本,配置yum
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "Distribution: $ID"
echo "Version: $VERSION_ID"
if [ "$ID" = "8" ];then
echo "[localREPO]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/BaseOS" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
echo "[localREPO_APP]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8_app" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/AppStream" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
else
echo "[Oracle]" >> /etc/yum.repos.d/my.repo
echo "name=oracle_install" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
fi
else
echo "No OS Release file found."
fi
yum -y install bc >/dev/null 2>&1
echo "1 Configure yum Completed."
#==============================================================#
# 2.安装前准备工作 #
#==============================================================#
## 2.1 设置主机名
hostnamectl set-hostname $MY_HOSTNAME
sed -i '/^HOSTNAME=/d' /etc/sysconfig/network
echo "HOSTNAME=$MY_HOSTNAME" >> /etc/sysconfig/network
echo "2.1 Configure hostname completed."
## 2.2 修改hosts
cp /etc/hosts /tmp/confbak
cat >> /etc/hosts <<EOF
$MY_SERVER_IP $MY_HOSTNAME
EOF
echo "2.2 Configure Hosts Completed."
## 2.3 安装PG依赖
yum install -y openssl openssl-devel pam pam-devel libxml2 libxml2-devel \
libxslt libxslt-devel perl perl-devel python-devel perl-ExtUtils-Embed \
readline readline-devel bzip2 zlib zlib-devel ntp ntpdate \
gettext gettext-devel bison flex gcc gcc-c++ \
boost-devel gmp* mpfr* libevent* libpython3.6m >/dev/null 2>&1
echo "2.3 Install PG dependency Completed."
## 2.4 关闭防火墙
systemctl stop firewalld.service >/dev/null 2>&1
systemctl disable firewalld.service >/dev/null 2>&1
systemctl status firewalld.service >/dev/null 2>&1
echo "2.4 Disable Firewalld Service Completed."
## 2.5 关闭SELinux
sed -i '/^SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config
# cat /etc/selinux/config|grep "SELINUX=disabled"
setenforce 0 >/dev/null 2>&1
echo "2.5 close SELinux completed."
## 2.6 建立用户和组
if id -u postgres >/dev/null 2>&1; then
echo "postgres User Exists."
else
groupadd -g 70000 postgres >/dev/null 2>&1
useradd -u 70000 -g postgres postgres >/dev/null 2>&1
echo postgres | passwd --stdin postgres >/dev/null 2>&1
echo "User postgres Created Completed."
fi
echo "2.6 Establish users and groups Completed."
## 2.7 创建相关目录
mkdir -p $MY_PG_HOME/{pgdata,archive,scripts,backup,pgsql,soft}
chown -R postgres:postgres $MY_PG_HOME
chmod -R 775 $MY_PG_HOME
echo "2.7 PG Directories Created Completed."
## 2.8 修改postgres用户环境变量
echo 'export PS1="[\u@\h \W]\$"' >> /home/postgres/.bash_profile
su - postgres -c "
cat >> /home/postgres/.bash_profile <<EOF
export LANG=en_US.UTF-8
export PGPORT=5432
export PGDATA=$PGDATA
export PGHOME=$PGHOME
export PATH=$PGHOME/bin:$PATH:.
export PGUSER=postgres
export PGDATABASE=postgres
EOF
"
source /home/postgres/.bash_profile >/dev/null 2>&1
echo "2.8 Configure postgres Env Completed."
#==============================================================#
# 3.PG数据库安装工作 #
#==============================================================#
## 3.1 解压数据库软件
echo "3.1 Start Unzip PG Software."
cp $MY_DIRECTORY_SOFT/$PG_SOFT $MY_PG_HOME/soft
cd $MY_PG_HOME/soft
tar -zxvf $MY_PG_HOME/soft/$PG_SOFT
chown -R postgres:postgres $MY_PG_HOME/soft
chmod 755 -R $MY_PG_HOME/soft
echo "3.1 Unzip PG Software Completed."
## 3.2 PG编译安装
su - postgres -c "$MY_PG_COMPILE/configure --prefix=$PGHOME --without-readline" >/dev/null 2>&1
cd $MY_PG_COMPILE
su - postgres -c "make -j 4 && make install" >/dev/null 2>&1
su - postgres -c "$PGHOME/bin/initdb -D $PGDATA -E UTF8 --locale=en_US.utf8 -U postgres" >/dev/null 2>&1
echo "3.2 PG Compile Installation."
## 3.3 配置数据库参数
su - postgres -c "
cat >> $PGDATA/postgresql.conf <<EOF
listen_addresses = '*'
port=5432
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOF
"
echo "postgresql.conf successfully"
su - postgres -c "
cat > $PGDATA/pg_hba.conf << EOF
# TYPE DATABASE USER ADDRESS METHOD
local all all trust
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5
local replication all trust
EOF
"
echo "pg_hba.conf successfully"
systemctl start ntpd >/dev/null 2>&1
systemctl enable ntpd >/dev/null 2>&1
echo "3.3 Configure database parameters successfully"
3.MySQL脚本
bash
【脚本说明】
1、下载MySQL二进制安装包后上传到/opt目录下
2、ISO系统镜像需要挂载,后期用于YUM
3、脚本中最后修了root密码为:Jeames@007
4、脚本中配置了二进制自启动数据库到服务
直接执行脚本,自动化安装,本脚本适用于Linux7,
其他操作系统可能涉及yum的配置不同,请自行修改
脚本创作不易,请多多支持!
bash
#!/bin/bash
#==============================================================#
# 脚本名 : MySQL_GENERIC.sh
# 创建时间 : 2024-03-08 22:00:00
# 更新时间 : 2025-02-10 10:00:00
# 描述 : MySQL数据库二进制一键安装脚本(单机)
# Linux系统 : Liunx7
# MySQL版本 : 8.0.27
# 脚本路径 : /opt
# 版本 : 3.0.0
# 作者 : 公众号:IT邦德,Oracle ACE
# 说明 : 其他版本替换相应的二进制包即可
#==============================================================#
#==============================================================#
# 基础参数 #
#==============================================================#
##需要设置的参数
#本机服务器IP
export MY_SERVER_IP=192.168.3.10
#本机服务器主机名
export MY_HOSTNAME=mysql
#MySQL相关RPM包上传根目录
export MY_SOFT_BASE=/opt
#MySQL二进制包
export MY_HOME=/mysql
export MY_SOFT=mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
## ISO系统镜像存放目录
export MY_DIRECTORY_ISO=/opt
##MySQL二进制包存放的目录
export MY_DIRECTORY_SOFT=$MY_SOFT_BASE
##MySQL脚本存放的目录
export MY_DIRECTORY_SCRIPT=$MY_SOFT_BASE
##判断安装包是否上传
if [ -f $MY_DIRECTORY_SOFT/$MY_SOFT ]; then
echo "MySQL GENERIC Soft Already Upload"
else
echo "Please Upload MySQL GENERIC Soft First"
exit
fi
#==============================================================#
# 挂载光驱 #
#==============================================================#
## 1.将ISO系统镜像上传到系统
## 2.将数据库软件上传到系统
## 确认是否有光驱设备
echo " "
MY_ISO=`mount | grep iso9660`
if [ ! -n "$MY_ISO" ];then
echo "Please Mount A CD ISO Image First"
exit
else
mount /dev/cdrom /mnt/ >/dev/null 2>&1
echo "Mount A CD ISO Image Already"
fi
#==============================================================#
# 1.本地yum配置 #
#==============================================================#
mkdir -p /tmp/confbak/yumbak/
mv /etc/yum.repos.d/* /tmp/confbak/yumbak/ >/dev/null 2>&1
## 确认操作系统的版本,配置yum
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "Distribution: $ID"
echo "Version: $VERSION_ID"
if [ "$ID" = "8" ];then
echo "[localREPO]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/BaseOS" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
echo "[localREPO_APP]" >> /etc/yum.repos.d/my.repo
echo "name=localhost8_app" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/AppStream" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
else
echo "[Oracle]" >> /etc/yum.repos.d/my.repo
echo "name=oracle_install" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
fi
else
echo "No OS Release file found."
fi
yum -y install bc >/dev/null 2>&1
echo "1 Configure yum Completed."
#==============================================================#
# 2.安装前准备工作 #
#==============================================================#
## 2.1 设置主机名
hostnamectl set-hostname $MY_HOSTNAME
sed -i '/^HOSTNAME=/d' /etc/sysconfig/network
echo "HOSTNAME=$MY_HOSTNAME" >> /etc/sysconfig/network
echo "2.1 Configure hostname completed."
## 2.2 修改hosts
cp /etc/hosts /tmp/confbak
cat >> /etc/hosts <<EOF
$MY_SERVER_IP $MY_HOSTNAME
EOF
echo "2.2 Configure Hosts Completed."
## 2.3 安装MySQL依赖
yum -y install ntp ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make >/dev/null 2>&1
echo "2.3 Install MySQL dependency Completed."
## 2.4 关闭防火墙
systemctl stop firewalld.service >/dev/null 2>&1
systemctl disable firewalld.service >/dev/null 2>&1
systemctl status firewalld.service >/dev/null 2>&1
echo "2.4 Disable Firewalld Service Completed."
## 2.5 关闭SELinux
sed -i '/^SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config
# cat /etc/selinux/config|grep "SELINUX=disabled"
setenforce 0 >/dev/null 2>&1
echo "2.5 close SELinux completed."
## 2.6 建立用户和组
if id -u mysql >/dev/null 2>&1; then
echo "mysql User Exists."
else
groupadd -g 60000 mysql >/dev/null 2>&1
useradd -u 60000 -g mysql mysql >/dev/null 2>&1
echo mysql | passwd --stdin mysql >/dev/null 2>&1
echo "2.6 User mysql Created Completed."
fi
echo "2.6 Establish users and groups Completed."
## 2.7 创建相关目录
mkdir -p $MY_HOME/{app,conf}
mkdir -p $MY_HOME/data/mysql3306/{pid,socket,log,binlog,errlog,relaylog,slowlog,tmp}
chown -R mysql:mysql $MY_HOME
chmod -R 775 $MY_HOME
echo "2.7 MySQL Directories Created Completed."
## 2.8 修改MySQL用户环境变量
echo 'export PS1="[\u@\h \W]\$"' >> /home/mysql/.bash_profile
cat >> /home/mysql/.bash_profile <<EOF
export MYSQL_HOME=$MY_HOME/app/mysql
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$MY_HOME/app/mysql/bin
EOF
source /home/mysql/.bash_profile > /dev/null
echo "2.8 Configure MySQL Env Completed."
#==============================================================#
# 3.MySQL数据库安装工作 #
#==============================================================#
## 3.1 解压数据库软件
echo "3.1 Start Unzip MySQL Software."
cp $MY_DIRECTORY_SOFT/$MY_SOFT $MY_HOME/app
cd $MY_HOME/app
tar xvf $MY_HOME/app/$MY_SOFT
mv ${MY_SOFT/%.tar.xz/} mysql
chown -R mysql:mysql $MY_HOME/app
chmod 755 -R $MY_HOME/app
echo "3.1 Unzip MySQL Software Completed."
## 3.2 配置数据库参数
su - mysql -c "
cat >> $MY_HOME/conf/mysql.cnf <<EOF
[mysqld]
server_id = 803306
default-storage-engine= InnoDB
socket=/tmp/mysql.sock
basedir=$MY_HOME/app/mysql
datadir=$MY_HOME/data/mysql3306/data/
log-error=$MY_HOME/data/mysql3306/log/mysqld.log
pid-file=$MY_HOME/data/mysql3306/pid/mysqld.pid
port=3306
default_authentication_plugin=mysql_native_password
transaction_isolation=READ-COMMITTED
max_connections=1500
back_log=500
wait_timeout=1800
max_user_connections=800
innodb_buffer_pool_size=1024M
innodb_log_file_size=512M
innodb_log_buffer_size=40M
slow_query_log=ON
long_query_time=5
# log settings #
slow_query_log = ON
slow_query_log_file = $MY_HOME/data/mysql3306/slowlog/slow3306.log
log_error = $MY_HOME/data/mysql3306/errlog/err3306.log
log_error_verbosity = 3
log_bin = $MY_HOME/data/mysql3306/binlog/mysql_bin
log_bin_index = $MY_HOME/data/mysql3306/binlog/mysql_binlog.index
general_log_file = $MY_HOME/mysql/mysql3306/generallog/general.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
expire_logs_days = 90
binlog_expire_logs_seconds = 2592000
long_query_time = 2
min_examined_row_limit = 100
log_throttle_queries_not_using_indexes = 1000
innodb_flush_log_at_trx_commit=1
EOF
"
echo "3.2 mysql.cnf successfully"
## 3.3 MySQL二进制安装
su - mysql -c "mysqld --defaults-file=$MY_HOME/conf/mysql.cnf --initialize --user=mysql --basedir=$MY_HOME/app/mysql --datadir=$MY_HOME/data/mysql3306/data/
" >/dev/null 2>&1
rm -rf /etc/systemd/system/mysql.service
systemctl daemon-reload
cat > /etc/systemd/system/mysql.service <<EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
#二进制启动mysqld的命令
ExecStart=$MY_HOME/app/mysql/bin/mysqld_safe --defaults-file=$MY_HOME/conf/mysql.cnf
ExecStop=$MY_HOME/app/mysql/bin/mysqladmin -u root -p shutdown
User=mysql
Group=mysql
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable mysql.service
systemctl start mysql.service
echo "3.3 MySQL Compile Installation."
systemctl start ntpd >/dev/null 2>&1
systemctl enable ntpd >/dev/null 2>&1
## 3.4 修改密码
Pass=$(grep 'A temporary password' $MY_HOME/data/mysql3306/errlog/err3306.log |awk '{print $NF}')
echo -e "mysql default passwd is: ${Pass}"
# 修改密码,请执行以下语句
echo -e "alter user root@'localhost' identified with mysql_native_password by 'root';"
echo "Configure database parameters successfully"
4. SQL server脚本
bash
【脚本说明】
1、下载SQL server RPM包上传到/opt目录下
2、建议服务器内存需≥4GB,建议swap空间≥2GB
3. SQL server RPM可以通过官网下载
https://learn.microsoft.com/zh-cn/
直接执行脚本,自动化安装,本脚本适用于Linux7,
其他操作系统可能涉及yum的配置不同,请自行修改
脚本创作不易,请多多支持!
bash
#!/bin/bash
#==============================================================#
# 脚本名 : mssql_offline.sh
# 创建时间 : 2024-03-08 22:00:00
# 更新时间 : 2025-02-10 10:00:00
# 描述 : SQL Server离线安装脚本
# Linux系统 : Liunx7
# 脚本路径 : /opt
# 版本 : 3.0.0
# 作者 : 公众号:IT邦德,Oracle ACE
# 说明 : 其他版本替换相应的二进制包即可
#==============================================================#
#==============================================================#
# 挂载光驱 #
#==============================================================#
## 确认是否有光驱设备
echo " "
MY_ISO=`mount | grep iso9660`
if [ ! -n "$MY_ISO" ];then
echo "Please Mount A CD ISO Image First"
exit
else
mount /dev/cdrom /mnt/ >/dev/null 2>&1
echo "Mount A CD ISO Image Already"
fi
#==============================================================#
# 本地yum配置 #
#==============================================================#
mkdir -p /tmp/confbak/yumbak/
mv /etc/yum.repos.d/* /tmp/confbak/yumbak/ >/dev/null 2>&1
## 确认操作系统的版本,配置yum
echo "[mssql]" >> /etc/yum.repos.d/my.repo
echo "name=mssql_install" >> /etc/yum.repos.d/my.repo
echo "baseurl=file:///mnt/" >> /etc/yum.repos.d/my.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/my.repo
echo "enabled=1" >> /etc/yum.repos.d/my.repo
# 强制root权限运行
if [[ $EUID -ne 0 ]]; then
echo "必须使用root权限运行" >&2
exit 1
fi
# 配置参数(安装前需修改)
INSTALL_DIR="/opt" # 离线包存放路径
SA_PASSWORD="Your@StrongPwd123" # 需包含大小写+数字+特殊字符
INSTALL_MODE="Evaluation"
TCP_PORT=1433
# 安装日志记录
yum install tree >/dev/null 2>&1
rm -rf /var/offline_install.log
touch /var/offline_install.log
LOG_FILE="/var/offline_install.log"
# 校验离线包完整性
echo "1.校验离线安装包"
REQUIRED_FILES=(
"mssql-server-*.rpm" # 主程序包
"mssql-tools-*.rpm" # 命令行工具
"unixODBC-*.rpm" # 关键依赖
)
for file in "${REQUIRED_FILES[@]}"; do
if ! ls $INSTALL_DIR/$file &> /dev/null; then
echo "缺失文件:$file,请检查$INSTALL_DIR目录" >&2
exit 1
fi
done
# 安装基础依赖
echo "2.安装系统依赖"
yum install -y gcc glibc-devel libstdc++-devel >/dev/null 2>&1
yum -y install firewalld policycoreutils-python libsss_nss_idmap libatomic python3 >> $LOG_FILE 2>&1 || {
echo "依赖安装失败,请检查离线包中的ODBC等组件"; exit 1
}
# 安装主程序(自动处理依赖顺序)
echo "3.安装SQL Server组件..."
##yum remove mssql-server -y
##rm -rf /var/opt/mssql/
rpm -ivh $INSTALL_DIR/unixODBC-*.rpm >> $LOG_FILE 2>&1
rpm -ivh $INSTALL_DIR/mssql-server-*.rpm >> $LOG_FILE 2>&1
rpm -ivh $INSTALL_DIR/msodbcsq*.rpm >> $LOG_FILE 2>&1
# 初始配置
echo "4.运行初始配置"
sudo MSSQL_SA_PASSWORD=$SA_PASSWORD \
MSSQL_PID=$INSTALL_MODE \
MSSQL_TCP_PORT='1433' \
ACCEPT_EULA=Y \
/opt/mssql/bin/mssql-conf -n setup
# 防火关闭
echo "5.关闭防火墙"
systemctl stop firewalld.service >/dev/null 2>&1
systemctl disable firewalld.service >/dev/null 2>&1
systemctl status firewalld.service >/dev/null 2>&1
## 关闭SELinux
sed -i '/^SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config
# cat /etc/selinux/config|grep "SELINUX=disabled"
setenforce 0 >/dev/null 2>&1
# 验证安装
echo "6.验证服务状态"
if ! systemctl is-active mssql-server &> /dev/null; then
echo "服务未运行,检查日志:/var/opt/mssql/log/errorlog" >&2
exit 1
fi
# 安装命令行工具
echo "7.安装SQLCMD工具"
rpm -ivh $INSTALL_DIR/mssql-tools-*.rpm >> $LOG_FILE 2>&1
cat << EOF >> /etc/profile.d/mssql.sh
export PATH=\$PATH:/opt/mssql-tools/bin
EOF
source /etc/profile.d/mssql.sh
echo "8.安装成功!连接命令"
echo "sqlcmd -S localhost -U sa -P '$SA_PASSWORD'"
echo "详细日志:$LOG_FILE"