centos7安装oracle11g(11.2.0)

最近公司购买了一台新的服务器,我负责给这台服务器安装oracle ,磕磕绊绊的终于装好了,但是却花了不少时间,算起来差不多用了2.5天的时间,下面开始讲讲我的血泪史

安装前的准备:步骤如下:

第一步: 检查当前服务器操作系统是64位还是32位(以我的为例是centos7是64位的)

[root@chances127 ~]# uname  -a

Linux chances127 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

不存在x86_64 x86_64 x86_64表示是32位的操作系统

第二步:检查内存

说明:

内存大于1G(使用虚拟机安装时内存要稍微大一些,否则安装检查不通过)

查看内存大小#cat /proc/meminfo

交换分区是内存的1.5倍,可根据实际情况调整

查看交换分区大小#grep SwapTotal /proc/meminfo

硬盘空间要满足所需软件的大小,要求/tmp 分区不少于 400M ,安装目录应大于4G:

查看磁盘空间使用情况#df –h

查看目录空间大小#du -ch





操作:

#free –m

Swap少于1024的请增加内存

1.1增加内存

1)增加内存

#dd if=/dev/zero of=/tmpswap bs=1k count=2048000

2048000+0 records in

2048000+0 records out

2097152000 bytes (2.1 GB) copied, 169.875 seconds, 12.3 MB/s

2)设置交换文件

# mkswap /tmpswap

Setting up swapspace version 1, size = 2097147 kB

3)立即启用交换分区文件

# swapon tmpswap

再查看swap分区大小发现增加了2G

4)引导时自动启用

#vi/etc/fstab

增加如下内容:


查看一下swap

# swapon -s


安装时我的内存是符合条件的,所以上述步骤就省了(供参考)

第三步: 软件检查,安装oracle所依赖的组件包:

1.binutils-2.17.50.0.6

2.compat-libstdc++-33-3.2.3

3.elfutils-libelf-0.125

4.elfutils-libelf-devel-0.125

5.elfutils-libelf-devel-static-0.125

6.gcc-4.1.2

7.gcc-c++-4.1.2

8.glibc-2.5-24

9.glibc-common-2.5

10.glibc-devel-2.5

11.glibc-headers-2.5

12.kernel-headers-2.6.18

13.pdksh-5.2.14

14.libaio-0.3.106

15.libaio-devel-0.3.106

16.libgcc-4.1.2

17.libgomp-4.1.2

18.libstdc++-4.1.2

19.libstdc++-devel-4.1.2

20.make-3.81

21.numactl-devel-0.9.8.i386

22.sysstat-7.0.2

23.unixODBC-2.2.11

24.unixODBC-devel-2.2.11

包检查命令:#rpm –qa |grep 软件包名称

包安装命令:#rpm –ivh 软件包名称

 或

#yum install 软件包名称

第四步:关闭防火墙

说明:centos7默认使用的防火墙是firewall,iptables虽然也安装了,但没有启用

所以关闭防火墙操作为:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

参考文档:http://www.cnblogs.com/silent2012/archive/2015/07/28/4682770.html

第五步:关闭SELIINUX

#vi /etc/selinux/config确保以下内容

SELINUX=disabled

第五步:配置系统环境

1.1 linux内核参数设置

#vi /etc/sysctl.conf ,在行末添加以下内容

fs.file-max = 6815744

fs.aio-max-nr=1048576

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

kernel.sem = 250 32000 100 128

kernel.shmall = 2097152(可以按照系统默认,不修改)

kernel.shmmax = 536870912(可以按照系统默认,不修改)

#sysctl –p 让内核参数生效


Linux下安装oracle对内核参数的要求说明:

kernel.shmall为物理内存除以pagesize

kernel.shmmax为物理内存的一半

fs.file-max为512乘以processes(如128个process,则为65536)


备注:

下图中的内核参数是我当时安装oracl的参数设置:


部分讲解:

以kernel.sem = 250 32000 100 128为例:

250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

128是参数semmni的值,表示系统信号量集合总数


为什么要进行参数设置呢:

其实oracle 中有一个文件,cvu_prereq.xml文件。

