RedHat6.8静默安装Oracle 12C全过程

一、安装环境

1、Redhat6.8 64位系统
2、Oracle 12.1.0.2

二、环境准备

1、安装操作系统、设置分区、配置网络、设置主机名:系统分区交换分区大小设置主机名
2、使用centos的yum替换Redhat本身的yum,直接使用Redhat的yum安装依赖的包会报如下错误:
RedHat6.8静默安装Oracle 12C全过程_第1张图片
替换步骤:
(1)、删除Redhat自带的yum:
RedHat6.8静默安装Oracle 12C全过程_第2张图片
(2)、上传centos的yum包,并按照顺序安装,所需的rpm包通过点击这里获取:
在这里插入图片描述
在这里插入图片描述
(3)、更改系统yum源:

cd /etc/yum.repos.d/
mv rhel-source.repo rhel-source.repo.bak
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
mv CentOS6-Base-163.repo rhel-source.repo

编辑rhel-source.repo文件,将其中的$releasever全部替换为6
(4)、清除原有缓存、产生新的缓存

yum clean all
yum makecache

除了上述方法,还可以通过挂载系统安装镜像的方式使用Redhat的yum:

mkdir /rhel /iso
mount /rhel/rhel-server-6.8-x86_64-dvd.is /iso
修改/etc/fstab文件,添加如下内容使其开机自动挂载:
/root/rhel-server-6.8-x86_64-dvd.iso /iso iso9660 loop,defaults 0 0
删除/etc/yum.repos.d/目录下的文件,并创建yum.repo文件:
cd /etc/yum.repos.d/
rm -fr *
vim yum.repo
[rhel6.8]
name=rhel6.8
baseurl=file:///iso
gpgcheck=0
保存退出,再重新生成yum缓存:
yum clean all
yum makecache

3、安装依赖包:

yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutilslibelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBCdevel*.i686 libXp

4、关闭iptables、selinux:

service iptables stop
chkconfig iptables off
setenforce 0

编辑/etc/selinux/config,将SELINUX的值替换为disabled

5、添加组和用户,新建oracle目录,设置oracle相关环境变量

groupadd dba
groupadd oinstall
useradd -g oinstall -G dba oracle
passwd oracle
su - oracle
mkdir -p /home/oracle/app/oracle/product/12.1.0/dbhome_1
mkdir /home/oracle/app/oraInventory
mkdir /home/oracle/app/oracle/oraData
chmod -R 775 /home/oracle/app/oracle
vim .bash_profile,添加如下内容:
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/product/12.1.0/dbhome_1
export ORACLE_SID=wind11
export NLS_LANG="american_america.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

6、更改系统配置
(1)、vi /etc/sysctl.conf,添加如下内容:

fs.aio-max-nr = 4194304
fs.file-max = 6815744
kernel.shmall = 16777216
kernel.shmmax = 68719476736
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
vm.swappiness =100

保存退出,运行sysctl -p使其立刻生效

(2)、修改用户限制,vi /etc/security/limits.conf,添加如下内容:

oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 10240

(3)、vi /etc/pam.d/login,添加如下内容:

session    required   pam_limits.so

三、开始安装

1、安装Oracle 12C
上传Oracle安装文件至/home/oracle目录中,使用oracle用户解压:

unzip linuxamd64_12102_database_1of2.zip -d /home/oracle
unzip linuxamd64_12102_database_2of2.zip -d /home/oracle

完成后/home/oracle中会多出一个database目录:
vim /home/oracle/database/response/db_install.rsp,做如下修改:

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/app/oraInventory
ORACLE_HOME=/home/oracle/app/oracle/product/12.1.0/dbhome_1
ORACLE_BASE=/home/oracle/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.BACKUPDBA_GROUP=oinstall
oracle.install.db.DGDBA_GROUP=oinstall
oracle.install.db.KMDBA_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=wind
oracle.install.db.config.starterdb.SID=wind
oracle.install.db.config.starterdb.memoryLimit=8192
oracle.install.db.config.starterdb.password.ALL=oracle
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

注意dba和oinstall需要小写,否则会报错:
[FATAL] [INS-35341] The installation user is not a member of the following groups: [DBA]
开始安装:

cd  /home/oracle/database
./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp

