最近公司购买了一台新的服务器,我负责给这台服务器安装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"
CHARACTERSET = "ZHS16GBK"--数据库字符集(中文为ZHS16GBK)
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一直报错:这个问题现在也无解决办法