这个文件中有参数值和依赖包,是oracle安装所以依赖的,静默安装时会进行过监测,监测不通过,就不能安装

说明:

当时我安装的时候,参数监测就没通过(其实安装前我是对参数设置好了的,不知道为什么设置好的参数值不见了,可能是因为:我在执行静默安装的时候检查各种报错,又不断重新执行,导致参数丢失吧,其他原因暂时不清楚。后来根据报错,重新设置了参数值)

执行过程(当然目前按照上述步骤,还不能执行这一步,只是为了解释为什么要进行参数设置和安装依赖包)

[oracle@chances127 database]$ ./runInstaller -silent -responseFile  /opt/oracle_11g/database/response/db_install.rsp

正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。  实际为 286724 MB    通过

检查交换空间: 必须大于 150 MB。  实际为 16383 MB    通过

准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2016-09-20_10-41-12AM. 请稍候...[oracle@chances127 database]$ [WARNING] [INS-32018] 所选 Oracle 主目录位于 Oracle 基目录外部。

原因: 所选 Oracle 主目录位于 Oracle 基目录外部。

操作: Oracle 建议在 Oracle 基目录中安装 Oracle 软件。请相应调整 Oracle 主目录或 Oracle 基目录。

[WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。

原因: 主产品清单位于 Oracle 基目录中。

操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。

[FATAL] [INS-13013] 目标环境不满足一些必需要求。

原因: 不满足一些必需的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2016-09-20_10-41-12AM/installActions2016-09-20_10-41-12AM.log

操作: 从日志 /tmp/OraInstall2016-09-20_10-41-12AM/installActions2016-09-20_10-41-12AM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。

备注:fatal表示安装失败,需要重新安装

warning信息。可以先不用管

部分日志信息:

Error Message:PRVF-7543 : 操作系统内核参数 "wmem_max" 在节点 "chances127" 上没有适当的值 [应为 = "1048576"; 找到 = "262144"]

Error Message:PRVF-7543 : 操作系统内核参数 "rmem_max" 在节点 "chances127" 上没有适当的值 [应为 = "4194304"; 找到 = "262144"]。

Error Message:PRVF-7543 : 操作系统内核参数 "ip_local_port_range" 在节点 "chances127" 上没有适当的值 [应为 = "between 9000 & 65500"; 找到 = "between 1024 & 65000"]。

Error Message:PRVF-7543 : 操作系统内核参数 "file-max" 在节点 "chances127" 上没有适当的值 [应为 = "6815744"; 找到 = "6553600"]。

INFO: Cause: 内核参数值不满足要求。

: Error Message:PRVF-7543 : 操作系统内核参数 "semmni" 在节点 "chances127" 上没有适当的值 [应为 = "128"; 找到 = "0"]。

INFO: Cause: 内核参数值不满足要求。



1.2 修改进程数和最大会话数

#vi /etc/security/limits.conf,行末添加以下内容

oracle           soft    nproc   2047

oracle           hard    nproc   16384

oracle           soft    nofile  1024

oracle           hard    nofile  65536



:

以我的为例:


1.3关联设置

#vi /etc/pam.d/login    行末添加以下内容

session    required     pam_limits.so


操作系统是x64的则为

session    required     /lib64/security/pam_limits.so




以我的为例:


备注:我当时安装的时候,此配置配的是session    required    pam_limits.so,可能这也是导致安装失败的原因吧,由于是第一次安装,不知道是不是这个原因


1.4 /etc/profile里添加如下,红色为实际oracle用户(行末添加即可)

export LIBXCB_ALLOW_SLOPPY_LOCK=true

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

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

unset i

在root用户下,使用命令source profile使环境变量生效

#cd /etc

#source profile



以我的为例




说明:

当时此配置,我配置的内容是:

#vi /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

少了export LIBXCB_ALLOW_SLOPPY_LOCK=true以及unset i 当时安装没有成功,不知道这个是不是其中一个原因


1.5 修改/etc/redhat-release文件,改成系统支持的版本

redhat-4


以我的为例:


说明:

其实为什么要修改系统版本,我也不是很清楚,我也是安装失败了,查阅资料:

由于oracle10g发行的时候,centos6/7没有发行,所以oracle10g并没有对centos6/7确认支持,需要修改文件让oracle10g支持centos6/7.

编辑/etc/redhat-release文件

# vi /etc/redhat-release 将其中的内容Centos Linux release 7.1.1503(Core) 修改为redhat 4

不过我现在安装的是oracle11g,需不需要修改版本号,我也不是很清楚,但是为了防止安装失败,我还是修改了版本号

第一次安装,很多错误和原因我也都很茫然,只能死马当活马医


1.6 修改主机名

vi /etc/hosts文件

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.237  主机名

#hostname   主机名


以我的为例


上面的准备工作做好之后,接下来开始安装过程:

第一步:创建oracle用户和用户组

#groupadd oinstall (创建oinstall组)

#groupadd dba (创建dba组)

#useradd -g oinstall -G dba oracle  (新建用户oracle,设定其主组为oinstall,副组为dba)

#id oracle (检查结果)


#passwd oracle (设置oracle用户密码)

第二步:创建oracle安装目录

#mkdir -p /opt/oracle_11g/product/110201/db_1


说明:1 、我当时执行静默安装,报了如下错误(其实是警告,可以不管的)

准备从以下地址启动 Oracle Universal Installer /opt/oracle_11g/u01/tmp/OraInstall2016-09-19_01-52-29PM. 请稍候...[oracle@chances127 database]$ [WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。

原因: 主产品清单位于 Oracle 基目录中。

操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中

  2、根据警告信息:我又将创建好的product/110201/db_1删除了,在opt目录下创建了安装目录如:/opt/product/110201/db_1

特别要注意的是:创建安装目录最好不要一个个创建,以及最好也不要一个一个目录进行修改用户和用户组


原因:第一:麻烦不说,还容易出错,oracle_11g目录以及所有子目录都要是oracle用户和oinstall组


以我的为例:我当时在/opt/目录下重新创建了product 110201 db_1 三个目录,由于是用root用户进行操作的,当时没有修改成oracle用户和oinstall组。导致:执行静默安装时报如下错误:

准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2016-09-19_11-37-25AM. 请稍候...[oracle@chances127 database]$ [FATAL] [INS-32012] 无法创建目录。

原因: 没有授予创建目录的正确权限, 或卷中没有剩余空间。

操作: 请检查您对所选目录的权限或选择另一个目录。

此会话的日志当前已保存为: /tmp/OraInstall2016-09-19_11-37-25AM/installActions2016-09-19_11-37-25AM.log。如果要保留此日志, Oracle 建议将它从临时位置移动到更持久的位置

我一直以为是/tmp空间不够,tmp是根目录下的一个目录,不是一个分区,对linux不是很懂,就不多说,我又重新指定了一个目录

# vim /home/oracle

# ll -a 

# vim .bash_profile

添加下面连个变量:

export TEMP=/opt/oracle_11g/u01/tmp

export TMPDIR=/opt/oracle_11g/u01/tmp

u01和tmp是在oracel_11g目录下新建的两个目录

但是执行:./runInstaller -silent -responseFile还是报了错

准备从以下地址启动 Oracle Universal Installer /opt/oracle_11g/u01/tmp/OraInstall2016-09-19_11-37-25AM. 请稍候...[oracle@chances127 database]$ [FATAL] [INS-32012] 无法创建目录。

原因: 没有授予创建目录的正确权限, 或卷中没有剩余空间。

操作: 请检查您对所选目录的权限或选择另一个目录。

此会话的日志当前已保存为: /opt/oracle_11g/u01/tmp/OraInstall2016-09-19_11-37-25AM/installActions2016-09-19_11-37-25AM.log。如果要保留此日志, Oracle 建议将它从临时位置移动到更持久的位置


检查opt/oracle_11g/u01/tmp,用户和用户组已经设置成oraclehe oinstall,最后又检查了一下/opt/product/110201/db_1几个目录:发现product 110201 db_1三个目录用户和用户组是root,最后又执行:#chown oracle:oinstall product

# chown oracle:oinstall 110201

#chown oracle:oinstall db_1

发现一个问题吧:

一个个设置是不是麻烦,还容易漏设置,所以按照下面两步就搞定:

#mkdir -p /opt/oracle_11g/product/110201/db_1

#chown -R  oracle.oinstall /opt/oracle_11g/

特别声明:我就是因为警告信息误导,把目录删除移到基目录外面重新创建产品目录,导致新建的目录又没有修改用户和用户组,导致安装oracle时。日志信息不能写入到/tmp

product/110201/db_1目录下的内容是执行:./runInstaller成功后自动生成的

我安装时创建的目录结构时:

/opt/oracle_11g/(oraclea安装压缩包)

/opt/product/110201/db_1/(oracle安装路径)



第三步:改变oracle安装目录的用户和用户组

#chown -R  oracle.oinstall /opt/oracle_11g/

第四步:给安装目录赋予权限

#chmod -R 755  /opt/oracle_11g/

第五步:设置用户环境变量


#vi /home/oracle/.bash_profile

export ORACLE_BASE=/opt/oracle_11g//软件安装基目录

export ORACLE_SID=orcl   //实例名

export ORACLE_HOME=$ORACLE_BASE/product/110201/db_1 //软件安装产品目录

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

#source /home/oracle/.bash_profile 配置生效

#env |more 查看配置的环境变量是否正确

ORACLE_BASE下是admin和product

ORACLE_HOME下是ORACLE的命令、连接库、安装助手、listener等。

这只是ORACLE自己的定义习惯。ORACLE_HOME比ORACLE_BASE目录要更深一些。也就是说:ORACLE_HOME=$ORACLE_BASE/product/version。

ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。

简单说,如果装了2个版本的oracle,那么ORACLE_BASE可以是一个,但ORACLE_HOME是2个。

全局数据库名用于区别分布式数据库各个不同机器上的实例;SID用于区别同一台机器上的不同实例。

即一个用于外部区分;一个用于内部区分。

以我的为例:

说明:下面是oracle10g安装时,设置的内容

#vi home/sc-oracle/.bash_profile用oracle用户编辑加入以下内容

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

#For sc-Oracle

export  ORACLE_BASE=/oracle;

export  ORACLE_HOME=/oracle/product/db_1;

export  ORACLE_SID=ORCL;

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin;

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/lib64/;

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

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

#PATH=$PATH:$HOME/bin

#export PATH

使环境变量生效

$ source .bash_profile

但是我安装时是用root用户添加的,且export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/lib64/;与我设置的export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib有点不一样,不知道有没有影响,但是我安装成功了

到此配置结束:下面正式开始oracle安装吧:

第一步:将oracle11g安装压缩包上传至/opt/oracle_11g/目录下

第二步:解压缩

#unzip linux_11gR2_database_1of2.zip

#unzip linux_11gR2_database_2of2.zip


说明:上面两个压缩包要放在同一个目录下解压缩

如果有人尝试:将这两个压缩包放到不同目录下解压缩,解压后的文件都是database文件,有人如果疑问:在同一个目录下解压缩database不会被覆盖吗?其实则不然:这个两个压缩包解压出来是同一个文件,只是把一个大的文件分成了两个部分

第三步:编辑oracle数据库安装应答文件

1 在/opt/oracle_11g/database/response目录下有三个应答文件


2# vi  db_install.rsp修改以下内容:

供参考:

RESPONSEFILE_VERSION=2.2.1.0.0

UNIX_GROUP_NAME="oinstall"

ORACLE_HOME_NAME="OraDb10g_home1"

ORACLE_HOME="/oracle/product/db_1"

SHOW_INSTALL_PROGRESS_PAGE= true

SHOW_END_OF_INSTALL_MSGS= true

COMPONENT_LANGUAGES={"zh_CN"}

s_nameForDBAGrp= "dba"

s_nameForOPERGrp="dba"

INSTALL_TYPE="EE"

n_configurationOption=3

RESTART_SYSTEM=false

RESTART_REMOTE_SYSTEM=false


以我的为例:


oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0

ORACLE_HOSTNAME=chances127

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/opt/oracle_11g/oraInventory

SELECTED_LANGUAGES=en,zh_CN,zh_TW

ORACLE_HOME=/opt/product/110201/db_1

ORACLE_BASE=/opt/oracle_11g

oracle.install.db.InstallEdition=EE

oracle.install.db.isCustomInstall=true

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=oinstall

oracle.install.db.CLUSTER_NODES=

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.storageType=

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=

oracle.install.db.config.asm.diskGroup=

oracle.install.db.config.asm.ASMSNMPPassword=

MYORACLESUPPORT_USERNAME=

MYORACLESUPPORT_PASSWORD=

SECURITY_UPDATES_VIA_MYORACLESUPPORT=

PROXY_PORT=

PROXY_PWD=


上面的参数不是都要修改的,按照我上面供参考的参数进行修改就ok了,其他参数没有的值的可以不用管


第四步:以上提到的所有操作都是在root用户下进行操作的:

下面开始要正式安装oracle了,所以先要切换至oracle用户:

# su - oracle

进入到/opt/oracle_11g/database下执行静默安装:

#cd /opt/oracle_11g/database


第一步:静默安装

# ./runInstaller -silent -responseFile  /opt/oracle_11g/database/response/db_install.rsp


注意文件位置视自己刚刚修改的文件位置而定

这时如果报错类似这样的错:



解决办法:如果没有指定目录,则默认日志写入到/tmp下

第一,先检查/tmp所在分区空间大小是否大于60兆

第二:检查product/110201/db_1 目录用户和用户组是否是oracle和oinstall

第三:检查/tmp有无写入权限

上述的报错:我是重新指定oracle安装日志的写入目录,但是还是提示不能写入或空间不够,最后原因:是因为:我之前把product/110201/db_1删除,到基目录外重新创建此目录,没有修改此目录的用户和用户组,最后将此目录修改成oracle用户,变可解决此问题

不过,找到问题原因了,我就将指定的目录给注释掉了


再重新执行:

# ./runInstaller -silent -responseFile  /opt/oracle_11g/database/response/db_install.rsp

发现没有上述报错,但如果又出现其他报错如:


根据报错原因:到日志目录下,找到原因:

第一:内核参数监测不过

第二:依赖包没有装全

参数的问题:

其实内核参数我都是设置好了的,不知道为什么再次检查内核参数的时候,发现丢失了,之后又再重新设置了一遍

依赖包的问题:

libstdc++-3.4.6 (i386)

libgcc-3.4.6 (i386)

libaio-devel-0.3.105 (i386)

compat-libstdc++-33-3.2.3 (i386)

glibc-2.3.4-2.41 (i686)

unixODBC-devel-2.2.11

pdksh-5.2.14

发现少了上述的依赖包:而且这些依赖还是32位的,其实我的系统是64位的,oracle11g也是64位的,这些依赖包我也是都装了的,只是oracle11g不认

原来是因为:oracle11g安装,不仅要依赖64位的

还要依赖32位的,而centos使用yum安装这些依赖的包的时候,是不去区分你安装的是32位的还是64位的,centos是64位的,yum安装自然 默认装的是64位的,所以这是oracle自己的一个认证漏洞:

解决办法:

在oracle里面有一个cvu_prereq.xml文件

#vim cvu_prereq.xml

找到i386,将其全部改成i686

再执行yum安装上述依赖包

#yum install libgcc.i686(其他依赖包也是这么安装)

注意:

pdksh依赖包,在centos7里不叫此名,而是ksh(特别要注意)

compat-libstdc这个依赖使用yum是找不到的,所以这个安装包,我当时是自己去下载的

我的百度云盘有这个依赖包


好了解决上述问题后,再重新执行以下吧

# ./runInstaller -silent -responseFile  /opt/oracle_11g/database/response/db_install.rsp



[oracle@chances127 database]$ ./runInstaller -silent -responseFile  /opt/oracle_11g/database/response/db_install.rsp

正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。   实际为 286724 MB    通过

检查交换空间: 必须大于 150 MB。   实际为 16383 MB    通过

准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2016-09-20_11-09-22AM. 请稍候...[oracle@chances127 database]$ [WARNING] [INS-32018] 所选 Oracle 主目录位于 Oracle 基目录外部。

原因: 所选 Oracle 主目录位于 Oracle 基目录外部。

操作: Oracle 建议在 Oracle 基目录中安装 Oracle 软件。请相应调整 Oracle 主目录或 Oracle 基目录。

[WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。

原因: 主产品清单位于 Oracle 基目录中。

操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。

[WARNING] [INS-13014] 目标环境不满足一些可选要求。

原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log

操作: 从日志 /tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。

[WARNING] [INS-32018] 所选 Oracle 主目录位于 Oracle 基目录外部。

原因: 所选 Oracle 主目录位于 Oracle 基目录外部。

操作: Oracle 建议在 Oracle 基目录中安装 Oracle 软件。请相应调整 Oracle 主目录或 Oracle 基目录。

[WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。

原因: 主产品清单位于 Oracle 基目录中。

操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。

[WARNING] [INS-13014] 目标环境不满足一些可选要求。

原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log

操作: 从日志 /tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。

可以在以下位置找到本次安装会话的日志:

/opt/oracle_11g/oraInventory/logs/installActions2016-09-20_11-09-22AM.log

[oracle@chances127 database]$

[oracle@chances127 database]$ 以下配置脚本需要以 "root" 用户的身份执行。

#!/bin/sh

#要运行的 Root 脚本

/opt/oracle_11g/oraInventory/

orainstRoot.sh

/opt/product/110201/db_1/

root.sh

要执行配置脚本, 请执行以下操作:

1. 打开一个终端窗口

2. 以 "root" 身份登录

3. 运行脚本

4. 返回此窗口并按 "Enter" 键继续

Successfully Setup Software.


看到安装结果信息,好多警告,以为没安装成功,但是查阅资料:

只要看到Successfully Setup Software.表明oracle安装成功了



第二步:执行脚本

按照上面的安装成功信息提示:

 切换至root用户分别执行信息中提到的脚本

1 执行脚本orainstRoot.sh

#/opt/oracle_11g/oraInventory/orainstRoot.sh

2 执行脚本root.sh 

#/opt/product/110201/db_1/root.sh


第三步:安装监听

编辑oracle安装目录下的netca.rsp应答文件,地址为:/database/response/netca.rsp,主要查看以下参数配置:

INSTALL_TYPE=""custom""安装的类型

LISTENER_NUMBER=1监听器数量

LISTENER_NAMES={"LISTENER"}监听器的名称列表

LISTENER_PROTOCOLS={"TCP;1521"}监听器使用的通讯协议列表

LISTENER_START=""LISTENER""监听器启动的名称

运行安装命令:

#/opt/product/110201/db_1/bin/netca  /silent /responseFile  /opt/oracle_11g/database/response/netca.rsp



第四步:添加数据库实例

1、修改/database/response/dbca.rsp(就是解压安装文件目录下的)


根据数据库建立方式的不同编辑不同的数据库库选项。

比如在本次安装过程中设置了下列参数:(注意下面参数视情况而定啦不要照抄该选项原文件都有说明的)

RESPONSEFILE_VERSION = "10.0.0"

OPERATION_TYPE = "createDatabase"

GDBNAME = "ORCL" --数据库全局名称

SID = "ORCL"  --这个sid必须要和前面的/home/oracle/.bash_profile文件中的sid相同

TEMPLATENAME = "New_Database.dbt"

SYSPASSWORD = "ches"用户的初始密码

SYSTEMPASSWORD = "ches"初始密码

DATAFILEDESTINATION ="/oracle/oradata/"

RECOVERYAREADESTINATION="/oracle/flash_recovery_area"

STORAGETYPE=FS

CHARACTERSET = "ZHS16GBK"--数据库字符集(中文为ZHS16GBK)

MEMORYPERCENTAGE = "40"

SCRIPTDESTINATION ="/oracle/admin/ora10g/scripts"

EMCONFIGURATION=”LOCAL”

SYSMANPASSWORD = "ches”

DBSNMPPASSWORD = "ches”



以我的为例:(只是部分参数,其他的参考上面给的参数即可)

DATAFILEDESTINATION="/opt/oracle_11g/oracledata/"

RECOVERYAREADESTINATION="/opt/oracle_11g/flash_recovery_area"

CHARACTERSET="ZHS16GBK"

NATIONALCHARACTERSET= "UTF8"

TEMPLATENAME="General_Purpose.dbc”

2 安装

#/opt/product/110201/db_1/bin/dbca - silent  - responseFile  /opt/oracle_11g/database/response/dbca.rsp


如果报错:类似下图中的错误:

解决办法:

#export DISPLAY=IP:1.0

ip填写服务器的ip

再重新安装一次:

#/opt/product/110201/db_1/bin/dbca - silent  - responseFile  /opt/oracle_11g/database/response/dbca.rsp


可以发现上述错误解决了 ,但是如果又有新的报错:如下:


解决办法:

/opt/product/110201/db_1/assistants/dbca/templates到这个目录下添加存在的模板

修改/database/response/dbca.rsp,将TEMPLATENAME都要换掉,换成:General_Purpose.dbc


再重新安装一次:

安装成功!

第五步:启动监听

到bin目录下启动监听:

/opt/product/110201/db_1/bin

bin#./lsnrctl start

如果报下面错误:

TNS-01106: Message 1106 not found; No message file for product=network, facility=TNS   [LISTENER]


解决办法:

查看监听程序的配置文件

cat /opt/product/110201/db_1/network/admin/listener.ora

添加:(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))



以我的为例;

我的listener.ora文件多了一个配置:

SID_LIST_LSNR =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = /opt/product/110201/db_1)

(SID_NAME = orcl)

)

)


