2. 一键安装oracle19c数据库

文章目录

  • 前言
  • 一、Oracle19c数据库安装
  • 二、使用步骤
    • 1.脚本内容
    • 2.执行安装
  • 总结

1.Oracle11gR2数据库安装
https://edu.csdn.net/course/detail/27750

2.Oracle 12c 数据库安装
https://edu.csdn.net/course/detail/35882

3.Oracle 19c 数据库一键安装
https://edu.csdn.net/course/detail/39198

4.Oracle 19c RAC For Linux安装部署 (视频讲解)
https://edu.csdn.net/course/detail/35792

5.oracle 19c 数据库基础和日常管理
https://edu.csdn.net/course/detail/36112

6.Oracle 11g DataGuard RAC集群到单节点部署
https://edu.csdn.net/course/detail/35959

7.Oracle数据库 底层原理解析_解析oracle数据库内部实现(视频讲解)
https://edu.csdn.net/course/detail/35647

8.MySQL数据库基础实战教程
https://edu.csdn.net/course/detail/26743


前言

Oracle数据库在Linux系统上安装步骤比较多,为了方便Oracle数据库的安装,编写了以下脚本,简化了Oracle数据库的安装。


一、一键安装Oracle19c数据库

脚本是使用shell编写,使用的时候只要按照实际情况修改脚本前面的变量,然后上传Oracle软件到Linux系统,执行shell脚本即可。

二、使用步骤

1.脚本内容

代码如下(示例):

#!/bin/bash

## 环境准备 ##
## 1.将ISO系统镜像上传到系统
## 2.将数据库软件上传到系统
if [ ! -d /opt/iso ]; then 
    mkdir /opt/iso #手动执行
fi

if [ ! -d /opt/oracle/sw ]; then 
    mkdir -p /opt/oracle/sw #手动执行
fi

## ISO系统镜像存放目录
export MY_DIRECTORY_ISO=/opt/iso #手动执行
export MY_SOFT_ISO=CentOS-7-x86_64-DVD-1810.iso #手动执行

mount -o loop $MY_DIRECTORY_ISO/$MY_SOFT_ISO /mnt  >/dev/null 2>&1 #手动执行

echo " "
MY_EXEC=`mount | grep iso9660`
if [ ! -n "$MY_EXEC" ];then
    echo "Please Mount A CD ISO Image First"
    exit
else  
    echo "Mount A CD ISO Image Already"    
fi


##需要设置的参数
#本机服务器IP
export MY_SERVER_IP=192.168.1.10   #需要设置
#本机服务器主机名
export MY_HOSTNAME=db01   #需要设置
#ORACLE软件上传根目录
export MY_SOFT_BASE=/opt/oracle   #需要设置
#ORACLE软件安装根目录
export MY_DIR=/u01   #需要设置
#ORACLE SID变量
export MY_ORA_SID=orcl    #需要设置
#ORACLE SYS密码
export MY_ORA_PASSWD=QAJ2Ceq#xoGEy6Hw    #需要设置
#ORACLE软件名
export MY_ORA_SOFT1=LINUX.X64_19.3.0_193000_db_home.zip    #需要设置
#ORACLE软件依赖包
export MY_ORA_RPM=compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm    #需要设置


##----数据库软件和脚本存储目录----------
##ORACLE软件存放的目录
export MY_DIRECTORY_SOFT=$MY_SOFT_BASE/sw

##ORACLE脚本存放的目录
export MY_DIRECTORY_SCRIPT=$MY_SOFT_BASE/script

##----Oracle软件安装相关配置------------
##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

##数据文件存放目录
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

##----服务器相关配置----------
##服务器内存大小G单位
export MY_MEMORY_GB=`free -g | grep Mem | awk '{print $2}'`

