本文目录
- 一、安装环境
- 二、安装准备
- 三、开始安装oracle
- 四、登陆测试
一、安装环境
CentOS Linux release 7.7
Oracle Database 11g Release 2 (11.2.0.4)
二、安装准备
2.1 需要使用vnc,请在windows上安装vnc客户端,在linux上vnc服务端
2.2 修改主机名
(注意:2.3和2.4这两步,可做可不做,贴出来主要是想让大家了解一下如何改主机名)
修改/etc/sysconfig/network配置文件中的HOSTNAME变量
[root@localhost ~]# hostnamectl set-hostname oracledb
####永久性修改
[root@localhost ~]#vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME= oracledb
[root@localhost ~]# hostname oracledb
2.3 添加主机名与IP对应记录
[root@localhost ~]# vi /etc/hosts
"你的服务器地址" oracledb
2.4 关闭Selinux
[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracledb ~]# setenforce 0
2.5下载Oracle 11g
oracle总共7个文件只需要p13390677_112040_Linux-x86-64_1of7.zip和p13390677_112040_Linux-x86-64_2of7.zip
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
2.6 检查硬件配置要求
虚拟内存容量要求:
Available RAM | Swap Space Required |
---|---|
Between 1 GB and 2 GB | 1.5 times the size of RAM |
Between 2 GB and 16 GB | Equal to the size of RAM |
More than 16 GB | 16 GB |
数据库软件硬盘空间需求:
Installation Type | Requirement for Software Files (GB) |
---|---|
Enterprise Edition | 3.95 |
Standard Edition | 3.88 |
数据文件硬盘空间需求:
Installation Type | Requirement for Data Files (GB) |
---|---|
Enterprise Edition | 1.7 |
Standard Edition | 1.5 |
检查的命令
内存
grep MemTotal /proc/meminfo
交换空间
grep SwapTotal /proc/meminfo
磁盘空间
df -ah
2.7 安装所需的软件包
通过查看Oracle安装文档中列出的Package Requirements可以查看在不同平台上需要的软件包。centos7所需要的依赖包有两种类型:packages for Oracle Linux 7和Oracle ODBC Drivers(一定要每个包都能装上)
########################1.packages for Oracle Linux 7#########################
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh libaio-0.3.109-9.el7.i686 libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686 libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686 libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686 libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686 libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686 libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686 libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64 sysstat-10.1.5-1.el7.x86_64
#############################2.Oracle ODBC Drivers#########################
On Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4:
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
2.7.1 安装软件包
yum -y install binutils
yum -y install compat-libcap1
yum install -y gcc gcc-c++ glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64
yum install -y libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64
yum install -y libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64
yum install -y libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64
yum install -y make
yum install -y sysstat
yum install -y unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64
2.7.2 如果ksh装不上或者无效,可以安装pdksh代替,另外还需要安装elfutils-libelf-devel.
wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
cd /tmp
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
yum install -y elfutils-libelf-devel
(否则会提示缺少package)
2.8创建安装oracle所需用户与用户组
[root@oracledb ~]# groupadd -g 200 oinstall
[root@oracledb ~]# groupadd -g 201 dba
[root@oracledb ~]# useradd -u 440 -g oinstall -G dba -d /home/oracle oracle
[root@oracledb ~]# passwd oracle
2.9 更改kernel参数
[root@oracledb ~]# vim /etc/sysctl.conf
#末尾添加如下
net.ipv4.ip_local_port_range= 9000 65500
fs.file-max = 6815744 kernel.shmall = 10523004
kernel.shmmax = 6465333657
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr = 1048576
执行以下命令使更改生效
[root@oracledb ~]# sysctl -p
2.10 修改系统资源限制
[root@oracledb ~]# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
[root@oracledb ~]# vim /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
[root@oracledb ~]# vim /etc/pam.d/login
#文件里添加一条pam_limits.so
session required pam_limits.so
2.11 创建安装目录及设置权限
*** 将会创建如下结构的目录
[oracle@oracledb /]$ tree /u01/
/u01/
└── oracle
├── app
└── oradata
2.11.1 创建目录和设置权限
[root@oracledb ~]# mkdir -p /u01/oracle
[root@oracledb ~]# mkdir /u01/oracle/app
[root@oracledb ~]# mkdir /u01/oracle/oradata
[root@oracledb ~]# chown -R oracle:oinstall /u01
[root@oracledb ~]# chmod -R 755 /u01
2.11.2 添加环境变量
[root@localhost ~]# su - oracle
[oracle@oracledb ~]$ vim ~/.bash_profile
export ORACLE_BASE=/u01/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致
[oracle@oracledb ~]$ source .bash_profile #立即生效
三、安装oracle
3.1 首先配置好vnc环境,在防火墙上开启vnc窗口端口(第一个端口为5901,可用进程指令查看)
3.2 解压安装文件,并运行安装程序
解压,将生成的database文件夹移动到/u01/oracle/app下
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
mv database /u01/oracle/app
运行安装程序
su - oracle
/u01/oracle/app/database/runInstaller
*************************上步可能出现的问题************************
A
问题一:系统显示权限的设置问题。如下两个错误都是一个问题。
通常当你从hostA登陆到hostB上运行hostB上的应用程序时,做为应用程序来说,hostA是client,但是对图形来说,是在hostA上显示的,需要使用hostA的Xserver,所以hostA是server。因此在登陆到hostB前,需要在hostA上运行xhost +来使其它用户能够访问hostA的Xserver。
To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the native operating system such as 'xclock':
% <full path to xclock.. see below>
If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
Typical path for xclock: /usr/X11R6/bin/xclock
或者
gnoring required pre-requisite failures. Continuing...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2020-04-26_02-36-53AM. Please wait ...[oracle@localhost tmp]$ Invalid MIT-MAGIC-COOKIE-1 keyException in thread "main" java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.Toolkit$2.run(Toolkit.java:821)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:804)
at com.jgoodies.looks.LookUtils.isLowResolution(LookUtils.java:484)
at com.jgoodies.looks.LookUtils.<clinit>(LookUtils.java:249)
at com.jgoodies.looks.plastic.PlasticLookAndFeel.<clinit>(PlasticLookAndFeel.java:135)
at java.lang.Class.forName0(Native Method)
解决方案:修改显示权限
[oracle@oracledb ~]$exit
[root@localhost ~]# ps -ef| grep vnc #看到出现localhost.localdomain:1的信息,然后根据该信息我们来设置DISPLAY值。
[root@oracledb ~]#export DISPLAY=localhost:1
[root@oracledb ~]#xhost +
[root@oracledb ~]# su oracle 这里百千万不要用度su - oracle (会自动消掉root刚刚设置好的xhost + 配置环境)
[oracle@oracledb ~]$export DISPLAY=localhost:1
[oracle@oracledb ~]$xhost +
关于DISPLAY变量的科普:https://blog.csdn.net/preamble_1/article/details/70883978
*************************************************************************
3.3 图形界面向导
3.3.1 设置用来接收更新信息提升的邮箱。不用管,直接跳过。
3.3.2 点击Skip-software-updates
3.3.3 点击create and configure a database
3.3.4 点击server class
3.3.5 点击single instance database installation
3.3.6 点击Typical install
3.3.7 按实际路径修改,设置密码
3.3.8 填写配置文件目录
3.3.9 点击install
************************上步可能出现的问题*************************
A
问题一:缺少gcc和gcc-c++的依赖包
Error in invoking target 'mkldflags ntcontab.o&nb
解决方案:直接安装gcc和gcc-c++环境
首先你得先把镜像上传安装:这个根据自己的版本
将镜像挂载到/mnt目录下:
# cd /mnt
# mkdir cd
# mount /dev/cdrom /mnt/cd
# /mnt/cd/Packages
开始安装gcc环境顺序不能错:
rpm -ivh glibc-common-2.12-1.132.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm
rpm -ivh libgcc-4.4.7-4.el6.x86_64.rpm
rpm -ivh glibc-2.12-1.132.el6.x86_64.rpm
rpm -ivh libgomp-4.4.7-4.el6.x86_64.rpm
rpm -ivh nscd-2.12-1.132.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
开始安装gcc-c++环境:
rpm -ivh libstdc++-4.4.7-4.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm
如果要是版本不一样可以用ls | grep 包名 来查询自己版本所对应的rpm包。再用rpm -ivh 包名 进行安装。实在没有自己去网上下载
B
问题二:makefile没有链接到libnnz11库
Error in invoking target 'agent nmhs' of makefile
解决方案:修改$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,添加链接库
cd $ORACLE_HOME/sysman/lib
cp ins_emagent.mk ins_emagent.mk.bak #备份原始文件,以防需要还原
vim ins_emagent.mk
然后找到$(MK_EMAGENT_NMECTL)这一行,在后面添加-lnnz11,效果如下
$(MK_EMAGENT_NMECTL) -lnnz11
*************************************************************************
四、测试登录
进入创建的实例文件夹db_home1下的bin目录下,执行 ./sqlplus /nolog 看是否能进入数据库,能进入,就代表安装成功。
cd $ORACLE_HOME/bin
./sqlplus /nolog