其实我也不知道这个要不要加上去,只是我启动监听始终报下面这个错:所以多加了一个配置

TNS-01106: Message 1106 not found; No message file for product=network, facility=TNS   [LISTENER]


我重新登陆服务,再次启动监听:

bin#./lsnrctl start



发现启动成功!

通过查看监听状态:

status ready表示oracle服务是正长启动的

第六步:启动数据库实例:

到这个目录下启动数据库实例:

/opt/product/110201/db_1/bin

bin#./dbstart

如果报如下错误:

请检查oracle_home路径是否正确,如果路径没问题,一定是/etc/oratab文件路径写错了



果不其然:路径与oracle_home不一致(但是是我从别的地方copy过来的,忘记改路径了)



再重新启动数据库实例:



发现启动成功!


第七步:设置开始自动


1 修改$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut文件:

$vi $ORACLE_HOME/bin/dbstart

$vi $ORACLE_HOME/bin/dbshut

找到ORACLE_HOME_LISTNER=$1,修改为ORACLE_HOME_LISTNER=$ORACLE_HOME



2修改/etc/oratab文件

$ vi /etc/oratab

找到最后一行:

orcl:/opt/product/110201/db_1:N

最后设置的是“N”(此环境只有一个实例,所以只有一行配置语句),需要把“N”修改成“Y”。保存退出。



