CentOS7安装oracle 11g流程
安装准备工作
安装依赖包
操作用户:root。
执行如下命令安装依赖包。
yum -y install xz wget gcc-c++ ncurses ncurses-devel
cmake make perl openssl openssl-devel gcc* libxml2
libxml2-devel curl-devel libjpeg* libpng* freetype*
make gcc-c++ cmake bison perl perl-devel perl perl-devel
glibc-devel.i686 glibc-devel libaio readline-devel
zlib.x86_64 zlib-devel.x86_64 libcurl-* net-tool*
sysstat lrzsz dos2unix telnet.x86_64 iotop unzip
ftp.x86_64 xfs* expect vim psmisc openssh-client*
libaio bzip2 epel-release automake binutils bzip2
elfutils expat gawk gcc ksh less make openssh-server
rpm sysstat unzip unzip cifs-utils libXext.x86_64
glibc.i686 binutils compat-libstdc++-33
elfutils-libelf elfutils-libelf-devel
expat gcc gcc-c++ glibc glibc-common
glibc-devel glibc-headers libaio
libaio-devel libgcc libstdc++ libstdc++-devel
make sysstat unixODBC unixODBC-devel libnsl
创建oracle用户
操作用户:root
groupadd -g 502 oinstall
groupadd -g 503 dba
groupadd -g 504 oper
groupadd -g 505 asmadmin
useradd -u 502 -g oinstall -G oinstall,dba,asmadmin,oper -s /bin/bash -m oracle
passwd oracle
解压oracle数据库安装包
操作用户:oracle
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
修改系统核心参数
操作用户:root
修改用户的SHELL的限制
修改/etc/security/limits.conf文件
输入命令:vi /etc/security/limits.conf
将下列内容加入该文件。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
修改/etc/pam.d/login 文件
输入命令:vi /etc/pam.d/login
,将下列内容加入该文件。
session required /lib/security/pam_limits.so
session required pam_limits.so
修改linux内核,修改/etc/sysctl.conf文件
输入命令: vi /etc/sysctl.conf
,将下列内容加入该文件
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
要使 /etc/sysctl.conf 更改立即生效,输入:sysctl -p
编辑 /etc/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
创建数据库软件目录和数据文件存放目录
目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:
mkdir /home/oracle/app
mkdir /home/oracle/app/oracle
mkdir /home/oracle/app/oradata
mkdir /home/oracle/app/oracle/product
更改目录属主为Oracle用户所有
输入命令:
chown -R oracle:oinstall /home/oracle/app
配置oracle用户的环境变量
首先,切换到新创建的oracle用户下
su - oracle
然后输入vi .bash_profile
,增加以下内容
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
在终端输入source ~/.bash_profile
使环境变量生效
安装过程
上述操作全部完成后,系统完全注销,在图形界面以oracle用户登录。
首先进入安装包解压之后的目录database,cd database
执行安装
- 在database目录下执行
./runInstaller
- 出现图形化安装界面之后,取消勾选,这里不输入Email,点击next
- 选在第一个选项,
Create and configure a database
,点击next - 默认,下一步
- 目录是之前设置的目录,填个密码下一步
- 默认选项,下一步
- 这时,在安装之前,安装程序应该会提醒你缺少一些依赖包。这时因为我们用的是64位系统,而缺少的这些都是32位的包所导致的。不过不用担心,暂时不会出现问题。选在右上角的
Ignore All
,直接开始安装如果出现了错误,详见下方注意事项。 - 这个时候千万不要点ok现在打开终端,切换到root用户,执行这两个文件
- 这个时候就算安装成功了
- 执行
lsnrctl status
查看监听器状态 - 这个时候再去看看安装好应该做些什么事情吧。
注意事项
- 系统语言建议选择英语,不然oracle安装程序中的文字都会变成方块(火星语十级的无视)。
- 中间还有输密码的桥段,记得大小写字母加数字或者符号什么的,只要包含三种就行了。
- 安装过程中,会出现错误,但请不要担心,会有解决的办法。我接下来会给出解决方案,如果没有你所遇到的,可以自己根据提示的错误代码,自己查询解决方案。
- 安装过程中,在link binaries阶段出现2个错误
第一个是关于ins_ctx.mk
log显示:
/lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
原因据说是由于本机的glibc版本高于2.14(实际为2.17)。
解决方法:
yum install glibc-static
该软件包包含一个静态链接库:/usr/lib64/libc.a
修改/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
点击Retry继续
第二个错误是Error in invoking target 'agent nmhs' of makefile'/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk.
解决方法,在makefile中添加链接libnnz11库的参数:
修改/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)
修改为:
$(MK_EMAGENT_NMECTL) -lnnz11
点击Retry即可
安装完成后
oracle启动监听器
- 切换到oracle用户
su - oracle
- 启动监听器
lsnrtcl start
- 查看监听器状态
lsnrtcl status
- 停止监听器
lsnrtcl stop
这里我们要把监听器启动起来,然后进行下一步
启动数据库
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Mar 10 17:04:13 2021
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL> startup
这里安装完之后,可能已经启动了,启动会报错,但请不要担心,进行下一步。
开放1521端口
基于需求,我们要进行远程连接数据库,但连接的时候后说TNS:连接超时
,这是因为没有开放1521端口的原因
输入以下命令:
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
这就算OK了。(记得切换到root用户)
这时候应该就可以愉快的玩耍了,有其他的问题根据错误代码与日志自行解决。
测试
-
使用navicat连接测试一下
参考文章:
Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作