环境:VM12+centos7 x86_64 minimal
虚拟机配置
80G硬盘
2G ram + 2G swap
前言
安装Oracle11g使用方式是引导安装界面至windows操作系统进行的,需要的两个操作系统直接不能正常访问,22端口开放,安装前期需要将防火墙关闭,避免不必要的麻烦。中间查错误一般是不会出现的,如果出现问题提供了解决办法,仅供参考。
一、准备工作
1、Oracle数据库
可以到官网登录后进行下载,我这边准备了安装包,仅供参考
原始安装包,解压后可以直接在英文Linux下安装
链接:https://pan.baidu.com/s/1zQJWwYpI-A2bDJG5UhP5Yw
提取码:2zeh
中文Linux环境下会出现乱码,通过加中文字体解决乱码问题;
链接:https://pan.baidu.com/s/1-eECeZMNQ0hhWH2W0BWanA
提取码:rbw7
2、CentOS7
上面的是CentOS的网站,打开有可以找到不同版本的镜像下载,本次安装的版本是1708 64位,CentOS7中比较稳定的一个版本,最新版本的也可以。
http://vault.centos.org/7.4.1708/isos/x86_64
3、虚拟机Vmware Workstations12
打开虚拟机,开始新建一个虚拟机,安装CentOS7系统,并设置相关的虚拟机配置。
进入系统安装页面
选择安装语言,如果英文不好可以选择中文
如果想自己设置分区可按照以下操作进行,其它存储选项,选择我要配置分区,然后点击左上方的完成
创建时发现可用空间较小时,可以先对系统默认的/根节点下的空间修改
开始安装,这里设置一下root的密码,最好用记事本记录一下安装时设置的root密码,如果密码忘了找回很麻烦,慎重!!!
等待安装完成,重启可以使用。
4、CentOS网络设置
登录之后开始设置网络,因安装时启用了网络,所以现在可以看到ens33有ip地址,并且网络是连接状态的,要将IP设置为固定IP
#cd /etc/sysconfig/network-scripts
查看该目录下文件,并修改ifcfg-ens33文件
默认是这样,进入vi编辑,进入编辑模式
##修改内容如下
BOOTPROTO=static #这里将dhcp换成static
ONBOOT=yes #将no换成yes
##新增
IPADDR=192.168.1.76 #静态IP
GATEWAY=192.168.1.1 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 #DNS1(不配置DNS无法上网,这里设置可根据情况调整)
DNS2=4.4.4.4 #DNS2
重启网络服务 # service network restart
查看当前IP并验证网络是否正常ping百度和主机检查
5、其他问题介绍
个人移动虚拟机出错的小插曲:ovf导出、备份、复制、还原的时候会有网络上的问题(物理机有变),修改后把ens33中的网卡地址修改成新虚机查询出来的Mac地址一致即可(此处上下文的IP和MAC地址不一样,是由于中途换电脑了,大家安装时保持一致即可,保证网络相通)
6、安装常用的应用
# wget 下载用的从指定的URL下载文件
# unzip 解压oracle安装文件
# net-tools 查看本机网络情况 比如netstat
# vim vim编辑器,方便编辑文档
7、防火墙关闭
systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁用
设置防火墙不自启动
# vim /etc/selinux/config
然后重启系统。
如果不想重启系统,使用命令setenforce 0
二、安装Oracle11G
Oracle官方安装文档可以找一下,可以解决一些安装中遇到问题。
1、配置yum源
1)下载repo文件
其他版本的CentOS这个地方把数字修改一下
2)备份并替换系统的repo文件
3)执行yum源更新命令
![](https://i-blog.csdnimg.cn/blog_migrate/b565b36a39e868d5c8dddcae4e25b86f.png)
2、安装Oracle11gR2数据库在CentOS下所需要的依赖包
首先确认一下CentOS的版本和位数
# cat /etc/redhat-release
# getconf LONG_BIT
版本对应的这个版本:Oracle Linux 7 and Red Hat Enterprise Linux 7
centos7需要的安装包,可以在Oracle官方文档上查看
![](https://i-blog.csdnimg.cn/blog_migrate/54812ef881988f6bb11fb3a221cdea62.png)
# yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* glibc-devel.i386
(为了防止后面安装时提示错误,可以检查一下依赖包是否正确安装)
查看这些包是否已安装(仔细核对一下,有没有缺失的依赖,如果有这里可以提前解决一下,避免后面出问题,我这里就有疏忽):
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-develelfutils-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、创建Oracle用户与组
在这里只讨论单主机环境,不考虑RAC环境的配置。
执行以下指令以新增oracle安装时所需要的使用者与群组。
(1) 建立群组oinstall
# groupadd oinstall
(2) 建立群组dba
# groupadd dba
(3) 新增使用者oracle并将其加入oinstall和dba群组
# useradd -m -g oinstall -G dba oracle
(若是已有的账户可以用下面的命令修改属组oinstall和从组dba:
# usermod -m -g oinstall -G dba oracle)
(4) 测试oracle账号是否建立完成
# id oracle
![](https://i-blog.csdnimg.cn/blog_migrate/a152fb72c53b95a27216361f37366250.png)
(5) 建立oracle用户的新密码
# passwd oracle -----这里密码也记下
4、将oracle使用者加入到sudo群组中(可选操作)
# vim /etc/sudoers
找到root ALL=(ALL) ALL 这行,并且在底下再加入
oracle ALL=(ALL) ALL
输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter
5、配置系统内核参数
# vim /etc/sysctl.conf(CentOS安装在后面会提示shmmni没有值,只要保证这个里面的kernel.sem最后一个是128就可以忽略那个错误)
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
fs.file-max=6815744
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
fs.aio-max-nr=1048576
如果有一些与之前的参数重复的,就修改成文件上提供的。
编辑完之后,储存,然后执行:
# sysctl -p
如果失败试试这个命令# /sbin/sysctl -p 启用刚刚所做的变更。
6、编辑/etc/security/limits.conf
用户限制配置文件,修改进程数和最大会话数
# vim /etc/security/limits.conf
加入以下四行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
7、编辑/etc/pam.d/login
设置关联信息, 将配置文件加入到登录验证模块
解释部分
安装oracle 11 rac ,需要修改一下文件
# vim /etc/pam.d/login
添加下面语句
session required pam_limits.so
添加后,发现本地无法登陆,输入用户名和密码后,跳回输入前界面;但是却可以使用ssh客户端远程登陆本服务器
后来才发现,32位系统和64为系统写法不一样,具体如下
32位系统
session required /lib/security/pam_limits.so
64位系统
session required /lib64/security/pam_limits.so
CentOS7操作部分添加以下信息
# vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
8、修改/etc/profile(修改系统启动环境参数)
# vim /etc/profile
将以下代码新增到profile档案中。
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
9、修改Linux发行版本信息
解释部分:由于Oracle 11g发行的时候,CentOS 版本没有发行,所以Oracle 11g并没有对CentOS 7确认支持,需要修改文件让Oracle 11g支持CentOS。
我们需要手工修改Linux的发行注记,让Oracle 11g支持CentOS 7。(CentOS6也修改参数即可)
编辑/etc/redhat-release文件
# vim /etc/redhat-release
将其中的内容CentOS Linux release 7.4.1708 (Core)修改为Red Hat Enterprise Linux 7
10、配置Linux主机
检查vim /etc/hosts文件中是否有rdkyc的记录(指向本机分配的IP地址即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。此步骤不能省,没有处理该步骤会出现安装错误关于网络配置错误。不是固定IP的直接用127.0.0.1+主机名(# hostname查询主机名)
这个是针对集群环境中,绑定了域名,会遇到安装Oracle数据提示IP地址不正确,查看提示信息,根据提示的解决。如果是客户的服务器绑定的IP需要加上,使其指向绑定的IP,如果没有检查IP地址是否为静态。
11、配置oracle用户环境变量
根据自己的情况设定路径,严禁直接复制使用,在安装时要具体根据磁盘剩余空间决定安装位置
将使用oracle用户安装Oracle软件,主目录为/home/oracle/app/product/11.2.0/dbhome_1;如果安装在自定义路径,需要创建路径,并设置其运行权限。(此路径问安装路径,根据实际情况修改)例如:
# mkdir -p /home/oracle/app/
# chown -R oracle:oinstall /home/oracle/app/
# chmod -R 775 /home/oracle/app/
修改系统环境变量文件/etc/profile,执行命令:
# vi /etc/profile
文件尾部添加如下信息:
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=ORCL
export NLS_LANG= AMERICAN_AMERICA.AL32UTF8
export PATH=$PATH:$ORACLE_HOME/bin
保存后使用如下命令,使设置生效:
# source /etc/profile
12、安装必要的服务做跳板
Oracle安装的环境配置结束,现在配置图形化界面跳转到windows主机,插曲比较多首先安装几个服务
安装xclock,会安装xorg-x11-apps
# yum -y install xclock
#vim /etc/ssh/sshd_config
取消这一行的注释——如果没有这一行则手动添加之:
X11Forwrding yes 这样配置的作用就是允许SSH的X转发。其实本质上说,这样做是有一定安全风险的,SSH并不能绝对的保证你数据的安全性,不过,一般情况下,这也够了。
安装xhost
# yum whatprovides "*/xhost"
安装VNC
# yum -y install vnc
# yum -y install tigervnc-server
启用vnc服务并设置密码
# vncserver
按照提示输入密码即可
13、Oracle数据库安装文件上传安装
将前面下载好的Oracle 11g数据库安装包上传到生成环境中,可以通过xftp文件传输器上传
上传完成后对数据库安装文件进行授权
# chmod 775 /home/oracleapp/ -R
确保runInstaller是可以执行文件
14、Xmanager工具安装
使用xmanager工具,在windows主机上显示Oracle数据库的安装界面
下载地址
链接:https://pan.baidu.com/s/1NIylb515iRYtvURX8adH-w 密码:lzse
配合xshell使用方便
安装一个小时钟控件,可以测试自己的环境是否搭建成功
# yum install xclock
配置xmanager
运行Xmanager – Passive
打开xstart
输入主机host,协议protocal,ssh,输入登陆的用户名;身份验证,点击设置,输入密码;命令点击三角符号,选择第三个:xterm(Linux old)如下图所示:
15、切换用户开始配置环境安装数据库
# su - oracle
$ export DISPLAY=192.168.1.77:0.0
说明:这里设置的IP地址是windows主机的,这个服务名:0.0也是需要跟进你自己Windows主机启动的Xmanager – Passive服务显示的名称一致
$ xhost +
确定弹窗是否能够弹出,如果可以表示正常
$ xclock
进入Oracle安装包路径
$ cd /home/oracleapp/database/
执行下面命令前请确保oracle安装文件已经授权了
$ ./runInstaller
问题1.出现显示256颜色未通过,是因为没有安装xdpyinfo
#yum install -y xdpyinfo
$cd /home/oracleapp/database
$xdpyinfo
$./runInstaller
问题:如果oracle安装界面出现乱码,在命令行输入
$ export LC_ALL=en_US
$ ./runInstaller
开始进入Oracle安装界面
有人会在这个地方出错,点击下一步是提示错误,错误是系统找不到相应的目录并且没有权限操作,无法读写。这个错误的原因是你在前面设置ORACLE_HOME时出现错误,可以检查一下echo $ORACLE_HOME,需要和你设置的文件/etc/profile保持一致,如果不一致要修改环境变量并生效一下source /etc/profile,一定要生效才能继续
这里全局数据库名没有和我一样设置hostname时应该是orcl,这里做个参考
数据库文件存放位置,若后面创建时修改了数据库文件的存放位置,需要先给文件夹设置权限和所属组必须为oracle用户,不然不能执行相关操作
注意Oracle数据库的密码强度设置规则,8位有数字字母大小写
调整以上提示的错误
- 第一个是swap空间问题,可以修改
标准的Linux安装,SWAP分区是内存的两倍大小,如果增加了内存条,那SWAP分区也要增加
如果增加1G内存,SWAP分区就要增加2G
一、决定修改swap大小,首先在空间合适处创建用于分区的swap文件:如/swap1
# dd if=/dev/zero of=/swap1 bs=1M count=2048
if 表示 infile,of 表示outfile,bs=1M代表增加的模块大小,count=2048代表2048个模块,也就是2G空间
二、将目的文件设置为swap分区文件:
# mkswap /swap1
三、激活swap,立即启用交换分区文件:
# swapon /swap1
以上操作在重启系统后swap空间将会失去/swap1,将/swap1加入到/etc/fstab 条目将可以使得系统在init进程中调用swapon -a 来自动挂载/swap1,这样每次机器重启后/swap1都处于有效的swap空间。
四、在/etc/fstab文件中加入下面这样一行:
# vim /etc/fstab
/swap1 swap swap defaults 0 0
完成!使用free查看swap大小!
检查提示有问题的依赖包,因163开源的依赖包有升级,所以有些依赖包会被检测出来没有被安装,提示不尽相同,只做参考。依赖包能在系统中检测到的可以忽略,对于后面要遇到的错误提前出来glibc-devel.i386依赖包
[root@localhost ~]# rpm -q libaio
libaio-0.3.109-13.el7.x86_64
[root@localhost ~]# rpm -q glibc
glibc-2.17-222.el7.x86_64
[root@localhost ~]# rpm -q compat-libstdc++-33
未安装软件包 compat-libstdc++
[root@localhost ~]# rpm -q elfutils-libelf-devel
未安装软件包 elfutils-libelf-devel
[root@localhost ~]# rpm -q libaio-devel
libaio-devel-0.3.109-13.el7.x86_64
[root@localhost ~]# rpm -q libgcc
libgcc-4.8.5-28.el7_5.1.x86_64
[root@localhost ~]# rpm -q libstdc
未安装软件包 libstdc
[root@localhost ~]# rpm -q libstdc++
libstdc++-4.8.5-28.el7_5.1.x86_64
[root@localhost ~]# rpm -q unixODBC
未安装软件包 unixODBC
[root@localhost ~]# rpm -q unixODBC-devel
未安装软件包 unixODBC-devel
[root@localhost ~]# rpm -q pdksh
未安装软件包 pdksh
单独安装提示未安装的依赖包
[root@localhost ~]# yum -y install compat-libstdc++ elfutils-libelf-devel libstdc unixODBC unixODBC-devel
安装完再检查compat-libstdc++这包不知道为什一直提示未安装,不管了,继续,还有pdksh,这个依赖包已经不用了,只需要安装ksh即可,如果先完全没有依赖包问题,可以使用离线依赖包下载安装,依赖包地址(http://vault.centos.org/7.4.1708/os/x86_64/Packages/)命令:rpm -ivh 依赖包名称
这个错误就当是系统脑残了吧,明明设置了还一直提示,可以看下这个128就是设置的semmni,CentOS7以上的版本都有这个错误
忽略错误继续安装
保存一下响应文件,可以在后期排查问题
错误的原因:Linux没有安装32位的glibc-devel包
解决方法:安装glibc-devel包 如果安装了新版本可以忽略
# yum install glibc-devel*.i386
但是如果遇到了下面这个错误是不能跳过的,否则数据库会安装失败。
解决办法:
$ vim $ORACLE_HOME/sysman/lib/ins_emagent.mk
修改的位置在190行 -lnnz11
修改后重试,继续安装
安装到数据库配置时也可能会报错,如下图:
出现这个错误可以跳过,是因为监听文件不能自动配置出来,需要后面手动调试出来
为了方便,使用看管理一下SCOTT密码
接下来的弹窗用root身份执行一下
至此Oracle11g已经安装完成,可以测试一下是否能够正常使用。
16、Oracle自启动
1. 设置Oracle服务和监听自启动
修改dbstart和dbshut脚本,分别找到文件中的ORACLE_HOME_LISTNER=$1,修改为:ORACLE_HOME_LISTNER=$ORACLE_HOME
$ vim $ORACLE_HOME/bin/dbstart
$ vim $ORACLE_HOME/bin/dbshut
2. 修改oratab文件
$ vim /etc/oratab
将ORCL:/home/oracle/app/product/11.2.0/dbhome_1:N
修改为:ORCL:/home/oracle/app/product/11.2.0/dbhome_1:Y
3. 设置rc.local脚本
切换root用户
# vim /etc/rc.d/rc.local
把以下内容加入到文件中,注意里面所使用的路径必须是自己安装Oracle的实际路径,根据个人情况做相应修改(直接复制可能空格被转义了,最好自己在文本编辑器中格式化一下)
#启动Oracle EM 企业管理器,用于登录https://RD10001kyc:1158/em。
su oracle -lc "/home/oracle/app/product/11.2.0/dbhome_1/bin/emctl start dbconsole"
#启动Oracle监听服务,用于连接本地或远程数据库。
su oracle -lc "/home/oracle/app/product/11.2.0/dbhome_1/bin/lsnrctl start"
#启动Oracle实例,用于登录数据库。
su oracle -lc "/home/oracle/app/product/11.2.0/dbhome_1/bin/dbstart"
17、手动启动Oracle数据库
如果没有自动重启是有问题的,需要排查以上文件是否修改正确如果遇到Oracle没有起来,需要手动起一下
Linux启动Oracle顺序
- $ su - oracle
- $ sqlplus /nolog
- sql> conn / as sysdba
- sql> startup (一般不需要加参数,只要设置好环境变量)
- sql> quit (退出sql模式)
$ lsnrctl start (启动监听器)
三、JDK+Tomcat程序安装
1、卸载自带jdk
先查看是否存在或是存在哪些自带的jdk
# rpm -qa |grep java
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
对应名称的JDK文件全部卸载
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
# rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
# rpm -qa |grep java
2、上传软件
根据生产环境和磁盘使用率确定文件安装位置,我设定的是在/tomcat目录下创建/Standard6文件夹用了存放和安装科研系统相关的所有程序,上传安装文件并
给定文件权限
# chmod 775 /tomcat/Standard6 -R
3、安装JDK
1)解压安装jdk,在shell终端下进入jdk-6u37-linux-x64.bin文件所在目录,执行命令 # ./jdk-6u37-linux-x64.bin 如果出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录?????????jdk1.6.0_37?????
2)需要配置的环境变量
# vim /etc/profile 添加jdk的环境变量
设置完成后source /etc/profile使设置的环境变量生效
#设置Tomcat环境变量
export JAVA_HOME=/tomcat/Standard6/jdk:1.6.0_37
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
3)在终端使用echo命令检查环境变量设置情况,确认是否安装成功。
# echo $JAVA_HOME
# echo $CLASSPATH
# echo $PATH
4.检查JDK是否安装成功。
#java -version
如果看到JVM版本及相关信息,即安装成功!
4、安装Tomcat
1)将apache-tomcat-6.0.35-x64.zip 压缩文件解压缩到 /tomcat/Standard6 下面,编辑
# vim /etc/profile,在文件中添加如下内容:
export CATALINA_HOME= /usr/java/apache-tomcat-6.0.35
运行 # source /etc/profile 命令,来执行修改后的配置
2)设置Tomcat 端口:
打开 /usr/java/apache-tomcat-6.0.35/conf/server.xml 文件,找到如下字段:
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
然后把 8080 改成 80 ,然后保存即可。
3) 启动 Tomcat
在/ apache-tomcat-6.0.35/bin下面,运行命令 startup.sh
关闭 Tomcat 命令
在/ apache-tomcat-6.0.35/bin下面,运行命令shutdown.sh
4) 查看Tomcat输出日志
在/tomcat/Standard6/apache-tomcat-6.0.35/logs下面运行catalina.out
5)访问系统
#curl http://192.168.1.67
5、设置Tomcat自启动服务器
# vim /etc/rc.d/rc.local
#Tomcat自启动
export JAVA_HOME=/Standard6/jdk1.6.0_37
/Standard6/apache-tomcat-6.0.35/bin/startup.sh start
# chmod -x /etc/rc.d/rc.local
四、端口开放
临时开放1521监听端口和1158端口
# /sbin/iptables -I INPUT -p tcp --dport 1158 -j ACCEPT
# /sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
Oracle数据的安装设置到此结束,本地可以通过PL/SQL Developer或者是SQLdevelop连接工具来连接
永久开放端口:
# yum install -y nc 通过yum安装nc
# nc -vv 210.34.98.157 80 检测IP地址为210.34.98.157的服务器80端口是否开放
开放Linux80端口
命令行输入:
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT (允许80端口)
添加到22端口配置的下面
最后如图:
重启防火墙:
/etc/init.d/iptables restart
CentOS7
systemctl restart iptables.service
CentOS6
service iptables restart
结尾
温馨提示一个错误,因为一不小心安装了桌面带来的,其实都没用,安装带有桌面的CentOS会出现以下界面
即说明需要同意许可信息,按照以下顺序开始输入
1-回车-------à2-回车-------àc-回车-------àc回车,即可解决