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
文章目录
- 前言
- 一、Oracle11g数据库安装
- 二、使用步骤
- 1.脚本内容
- 2.执行安装
- 总结
前言
Oracle数据库在Linux系统上安装步骤比较多,为了方便Oracle数据库的安装,编写了以下脚本,简化了Oracle数据库的安装。
一、Oracle11g数据库安装
脚本是使用shell编写,使用的时候只要按照实际情况修改脚本前面的变量,然后上传Oracle软件到Linux系统,执行shell脚本即可。
二、使用步骤
1.脚本内容
内容如下:
#!/bin/bash
## 数据库安装步骤 ##
## 1.参数变量的设置
## 2.Linux操作系统配置
## 3.数据库软件安装和创建数据库
## 环境准备 ##
## 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-6.10-x86_64-bin-DVD1.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=oracle123 #需要设置
#ORACLE软件名
export MY_ORA_SOFT1=p13390677_112040_Linux-x86-64_1of7.zip #需要设置
export MY_ORA_SOFT2=p13390677_112040_Linux-x86-64_2of7.zip #需要设置
##----数据库软件和脚本存储目录----------
##ORACLE软件存放的目录
export MY_DIRECTORY_SOFT=$MY_SOFT_BASE/sw
##ORACLE脚本存放的目录
export MY_DIRECTORY_SCRIPT=$MY_SOFT_BASE/script
##----数据库软件安装相关配置----------
##ORACLE BASE目录
export MY_ORA_BASE=$MY_DIR/app/oracle
##ORACLE HOME目录
export MY_ORA_HOME=$MY_ORA_BASE/product/11.2.0/db_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 ] && [ -f $MY_DIRECTORY_SOFT/$MY_ORA_SOFT2 ]; 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 <= 6; i++ ))
do
echo -ne ".";sleep 1;
done
echo " "
## 1.1 设置主机名
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 elfutils-libelf-devel gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC unixODBC-devel libXp xdpyinfo unzip >/dev/null 2>&1
echo "1.3 Install Rpm Software Completed."
## 1.4 关闭防火墙
service iptables stop >/dev/null 2>&1
chkconfig --level 345 iptables off
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 oinstall >/dev/null 2>&1
groupadd dba >/dev/null 2>&1
groupadd oper >/dev/null 2>&1
useradd -g oinstall -G dba,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 修改ulimit
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 修改oracle用户环境变量
su - oracle -c "
cat >> /home/oracle/.bash_profile <<EOF
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=$MY_HOSTNAME; export ORACLE_HOSTNAME
ORACLE_UNQNAME=$MY_ORA_SID; export ORACLE_UNQNAME
ORACLE_BASE=$MY_ORA_BASE; export ORACLE_BASE
ORACLE_HOME=$MY_ORA_HOME; export ORACLE_HOME
ORACLE_SID=$MY_ORA_SID; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$MY_ORA_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$MY_ORA_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$MY_ORA_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
EOF
"
echo "1.11 Configure Oracle Env Completed."
## 1.12 解压数据库软件
echo "1.12 Start Unzip Oracle Software."
cd $MY_DIRECTORY_SOFT
rm -rf $MY_DIRECTORY_SOFT/database
unzip -q $MY_DIRECTORY_SOFT/$MY_ORA_SOFT1 && unzip -q $MY_DIRECTORY_SOFT/$MY_ORA_SOFT2 &
while true;
do
echo -n ".";sleep 1;
MY_EXEC=`ps -ef | grep unzip | grep -Evi grep`
if [ "$MY_EXEC" = "" ]
then
break;
fi
done
echo " "
chown oracle.oinstall $MY_DIRECTORY_SOFT -R
echo "1.12 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_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=$MY_HOSTNAME
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=$MY_INVENTORY_LOC
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=$MY_ORA_HOME
ORACLE_BASE=$MY_ORA_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=$MY_ORA_SID
oracle.install.db.config.starterdb.SID=$MY_ORA_SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=$MY_ORA_PASSWD
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=$MY_ORA_DATA
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=$MY_ORA_BASE/fast_recovery_area
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.optionalComponents=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
EOF
chown oracle.oinstall $MY_DIRECTORY_SCRIPT -R
echo "2.1 Create Silent Configure File Completed."
## 2.2 静默安装数据库软件
#cd $MY_DIRECTORY_SOFT/database
echo "2.2 Start Install Oracle Software."
su - oracle -c "$MY_DIRECTORY_SOFT/database/runInstaller -ignorePrereq -ignoreSysPrereqs -ignoreDiskWarning -silent -force -responseFile $MY_DIRECTORY_SCRIPT/db_install.rsp" >/dev/null 2>&1
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 静默配置数据库监听
cp $MY_DIRECTORY_SOFT/database/response/netca.rsp $MY_DIRECTORY_SCRIPT/netca.rsp
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
[GENERAL]
[CREATEDATABASE]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "$MY_ORA_SID"
SID = "$MY_ORA_SID"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "$MY_ORA_PASSWD"
SYSTEMPASSWORD = "$MY_ORA_PASSWD"
DATAFILEDESTINATION = $MY_ORA_BASE/oradata
RECOVERYAREADESTINATION=$MY_ORA_BASE/fast_recovery_area
CHARACTERSET = "AL32UTF8"
NATIONALCHARACTERSET="AL16UTF16"
TOTALMEMORY = "4069"
STORAGETYPE = "FS"
LISTENERS = "LISTENER"
DATABASETYPE = "OLTP"
EOF
echo "2.4 Create Silent Configure File Completed."
## 2.5 静默创建数据库
mkdir $MY_ORA_BASE/oradata
mkdir $MY_ORA_BASE/fast_recovery_area
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.执行安装
如下:
将以上内容保存为 oracle11g_install.sh
su - oracle
chmod +x oracle11g_install.sh
执行安装
sh oracle11g_install.sh
总结
以上就是Oracle11g数据库安装的脚本,通过一键安装脚本,可以方便的在Linux系统安装Oracle数据库。
Oracle数据库 底层原理解析 (解析oracle数据库内部实现)
https://edu.csdn.net/course/detail/35647
Oracle 19c RAC For Linux安装部署
https://edu.csdn.net/course/detail/35792