Oracle11g安装执行脚本,Centos下Oracle11gR2安装教程与自动化配置脚本的方法

系统环境准备

开发组件与依赖库安装

53cf1fd2b143114d9ac33a4b9861559a.png

安装centos时选择Server with GUI,右面的可以不勾选,后面统一来装

配置本地yum源

以上包如果缺乏可配置本地yum源进行安装

sudo mount /dev/cdrom /mnt/

[galen@localhost yum.repos.d]$ sudo vim /etc/yum.repos.d/cdrom.repo

[galen@localhost yum.repos.d]$ cat cdrom.repo

[c7-media]

name=isofile

baseurl=file:///mnt

enable=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[galen@localhost yum.repos.d]$ sudo mv CentOS-Base.repo CentOS-Base.repo-bak

[galen@localhost yum.repos.d]$ sudo mv CentOS-Media.repo CentOS-Media.repo-bak

[galen@localhost yum.repos.d]$ sudo mv cdrom.repo CentOS-Media.repo

配置好yum源后开始安装依赖库,如下

yum install glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++

关闭防火墙

[galen@localhost ~]$ systemctl stop firewalld.service

[galen@localhost ~]$ systemctl disable firewalld.service

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

关闭selinux

编辑/etc/sysconfig/selinux文件,保存退出后执行 setenforce 0命令

vim /etc/sysconfig/selinux

SELINUX=disabled

#SELINUXTYPE=targeted #注释掉

创建oracle用户、修改系统参数

创oracle建用户和组

[root@localhost galen]# groupadd oinstall

[root@localhost galen]# groupadd dba

[root@localhost galen]# useradd -g oinstall -G dba oracle

[root@localhost galen]# passwd oracle

[root@localhost galen]# id oracle

uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

系统参数设置

官方推荐值:

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912 #推荐超过一半的物理内存

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

通过 /sbin/sysctl -a |grep xxx 查看系统各参数,如果大于官方推荐值不修改,如果小于官方推荐值则修改为官方推荐值,写入/etc/sysctl.conf文件中,使用sysctl -p使其生效,示例如下

[root@localhost etc]# cat sysctl.conf

fs.aio-max-nr = 6815744

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

修改资源限制如下

[root@localhost etc]# vim /etc/security/limits.conf

oraclesoftnproc2048

oraclehardnproc16384

oraclesoftnofile1024

oraclehardnofile65536

oraclesoftstack10240

添加以下内容到/etc/pam.d/login

[root@localhost ~]# vim /etc/pam.d/login

session required pam_limits.so

添加以下内容到/etc/profile

[root@localhost ~]# vim /etc/profile

if [[ $USER = "oracle" ]]; then

if [[ $SHELL = "/bin/ksh" ]]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

保存后执行source /etc/profile生效

配置oracle用户环境变量,在/home/oracle/.bash_profile中加入如下内容

[root@localhost ~]# vim /home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=orcl

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH

export LANG="en_US.UTF-8"

export NLS_LANG=american_AMERICA.UTF8

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

创建oracle安装目录

mkdir -p /u01/app/oracle/product/11.2.0/db_1

chown -R oracle:oinstall /u01/app

chmod -R 775 /u01/app

安装oracle 11g

挂载oracle11g安装包iso(也可以通过其他方式将oracle安装包传到主机),将安装文件复制到oracle home目录下,修改文件权限给oracle用户

[root@localhost /]# mkdir /mnt/oracle11g

[root@localhost /]# mount /dev/cdrom /mnt/oracle11g/

[root@localhost /]# cp -r /mnt/oracle11g /home/oracle/

# 复制到oracle home目录下并修改权限

[root@localhost oracle]# chown -R oracle:oinstall /home/oracle/oracle11g/

[root@localhost oracle]# chmod -R 775 /home/oracle/oracle11g/

接下来使用oracle用户登录桌面

4566a8d1f7b065c2687c33b6b8195f9e.png

执行./runInstaller开始安装,Centos 7安装的时候错误弹框有时候会变成一条竖线,安装无法进行下去,所以运行时执行

./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

70e500dccf969038a2085c16d79bab42.png

每项操作如下

[Configure Security Updates] 取消勾选 I wish to receive security updates via My Oracle Support,Next

[Installation Option] Install database software only,Next

[Grid Options] Next

[Product Languages] Next

[Enterprise Edition] Next

[Installation Location] Next

[Create Inventory] Next

[Operating System Groups] Next

[Prerequisite Checks] Next

[Summary] Finish,开始安装oracle 11g

安装到84%的时候可能会出现ins_ctx.mk相关的错误,如下

71e9b3f839535946dbd8efcf8e4ab6c2.png

修改/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk文件

# 源文件

ctxhx: $(CTXHXOBJ)

$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

# 修改为

ctxhx: $(CTXHXOBJ)

-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a

修改/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk文件

# 源文件

$(SYSMANBIN)emdctl:

$(MK_EMAGENT_NMECTL)

# 修改为

$(SYSMANBIN)emdctl:

$(MK_EMAGENT_NMECTL) -lnnz11