3修改/etc/rc.d/rc.local文件


把emctl start dbconsole 、lsnrctl start和dbstart添加到rc.local文件中,命令如下:

#vi /etc/rc.d/rc.local

添加:

su oracle -lc "home/oracle_11/app/product/11.2.0/dbhome_1/bin/emctl start dbconsole"   //填写可执行程序的完整路径,填写$ORACLE_HOME/bin/环境变量加目录加可执行程序不行,不知道为什么

su oracle -lc " home/oracle_11/app/product/11.2.0/dbhome_1/bin/lsnrctl start "

su oracle -lc  home/oracle_11/app/product/11.2.0/dbhome_1/bin/dbstart

注意:命令有空格,要用引号


以我的为例:




#reboot重启服务监测是否可以开机自启动:

发现是不能开机自启动的:

如果是在以前的centos版本中,这样就可以了。但是centos7 的/etc/rc.local不会开机执行

可以了。

原因:

所以解决办法:

1 确认了/etc/rc.local的权限



到此:oracel11g安装以及配置就全部完成了!

接下就可以用oracle客户端连接数据库了





历史遗留问题:

本次安装采用的是静默安装

1 开始是采用图形界面安装:但是执行xhost+一直报错:

xhost:  unable to open display ""

给的解决办法都是export DISPLAY=localhost:1,但是设置了还是不行

这个问题,现在暂时无解决办法


2 启动控制台em一直报错:这个问题现在也无解决办法

推荐阅读更多精彩内容