CentOS7下的Oracle 11g数据库安装

一、安装环境

  • Linux服务器:SUSE11、CentOS7
  • Oracle服务器:Oracle 11g

系统要求

  • 内存:必须高于1G的物理内存
  • 交换空间:一般为内存的2倍,例如:1G的内存可以设置swap 分区为3G大小
  • 硬盘 :5G以上

安装包

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip

Oracle依赖包

oracle-package.zip

 

二、配置系统参数

修改系统参数

1.内核参数

网络参数设置:

编辑/etc/sysctl.conf添加如下内容:

kernel.shmall = 2097152

kernel.shmmni = 4096

kernel.shmmax = 4124575744

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 1048576

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

 

使更改立即生效:

#sysctl -p

 

2.资源限制参数

修改/etc/security/limits.conf添加如下内容:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

 

配置hosts文件

修改/etc/hosts添加主机名和域名全称,先用命令# hostname查看主机hostname

192.168.56.101       hostname

#这个地方我的理解和操作步骤是:先用hostname命令查出我的主机是localhost.localdomain,然后 vi /etc/hosts按照192.168.56.101       hostname的格式粘贴在这个文件的尾部,保存退出。

 

 

三、用户、组、环境变量 

1.创建用户、组

用户: oracle(oinstall,dba,oper)

组  : oinstall,dba,oper

创建组:

#groupadd  oinstall

#groupadd  dba

#groupadd  oper

创建用户,并更改密码:

#useradd -g oinstall -G dba,oper -d /home/oracle -m oracle

#passwd oracle

这里我将用户的密码设置为了oracle

2.创建目录

#mkdir -p /u01/app/oracle

#mkdir -p /u01/app/oraInventory

#chown -R oracle:oinstall /u01/app/

#chmod -R 755 /u01/app/

 

3.环境变量

oracle 用户环境变量

使用oracle用户编辑~/.bash_profile,也可配置在.profile或者.bashrc文件里,添加:

这里我在oracle用户下使用了vi ~/.bash_profile命令,在该文件下添加了下面的配置内容。

# User specific environment and startup programs

unset LANG

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export ORACLE_HOME_LISTNER=$ORACLE_HOME

export ORACLE_SID=orcl

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/libi:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export NLS_LANG=AMERICAN_AMERICA.UTF8

 

四、安装依赖包

CentOS7环境

1、CentOS依赖包(不低于该版本)

kernel-headers-3.10.0-123.el7.x86_64

gcc-c++-4.8.2-16.el7.x86_64

numactl-devel-2.0.9-2.el7.x86_64

glibc-headers-2.17-55.el7.x86_64

glibc-common-2.17-55.el7.x86_64

binutils-2.23.52.0.1-16.el7.x86_64

unixODBC-devel-2.3.1-10.el7.x86_64

libaio-0.3.109-12.el7.x86_64

make-3.82-21.el7.x86_64

elfutils-libelf-0.158-3.el7.x86_64

elfutils-libelf-devel-0.158-3.el7.x86_64

sysstat-10.1.5-4.el7.x86_64

glibc-static-2.17-55.el7.x86_64

glibc-devel-2.17-55.el7.x86_64

glibc-2.17-55.el7.x86_64

elfutils-libelf-devel-static-0.158-3.el7.x86_64

libaio-0.3.109-12.el7.i686

gcc-4.8.2-16.el7.x86_64

libgcc-4.8.2-16.el7.i686

libstdc++-static-4.8.2-16.el7.x86_64

libaio-devel-0.3.109-12.el7.x86_64

libstdc++-4.8.2-16.el7.x86_64

libaio-devel-0.3.109-12.el7.i686

unixODBC-2.3.1-10.el7.x86_64

libstdc++-devel-4.8.2-16.el7.x86_64

compat-libstdc++-33-3.2.3-71.el7.x86_64

libgcc-4.8.2-16.el7.x86_64

libgomp-4.8.2-16.el7.x86_64

pdksh-5.2.14

 

2、检查CentOS依赖包

#rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

 

3、安装缺少的依赖包

# yum –y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

 

此处安装了缺少的依赖包再次检查CentOS依赖包时发现仍然缺少四个依赖包,并且单独使用yum install命令也无法安装,提示的是no package(package compat-libstdc++-33,package elfutils-libelf-devel-static,package glibc-static,package pdksh,package libstdc++-static) available.

