Oracle11g安装打怪升级之路

#!/bin/bash
# -*- coding: UTF-8 -*-
# Filename: oracle_install.sh
# Description: Install the oracle database configuration document on the Linux system
# 脚本内容根据自己经常安装整理,可以正常安装,有感兴趣的小伙伴可以试试练练手,或许你缺的不是天赋,而是敢想敢练的野心,多动手多动脑多思考菜鸟也能成为大神,有问题可以联系我。
# Author: SERE

# 将系统自带的yum源改成备份(/etc/yum.repos.d)
for name in /etc/yum.repos.d/*.repo; do
    mv $name $name.bak
done

# 开始配置YUM源,这里使用的是OEL网络源,网络源有时间太慢,可以下载OEL镜像,挂在本地配置yum源
echo -e "\033[32m开始配置本地YUM源\033[0m"
cat <<EOF >/etc/yum.repos.d/local.repo
[RHEL]
name=RHEL
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/
enabled=1
gpgcheck=0
EOF

chmod -R 755 /etc/yum.repos.d/local.repo
echo -e "\033[32m本地YUM源配置完成\033[0m"
yum clean all

# 配置oracle安装相关参数,此处使用oracle自带脚本
RPM=oracle-rdbms-server-11gR2
PACKAGE=`rpm -qa | grep $RPM`
if [ `rpm -qa | grep $RPM | wc -l` -ne 0 ];then
    echo -e "\033[32mThe package already installed and latest version\033[0m"
else
    echo "The package $RPM install"
    yum install -y $RPM*
    echo -e "\033[32mThe oracle-rdbms-server-11gR2-preinstall installation completed\033[0m"
fi
# 如果安装了oracle-rdbms-server-11gR2-preinstall,安装参数文件会自动配置,执行脚本之前请将sysctl.conf和limits.conf注释掉
# sysctl.conf
cat <<EOF >>/etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
EOF
# limits.conf
cat <<EOF >>/etc/security/limits.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728
EOF
# 注释

# /home/app/oracle目录下,所以需创建该目录:
mkdir -p /home/app/oracle
chown -R oracle:oinstall /home/app/oracle
chmod -R 755 /home/app/oracle
# 安装时数据放在/home/app/oracle/oradata目录下,所以需创建该目录:
mkdir -p /home/app/oracle/oradata
chown -R oracle:oinstall /home/app/oracle/oradata
chmod -R 755 /home/app/oracle/oradata
# 安装时还需要设置Inventory目录,所以需创建该目录:
mkdir -p /home/app/oraInventory
chown -R oracle:oinstall /home/app/oraInventory
chmod -R 755 /home/app/oraInventory
# 设置ORACLE_HOME目录
mkdir -p /home/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /home/app/oracle/product/11.2.0/dbhome_1
chmod -R 755 /home/app/oracle/product/11.2.0/dbhome_1
echo -e "\033[32m数据库安装所需目录创建完成 \033[0m"

# 注意:此处的/home/app/oracle为 oracle安装文件的实际存放路径,设置oracle帐号登录时环境(以下用oracle身份登录)。命令如下:
# vim /home/oracle/.bash_profile,
# 添加如下行:卸载重新安装加上export

cat <<EOF >/home/oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=\$PATH:\$HOME/bin
export PATH
export ORACLE_BASE=/home/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=C
export PATH=\$PATH:\$ORACLE_HOME/bin:\$HOME/bin
EOF

echo -e "\033[32m查看oracle环境变量 \033[0m"
cat /home/oracle/.bash_profile
source /home/oracle/.bash_profile
echo -e "\033[32m查看ORACLE_BASE、ORACLE_HOME环境变量 \033[0m"
echo "ORACLE_BASE:$ORACLE_BASE"
echo "ORACLE_HOME:$ORACLE_HOME"

# 解压Oracle 11g压缩包,在执行脚本之前先将Oracle 11g压缩包上传到/home/目录
if [ -d /home/database/ ]; then
    du -sh /home/database
else
    cd /home/
    unzip linux_64_112010_database_1of2.zip
    unzip linux_64_112010_database_2of2.zip
fi

echo -e "\033[32m数据库oracle安装包解压完成 \033[0m"
# 修改oracle用户密码
# echo -e "\033[32m修改oracle用户密码\033[0m"
echo "1" | passwd --stdin oracle &>/dev/null
echo "oracle用户默认密码:1,为了安全请及时修改"
# 切换oracle用户
echo -e "\033[32m数据库oracle11.2安装环境配置完成 \033[0m"

sleep 5

echo -e "\033[32m数据库进行静默安装配置\033[0m"
# 可以自定义手动安装,也可以静默安装,有时候服务器上没有安装图形化界面,为了简单方便就静默安装。
# 修改要使用的响应文件参数配置
cat <<EOF >/home/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=localhost.localdomain
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/home/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/home/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
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=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
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.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
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=/home/app/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/home/app/oracle/flash_recovery_area
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
EOF

echo -e "\033[32m数据库进行静默安装配置完成\033[0m"
echo -e "\033[32m用oracle用户登录系统\033[0m"
echo -e "\033[32m在终端执行./runInstaller -silent -ignorePrereq -responseFile /home/database/response/db_install.rsp\033[0m"
# 参数解释:
# -ignorePrereq 忽略运行先决条件检查。
# -silent 对于无提示模式下的操作, 输入内容可以是一个响应文件, 也可以是命令行变量值对的列表。
# -showProgress 用于在控制台上显示安装进度。仅在无提示安装下才支持此选项。
# -responseFile 指定要使用的响应文件和路径。
# 开始安装(用oracle用户登录安装,不能用root登录切换oracle用户)执行该程序开始安装,需要执行export LANG=C以防止中文乱码
export LANG=C

# 以下内容为数据库(oracle 11g)安装后开机自启动设置,命令如下:
# 在/etc/oratab将N修改Y
# orcl:/home/app/oracle/product/11.2.0/dbhome_1:N
# orcl:/home/app/oracle/product/11.2.0/dbhome_1:Y
# sed -i 's/:N/:Y/' /etc/oratab
# 在/etc/rc.d/rc.local加上以下两段(目录为oracle安装路径)
# cat <<EOF >>/etc/rc.d/rc.local
# su oracle -lc "/home/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
# su oracle -lc /home/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
# EOF
# 数据库(oracle 11g)已安装完成,开机验证一下自启动,谢谢您能浏览到最后。
# 数据库卸载删除以下目录及文件
# rm -rf /home/app
# rm -rf /usr/local/bin/dbhome
# rm -rf /usr/local/bin/oraenv
# rm -rf /usr/local/bin/coraenv
# rm -rf /etc/oratab
# rm -rf /etc/oraInst.loc
# For Dream,We're Studying!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值