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

 更新时间:2020年12月8日 11:31  点击:1656

系统环境准备

开发组件与依赖库安装

安装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
oracle		soft		nproc		2048
oracle		hard		nproc		16384
oracle		soft		nofile		1024
oracle		hard		nofile		65536
oracle		soft		stack		10240 

添加以下内容到/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用户登录桌面

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

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

每项操作如下

[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相关的错误,如下

修改/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%时,弹出

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

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

环境配置脚本

  1. 使用root用户登录
  2. 确保系统iso驱动器已连接(/dev/cdrom可mount)
  3. 复制脚本到主机并给予可执行权限,执行脚本完成后即可开始安装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\oracle		soft		nproc		2048' /etc/security/limits.conf
	sed -i '$a\oracle		hard		nproc		16384' /etc/security/limits.conf
	sed -i '$a\oracle		soft		nofile		1024' /etc/security/limits.conf
	sed -i '$a\oracle		hard		nofile		65536' /etc/security/limits.conf
	sed -i '$a\oracle		soft		stack		10240' /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安装与自动化配置内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

[!--infotagslink--]

相关文章

  • PHP7快速编译安装的步骤

    编译安装非常的简单了我们现在的php版本已经到了php7了,下文小编来为各位介绍一篇关于PHP7快速编译安装的步骤,希望文章能够帮助到各位。 一、安装必要一些依赖 yum...2016-11-25
  • Rstudio中安装package出现的问题及解决

    这篇文章主要介绍了Rstudio中安装package出现的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • PHP编译安装后PHP-FPM使用笔记

    PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • Linux安装Pytorch1.8GPU(CUDA11.1)的实现

    这篇文章主要介绍了Linux安装Pytorch1.8GPU(CUDA11.1)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-25
  • vscode安装git及项目开发过程

    这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
  • Visual Studio 2015下载和安装图文教程

    这篇文章主要为大家详细介绍了Visual Studio 2015下载和安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • Node调试工具JSHint的安装及配置教程

    现在我们介绍一种在Node下检查简单错误的JS代码验证工具JSHint。  JSHint的具体介绍参考http://www.jshint.com/about/,说直白点儿,JSHint就是一个检查JS代码规范与否的工具,它可以用来检查任何(包括server端和client端...2014-05-31
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • 在PyCharm中安装PaddlePaddle的方法

    这篇文章主要介绍了在PyCharm中安装PaddlePaddle的方法,本文给大家介绍的非常想详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-05
  • Ubuntu20.04安装cuda10.1的步骤(图文教程)

    这篇文章主要介绍了Ubuntu20.04安装cuda10.1的步骤(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-30
  • linux服务器快速卸载安装node环境(简单上手)

    这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-22
  • Postman安装与使用详细教程 附postman离线安装包

    这篇文章主要介绍了Postman安装与使用详细教程 附postman离线安装包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-05
  • uni-app从安装到卸载的入门教程

    这篇文章主要介绍了uni-app从安装到卸载的入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-05-15
  • vs2019安装和使用详细图文教程

    这篇文章主要介绍了vs2019安装和使用详细图文教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • RHEL6.5编译安装MySQL5.6.26教程

    一、准备编译环境,安装所需依赖包yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install readline-devel pcre-devel ncurses-devel bison-devel cmake -y二、编译安...2015-10-21
  • tomcat9 下载安装和配置+整合到eclipse的教程详解

    这篇文章主要介绍了tomcat9 下载安装和配置+整合到eclipse,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-28
  • win2003 安装软件之PHP5 图文安装教程

    本教程共分八篇:系统安装与设置篇、软件安装与设置篇、文件及文件夹权限篇、系统服务篇、安全策略篇、系统组件篇、注册表篇、软件安全篇。本篇讨论的是第二篇软件安装与设置篇的第七部分:安装软件之PHP 5 安装图解。 ...2016-01-27
  • mac系统OS X10.10版本安装最新5.7.9mysql的方法

    用过mac的朋友都反映很好用,不仅美观,性能好,关键是他的系统底层对于开发人员来说,无疑就是一个最大的好处,用习惯linux的人就知道mac的强大。但是也有一点最蛋疼的是,mac的习惯跟windows两个概念,习惯了windows,难免会有点不...2015-10-30
  • 详解Windows下安装Nodejs步骤

    本篇文章主要介绍了详解Windows下安装Nodejs步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-05-22