全栈适配MySQL/Oracle/PostgreSQL/SQL server,3分钟极速部署,人力成本直降70%,老板连夜要求全员掌握。
这里小编将这些脚本整理出来,分享给大家。
更多技术分享点击下方链接👇👇👇👇
https://ocpsydz71e.feishu.cn/docx/EqksdLwRlooByfxTmlBcibyYnAe
1.Oracle脚本
【脚本说明】 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邦德
复制
#!/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脚本
【脚本说明】 1、下载PG源码安装包后上传到/opt目录下 2、ISO系统镜像需要挂载,后期用于YUM 3、MY_SERVER_IP、MY_HOSTNAME根据自己环境修改 4、PG_VERSION为版本号,如果其他版本请更改 直接执行脚本,自动化安装,本脚本适用于Linux7,其他操作系统可能涉及yum的配置不同,请自行修改 脚本创作不易,请多多支持,关注公众号:IT邦德
复制
#!/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脚本
【脚本说明】 1、下载MySQL二进制安装包后上传到/opt目录下 2、ISO系统镜像需要挂载,后期用于YUM 3、脚本中最后修了root密码为:Jeames@007 4、脚本中配置了二进制自启动数据库到服务 直接执行脚本,自动化安装,本脚本适用于Linux7, 其他操作系统可能涉及yum的配置不同,请自行修改 脚本创作不易,请多多支持!
复制
#!/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脚本
【脚本说明】 1、下载SQL server RPM包上传到/opt目录下 2、建议服务器内存需≥4GB,建议swap空间≥2GB 3. SQL server RPM可以通过官网下载 https://learn.microsoft.com/zh-cn/ 直接执行脚本,自动化安装,本脚本适用于Linux7, 其他操作系统可能涉及yum的配置不同,请自行修改 脚本创作不易,请多多支持!
复制
#!/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"
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
目录