目前我的oracle还没有安装成功,主要问题出在缺少依赖包,并且无法调出可视化界面进行安装。

解决办法:导入一个含有多个所需依赖包的文件oracle-package,切换到该目录下然后使用命令

#rpm -ivh 【软件包名】,便可安装缺少的依赖包。

 

五、安装Database 软件

把安装包用oracle用户传至/opt/ 并解压,赋于刚解压出来的文件夹权限

#chown -R oracle:oinstall /opt/database

#chmod 755 -R /opt/database

 

开始图形化安装

用oracle用户,进入安装包存放位置,执行./runInstaller 进入图形安装界面,若无法启动图形化界面参考常见问题处理办法,退出系统使用oracle用户登陆重试。

CentOS7下的Oracle 11g数据库安装

跳过软件更新

CentOS7下的Oracle 11g数据库安装

选择仅安装数据库

CentOS7下的Oracle 11g数据库安装

选择单实例数据库安装

CentOS7下的Oracle 11g数据库安装

默认English

CentOS7下的Oracle 11g数据库安装

选择企业版安装

CentOS7下的Oracle 11g数据库安装

目录和用户环境变量保持一致,无需修改

CentOS7下的Oracle 11g数据库安装

注意目录权限问题:

CentOS7下的Oracle 11g数据库安装

在使用安装Oracle软件或者使用dbca创建数据库时,所有的日志都会放在oraInventory这个目录下,可将目录放到$ORACLE_BASE/oraInventory,注意目录读写权限:

 

CentOS7下的Oracle 11g数据库安装CentOS7下的Oracle 11g数据库安装

忽略报错,ignore all, 下一步,安装

 

CentOS7下的Oracle 11g数据库安装CentOS7下的Oracle 11g数据库安装

弹出下面的框框以后,切换至root用户,按提示,执行orainstRoot.sh和root.sh(默认回车)后,点击ok

 

CentOS7下的Oracle 11g数据库安装CentOS7下的Oracle 11g数据库安装

点击close

CentOS7下的Oracle 11g数据库安装

Database软件安装完毕。

 

六、创建数据库

使用DBCA(Database Conifguration Assistan)创建数据库:

[[email protected] database]$ which dbca

/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbca

[[email protected] database]$ dbca

CentOS7下的Oracle 11g数据库安装

 

上图选择Single instance database

CentOS7下的Oracle 11g数据库安装

 

CentOS7下的Oracle 11g数据库安装

 

单节点只需填写database name和SID,无需选择节点,安装RAC时需全部选中

CentOS7下的Oracle 11g数据库安装

下图建议不要选择配置EM,太耗费资源

 

CentOS7下的Oracle 11g数据库安装

设定管理账号统一密码

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

根据CPU个数设定最大进程连接数,1000

CentOS7下的Oracle 11g数据库安装

选择中文字符集

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

点击OK开始创建

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

点击Exit完成

CentOS7下的Oracle 11g数据库安装

检查数据库进程:

#ps -fu oracle |grep ora

 

七、配置监听服务

使用oracle用户,执行netca 命令进入可视化监听配置界面,一路下一步完成

CentOS7下的Oracle 11g数据库安装

默认监听名称

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

监听端口,默认1521

CentOS7下的Oracle 11g数据库安装

CentOS7下的Oracle 11g数据库安装

配置完成

 

九、启动数据库

  1. 启动实例

默认数据库建立后就启动了,如果服务器重新启动,那就要手工去启动它了,命令如下:(SID可在 $ORACLE_BASE/admin目录查看)

#export ORACLE_SID=orcl //设置要启动的数据库SID,区分大小写

#echo $ORACLE_SID

#sqlplus /nolog

sql> connect /as sysdba

sql>startup //shutdown停止数据库

 

shutdown有四个参数,含义如下:

normal 默认,不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。

transactional 不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。

immediate 不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。

abort 不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。

关闭数据库的时间从长到短,相反,开启的时候是从短到长。

前三种方式不会丢失用户数据。第四种在不的已的情况下,不建议采用。

 

2、启动监听

首先退出上面启动数据库的sql执行,用quit或者exit退到普通命令行上 

#lsnrctl start //启用监听,如果监听名称不是默认这个,则启动您对应的监听名称

#lsnrctl stop //关闭监听

#lsnrctl status //监听状态

注意 :用可视化工具plsql登录数据库时要先用命令#lsnrctl start启动监听,否则会提示没有开启监听服务。

 

Done!