##根据内存计算内核参数大小
mkdir -p /tmp/confbak/yumbak/
mv /etc/yum.repos.d/*  /tmp/confbak/yumbak/  >/dev/null 2>&1

cat >> /etc/yum.repos.d/my.repo  <<EOF
[Oracle]
name=oracle_install
baseurl=file:///mnt/
gpgcheck=0
enabled=1
EOF
yum -y install bc   >/dev/null 2>&1

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/4096" | bc | awk -F "." '{print $1}'`


##----------------------------------------------------------

mkdir -p /tmp/confbak
rm -rf /tmp/confbak/*
echo " "
echo " "
echo -ne "Start Install Oracle..."
for (( i = 1; i <= 10; i++ )) 
do  
        echo -ne ".";sleep 1;
done
echo " "

## 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/hosts

> /etc/hosts
cat >> /etc/hosts <<EOF
127.0.0.1       localhost
$MY_SERVER_IP    $MY_HOSTNAME
EOF
echo "1.2 Configure Hosts Completed."


## 1.3 配置yum,安装数据库依赖包
yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline* bc kmod-libs xdpyinfo unzip  >/dev/null 2>&1

cd $MY_DIRECTORY_SOFT
rpm -ivh $MY_ORA_RPM  >/dev/null 2>&1

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 "2.3 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.ZHS16GBK
umask 022
EOF
"
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/ -R
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
EOF
chown oracle.oinstall $MY_DIRECTORY_SCRIPT -R
echo "2.1 Create Silent Configure File Completed."

## 2.2 静默安装数据库软件
#cd $MY_DIRECTORY_SOFT/database
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=AL16UTF16
sampleSchema=true
totalMemory=2048
databaseType=OLTP
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."

2.执行安装

代码如下(示例):

将以上内容保存为 oracle19c_install.sh

su - oracle

chmod +x oracle11g_install.sh

执行安装

sh oracle19c_install.sh


总结

以上就是Oracle19c数据库安装的脚本,通过一键安装脚本,可以方便的在Linux系统安装Oracle数据库。

 Oracle数据库 底层原理解析 (解析oracle数据库内部实现)
https://edu.csdn.net/course/detail/35647

Oracle 19c RAC For Linux安装部署
https://edu.csdn.net/course/detail/35792

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
安装Oracle19c需要一些步骤和准备工作。下面是在Ubuntu 22.04上安装Oracle19c的一般步骤: 1. 首先,在Ubuntu 22.04上安装一些先决条件软件包,如libaio1和bc等。可以使用以下命令进行安装: ``` sudo apt-get install libaio1 bc ``` 2. 接下来,需要创建一个名为oracle的用户和组,并设置相关环境变量。可以使用以下命令进行操作: ``` sudo useradd -m -s /bin/bash oracle sudo passwd oracle sudo usermod -aG sudo oracle echo "oracle soft memlock unlimited" | sudo tee -a /etc/security/limits.conf echo "oracle hard memlock unlimited" | sudo tee -a /etc/security/limits.conf echo "session required pam_limits.so" | sudo tee -a /etc/pam.d/login ``` 然后,切换到oracle用户并设置相关环境变量: ``` su - oracle echo "export ORACLE_BASE=/opt/oracle" >> .bashrc echo "export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1" >> .bashrc echo "export PATH=$PATH:$ORACLE_HOME/bin" >> .bashrc source .bashrc ``` 3. 下载并解压Oracle19c安装文件。可以从Oracle官方网站下载适用于Linux的Oracle Database 19c软件安装包,然后解压缩到适当的目录。例如: ``` mkdir -p /opt/oracle tar -xzvf oracle-database-xxxxxxxxxx.tar.gz -C /opt/oracle ``` 4. 运行Oracle Installer来安装Oracle19c。使用以下命令进入安装目录并运行installer: ``` cd /opt/oracle/database ./runInstaller ``` 在图形界面中,按照向导的提示选择相应的选项,例如安装类型、Oracle数据库软件位置和数据库配置等。然后,等待安装完成。 5. 安装过程结束后,可以使用Database Configuration Assistant(DBCA)来创建和配置Oracle数据库。运行以下命令启动DBCA: ``` dbca ``` 按照向导的提示进行数据库创建和配置,例如选择数据库类型、命名等。 完成上述步骤后,您应该能够在Ubuntu 22.04上成功完成Oracle19c安装。请注意,在实际安装过程中可能会遇到一些问题和异常情况,根据具体需求和系统环境可能需要进行一些额外的配置和调整。因此,建议在安装前仔细阅读官方文档和参考资料以获得更全面和详细的指导。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天才小犀牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值