retry继续安装到94%时,弹出

de741da0aa5bbe43beb44bad938c27d4.png

使用root用户ssh到主机到上述目录分别执行orainstRoot.sh与root.sh,执行root.sh时根据提示填入路径

/u01/app/oracle/product/11.2.0/dbhome_1/bin,执行完成后到UI点击OK,安装完成

环境配置脚本

使用root用户登录

确保系统iso驱动器已连接(/dev/cdrom可mount)

复制脚本到主机并给予可执行权限,执行脚本完成后即可开始安装oracle 11g

oracle 11g环境配置脚本

#!/bin/bash

# 配置yum源为本地iso

function set_yum_media() {

cd /etc/yum.repos.d/

for repo_file in `ls /etc/yum.repos.d/ | grep -v Media`

do

new_file=$repo_file.bak

mv $repo_file $new_file

done

mkdir -p /mnt/media-dir

mount /dev/cdrom /mnt/media-dir

sed -i -e 's/baseurl=file:\/\/\/.*/baseurl=file:\/\/\/mnt\/media-dir\//g' -e 's/enabled=0/enabled=1/g' `ls /etc/yum.repos.d/ | grep Media`

cd -

rm -rf /var/run/yum.pid

yum -y update

}

function install_packages() {

for package in glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++

do

yum -y install $package

done

}

function create_oracle_user() {

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

# 设置oracle用户密码为oracle

echo oracle|passwd --stdin oracle

}

function set_system_parm() {

sed -i '$a\fs.aio-max-nr = 1048576' /etc/sysctl.conf

sed -i '$a\fs.file-max = 6815744' /etc/sysctl.conf

sed -i '$a\kernel.shmall = 2097152' /etc/sysctl.conf

sed -i '$a\kernel.shmmax = 536870912' /etc/sysctl.conf

sed -i '$a\kernel.shmmni = 4096' /etc/sysctl.conf

sed -i '$a\kernel.sem = 250 32000 100 128' /etc/sysctl.conf

sed -i '$a\net.ipv4.ip_local_port_range = 9000 65500' /etc/sysctl.conf

sed -i '$a\net.core.rmem_default = 262144' /etc/sysctl.conf

sed -i '$a\net.core.rmem_max = 4194304' /etc/sysctl.conf

sed -i '$a\net.core.wmem_default = 262144' /etc/sysctl.conf

sed -i '$a\net.core.wmem_max = 1048586' /etc/sysctl.conf

sysctl -p

}

function set_system_limit_parm() {

sed -i '$a\oraclesoftnproc2048' /etc/security/limits.conf

sed -i '$a\oraclehardnproc16384' /etc/security/limits.conf

sed -i '$a\oraclesoftnofile1024' /etc/security/limits.conf

sed -i '$a\oraclehardnofile65536' /etc/security/limits.conf

sed -i '$a\oraclesoftstack10240' /etc/security/limits.conf

}

function set_profile_parm() {

sed -i '$a\session required pam_limits.so' /etc/pam.d/login

sed -i '$a\if [[ $USER = "oracle" ]]; then' /etc/profile

sed -i '$a\ if [[ $SHELL = "/bin/ksh" ]]; then' /etc/profile

sed -i '$a\ ulimit -p 16384' /etc/profile

sed -i '$a\ ulimit -n 65536' /etc/profile

sed -i '$a\ else' /etc/profile

sed -i '$a\ ulimit -u 16384 -n 65536' /etc/profile

sed -i '$a\ fi' /etc/profile

sed -i '$a\fi' /etc/profile

source /etc/profile

}

function set_oracle_env() {

sed -i '$a\export ORACLE_BASE=/u01/app/oracle' /home/oracle/.bash_profile

sed -i '$a\export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1' /home/oracle/.bash_profile

sed -i '$a\export ORACLE_SID=orcl' /home/oracle/.bash_profile

sed -i '$a\export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH' /home/oracle/.bash_profile

sed -i '$a\export LANG="en_US.UTF-8"' /home/oracle/.bash_profile

sed -i '$a\export NLS_LANG=american_AMERICA.UTF8' /home/oracle/.bash_profile

sed -i '$a\export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"' /home/oracle/.bash_profile

source /home/oracle/.bash_profile

}

function create_oracle_dir() {

mkdir -p /u01/app/oracle/product/11.2.0/db_1

chown -R oracle:oinstall /u01/app

chmod -R 775 /u01/app

}

function disable_firewall() {

systemctl stop firewalld.service

systemctl disable firewalld.service

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux

setenforce 0

}

if [ `whoami` == "root" ]

then

set_yum_media

install_packages

create_oracle_user

echo "set system parm"

set_system_parm

echo "set limits"

set_system_limit_parm

echo "set /etc/profile"

set_profile_parm

echo "set oracle env"

set_oracle_env

echo "create oracle dir"

create_oracle_dir

echo "disable firwall"

disable_firewall

fi

到此这篇关于Centos下Oracle11gR2安装教程与自动化配置脚本的方法的文章就介绍到这了,更多相关Oracle11gR2安装与自动化配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值