等待一段时间,弹出以下内容则安装成功:
RedHat6.8静默安装Oracle 12C全过程_第3张图片
根据提示切换回root用户,运行上述两个脚本。
2、配置监听
进入database目录,开始配置监听:

netca -silent -responsefile  /home/oracle/database/response/netca.rsp

RedHat6.8静默安装Oracle 12C全过程_第4张图片
上图为配置成功的界面,配置结果也可能出现下面的错误:

UnsatisfiedLinkError exception loading native library: njni12
java.lang.UnsatisfiedLinkError: /home/oracle/app/oracle/product/12.1.0/dbhome_1/lib/libnjni12.so: libclntsh.so.12.1: cannot open shared object file: No such file or directory

或者:

UnsatisfiedLinkError exception loading native library: njni12
java.lang.UnsatisfiedLinkError: /home/oracle/app/oracle/product/12.1.0/dbhome_1/lib/libnjni12.so: libclntsh.so.12.1: cannot open shared object file: file too short

原因:下列包没有安装成功

elfutils-libelf
elfutils-libelf-devel
libaio
libaio-devel

解决方法:安装成功后运行$ORACLE_HOME/bin/relink all

查看监听状态:lsnrctl status
RedHat6.8静默安装Oracle 12C全过程_第5张图片
3、手动建立数据库实例
手动建立Oracle数据库实例需要用到$ORACLE_HOME/bin目录中的dbca命令,需要注意的是Oracle 12C引入了新特性:Container Database(CDB),读者可根据自身需求选择创建的数据库类型,CDB可通过/home/oracle/database/response/dbca.rsp模板创建,传统数据库(no-CDB)可根据$ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc模板创建。创建no-CDB实例需运行如下命令:

dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname wind -sid wind -characterSet UTF8

创建CDB需要先对dbca.rsp文件做如下修改:

[CREATEDATABASE]
GDBNAME = "wind"  #数据库的Global database name
SID = "wind"  #数据库的实例名
DATAFILEDESTINATION =/home/oracle/app/oracle/oraData #数据文件存放目录
CHARACTERSET = "ZHS16GBK"  #指定字符集
NATIONALCHARACTERSET= "AL16UTF16"  #指定国家字符集
DATABASETYPE = "OLTP"  #指定实例的类型
AUTOMATICMEMORYMANAGEMENT = "TRUE" #指定使用自动内存管理
TOTALMEMORY = "1000"  #MB,指定使用内存的大小,值最好大一点,否则可能会安装失败

执行安装:

dbca -silent -responseFile /home/oracle/database/response/dbca.rsp

两种安装的运行过程大致相同:
RedHat6.8静默安装Oracle 12C全过程_第6张图片
安装完成后,数据库实例已经创建成功并启动,可以通过sqlplus连接:
RedHat6.8静默安装Oracle 12C全过程_第7张图片
此时,可对数据库进行操作,如创建一个新用户并授权:

create user username identified by password;
grant create session,sysdba yo username;

也可使用navicat for oracle工具进行远程连接,但用第三方备份工具进行数据恢复时会报错:

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

解决方法:在$ORACLE_HOME/network/admin/listener.ora文件中新添加一个静态监听

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_NAME = wind)
      (ORACLE_HOME = /home/oracle/app/oracle/product/12.1.0/dbhome_1)
      (SID_NAME = wind)
    )
  )

四、设置开机自启

经过上述步骤后,数据库和监听器都已经安装启动成功,但都并未设置开机自启,一旦服务器reboot后还需要手动启动监听器和数据库实例,这无疑是麻烦的,因此需设置这二者开机自启。
(1)、修改/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/dbstart文件,将$ORACLE_HOME_LISTNER=$1的值修改为$ORACLE_HOME;
(2)、以root用户修改/etc/oratab文件,将实例对应的记录最后的N更改为Y
在这里插入图片描述
(3)、以root用户修改/etc/rc.d/rc.local文件,新增下列两个开机任务:

su oracle -lc "/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start"
su oracle -lc "/home/oracle/app/oracle/product/12.1.0/dbhome_1/bin/dbstart"

修改完成后,以root用户运行reboot命令,待重启完成后,监听器和数据库实例都成功自启。

你可能感兴趣的:(RedHat6.8静默安装Oracle 12C全过程)