一、安装环境
CentOS Linux release 7.2.1511 (Core)
Oracle Database 11g Release 2 (11.2.0.4)
二、安装前准备
2.1 修改主机名
修改/etc/sysconfig/network配置文件中的HOSTNAME变量
-
[root
@xqzt ~]
# hostnamectl set-hostname oracledb
-
####永久性修改
-
[root
@xqzt ~]
#vi /etc/sysconfig/network
-
NETWORKING=yes
-
HOSTNAME= oracledb
-
[root
@xqzt ~]
# hostname
-
oracledb
2.2 添加主机名与IP对应记录
-
[root
@xqzt ~]
# vi /etc/hosts
-
172.17.
22.70 oracledb
2.3 关闭Selinux
-
[root
@oracledb ~]
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
-
[root
@oracledb ~]
# setenforce 0
2.4 firewall开启1521端口
-
[root
@sdba ~]
# firewall-cmd --permanent --zone=public --add-port=1521/tcp
-
success
-
[root
@sdba ~]
# firewall-cmd --reload
-
success
2.5下载Oracle 11g
略
2.6 检查硬件配置要求
最小内存 1 GB of RAM
虚拟内存容量
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可以查看在不同平台上需要的软件包。
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
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
安装软件包
-
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
ksh无用 yum install -y ksh 需要安装pdksh,另外还需要安装elfutils-libelf-devel
-
wget
http:/
/mirror.centos.org/centos
/5/os
/x86_64/CentOS/pdksh-
5.2.
14-
37.el5_8.
1.x86_64.rpm
-
rpm -ivh pdksh-
5.2.
14-
37.el5_8.
1.x86_64.rpm
-
yum install -y elfutils-libelf-devel
否则会提示缺少package
2.8创建安装oracle所需用户与用户组
root用户:创建Oracle安装组oinstall,数据库管理员组dba,及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
~
]
# vi /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 ~]
# vi /etc/security/limits.conf
-
oracle soft
nproc 2047
-
oracle hard
nproc 16384
-
oracle soft nofile 1024
-
oracle hard nofile 65536
-
[root@oracledb ~]
# 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
-
[root
@oracledb ~]
# vi /etc/pam.d/login #下面添加一条pam_limits.so
-
-
session required pam_limits.so
2.11 创建安装目录及设置权限
创建如下的目录
-
[oracle
@oracledb /]
$ tree /u01/
-
/u01/
-
└── oracle
-
├── app
-
└── oradata
root创建
-
[root
@oracledb ~]
# mkdir –p /u01/oracle
-
[root
@oracledb ~]
# chown –R oracle:oinstall /u01
oracle创建
-
[root@localhost ~]
# su - oracle
-
[oracle@localhost ~]$
chmod 755 /u01/oracle
-
[oracle@localhost ~]$
mkdir /u01/oracle/app
-
[oracle@localhost ~]$
chmod 755 /u01/oracle/app/
-
[oracle@localhost ~]$
mkdir /u01/oracle/oradata
-
[oracle@localhost ~]$
chmod 755 /u01/oracle/oradata/
-
-
[oracle@localhost ~]$ vi ./.bash_profile
-
-
# 在文件末尾添加
-
umask 022
-
export ORACLE_BASE=/u01/oracle/app
2.12 设置oracle环境变量
-
[oracle@oracledb ~]$ vi ~/.bash_profile
-
-
export ORACLE_BASE=/u01/oracle/app
-
export ORACLE_HOME=
$ORACLE_BASE/product/11.2.0/dbhome_1
-
export PATH=
$PATH:
$ORACLE_HOME/bin
-
export ORACLE_SID=orcl
-
-
[oracle@oracledb ~]$
source .bash_profile
#立即生效
三、安装Oracle Database
[1]上传oracle安装文件到CentOS上
略
[2] 解压安装文件
-
unzip p13390677_112040_Linux-x86-64_1of7.
zip
-
unzip p13390677_112040_Linux-x86-64_2of7.
zip
-
unzip p13390677_112040_Linux-x86-64_3of7.
zip
-
unzip p13390677_112040_Linux-x86-64_4of7.
zip
-
unzip p13390677_112040_Linux-x86-64_5of7.
zip
-
unzip p13390677_112040_Linux-x86-64_6of7.
zip
-
unzip p13390677_112040_Linux-x86-64_7of7.
zip
-
-
注:普通单机安装仅需
1和
2,其余为非必需功能组件压缩包。
[3] 以oracle用户VNC 登陆,运行以下命令
安装VNC
yum install tigervnc-server
开启端口
-
[root
@oracledb ~]
# firewall-cmd --permanent --zone=public --add-port=5901/tcp
-
success
-
[root
@oracledb ~]
# firewall-cmd --reload
-
success
运行安装程序
/u01/11.2.0.4/database/runInstaller
[4]输入邮件地址及密码(oracle用户),以从oralce接收安全更新等信息
[5] 选择安装数据库软件并创建数据,也可以选择第二项仅安装数据库软件
[6]选择服务器版本
[7] 本实例中选择安装单实例数据库
[8]高级模式安装
[9] 选择语言
[10] 选择要安装的版本,这里选择 “Enterprise Edition”
[11] 指定Oracle Base 与 Software Location, 我们在oracle用户的profile文件里已设置此环境变量,此处保持默认
[12] 指定Inventory Directory, 本例保持默认
[13]选择数据库用途
[14]数据库名及服务名
[15]开启自动内存管理
[16]设置默认编码为UTF8
[17]示例方案
[18]启用Oracle企业管理控制台OEM
[19]选择数据库文件目录
[20]自动备份设置
[21]设置数据库用户名和密码[注意:密码不要以数字开头,否则后面会报错ORA-00922: 选项缺失或无效]
[22]指定oralce特权用户组,本例保持默认
[23] 接下来,oralce安装程序会对安装环境进行检查,
安装完缺少的package,重新检查
[24]显示安装信息如下。直接Finish, 开始安装。
[25] 静待oracle安装
[26]当出现以下窗口时,另开一个终端,以root用户登陆,并执行下面的命令。执行完毕后,点击OK
-
[root
@oracledb oracle]
# /usr/oracle/oraInventory/orainstRoot.sh
-
-
[root
@oracledb oracle]
# /usr/oracle/app/product/11.2.0/dbhome_1/root.sh
-
[27] 至此oracle 11g R2数据库安装完毕。
[28] 环境变量配置
-
[oracle@oracledb oracle]$ vi ~/.bash_profile
-
-
# 在文件末尾添加
-
export ORACLE_BASE=/usr/oracle/app
-
export ORACLE_HOME=
$ORACLE_BASE/product/11.2.0/dbhome_1
-
export PATH=
$PATH:
$ORACLE_HOME/bin
-
export ORACLE_SID=orcl
[29]开放控制台端口,
四、配置自启动
在Linux系统中,安装好oracle数据库服务后,并不像在Windows系统下一样,oracle服务在默认情况下会随系统的启动自动启动。Linux系统中,是需要用户去手动进行设置,才能实现oracle开机自动启动的。
-
查看ORACLE_HOME是否设置
-
$ echo
$ORACLE_HOME
-
/u01/app
/oracle/product
/11.2.0/dbhome_1
-
使用dbstart命令启动数据库比较方便,但是在linux上安装好oracle之后,第一次使用dbstart命令可能会报如下错误:
-
[oracle
@njdzjkdb dbhome_1]
$ cd bin/
-
[oracle
@njdzjkdb bin]
$ ll | grep dbs
-
-rwxr-x---.
1 oracle oinstall
6088
1月
1
2000 dbshut
-
-rwxr-x---.
1 oracle oinstall
13892
12月
11
16:
01 dbstart
-
[oracle
@njdzjkdb bin]
$ dbstart
-
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage:
-
/u01/app
/oracle/product
/11.2.0/db_1/bin/dbstart ORACLE_HOME
-
错误提示:ORACLE_HOME_LISTNER 没有设置
-
-
原因:
-
dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:用vi编辑dbstart,ORACLE_HOME_LISTNER=
$1,修改为
-
ORACLE_HOME_LISTNER=
$ORACLE_HOME
-
前提是
$ORACLE_HOME环境设置正确
-
-
[oracle
@njdzjkdb bin]
$ vi dbstart
-
--dbstart为开机自启动脚本,让系统开机就去执行dbstart脚本文件,它会去读oratab文件,读到Y就会把对应的实例开机自启动
-
--调整或确认监听路径,如ORACLE_HOME_LISTNER=
/u01/app
/oracle/product
/11.2.0/dbhome_1或ORACLE_HOME_LISTNER=
$ORACLE_HOME根据设置的监听调整路径
使用vi编辑器编辑文件/etc/oratab
-
dbca建库时都会自动创建/etc/oratab文件
-
-
#vi /etc/oratab
-
将“orcl:/u01/app/oracle/product/12.1.0/dbhome_1:N”,
-
改为“orcl:/u01/app/oracle/product/12.1.0/dbhome_1:Y”。
-
修改完成后,保存退出
-
--<N|Y>选项代表开机是否自启动
**说明:**orcl为实例名;/u01/app/oracle/product/12.1.0/dbhome1为oracle安装目录;会因安装的情况不同而有所不同。
编辑/etc/rc.d/rc.local启动文件,添加数据库启动脚本dbstart
-
#vi /etc/rc.d/rc.local
-
末尾添加:
-
su oracle -lc
"/u01/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start"
-
su oracle -lc /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbstart
-
-
或启动指定实例
-
su - oracle -lc
"/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start ORCL"
-
su - oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
-
-
--命令中-c代表执行脚本,脚本dbstart中指定启动的实例,脚本lsnrctl中启动配置的监听
**说明:**/u01/app/oracle/product/12.1.0/dbhome1为oracle的安装目录,要根据实际情况进行修改。
修改DB启动配置文件
-
#vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
-
找到ORACLE_HOME_LISTNER这行
-
# First argument is used to bring up Oracle Net Listener
-
ORACLE_HOME_LISTNER=
$1
-
-
将
$1修改为如下(你的路径):
-
ORACLE_HOME_LISTNER=
/u01/app
/oracle/product
/11.2.0/dbhome_1
由于版本变迁,centos7 的/etc/rc.local不会开机执行,所以要手动给/etc/rc.d/rc.local添加执行权限,以下是官方说明。
-
#!/bin/bash
-
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
-
#
-
# It is highly advisable to create own systemd services or udev rules
-
# to run scripts during boot instead of using this file.
-
#
-
# In constrast to previous versions due to parallel execution during boot
-
# this script will NOT be run after all other services.
-
#
-
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
-
# that this script will be executed during boot.
五、启用Scott
解锁scott账户方法
六、遇到的问题
问题1:交换空间太小
安装Oracle改变swap交换空间大小
安装oracle 检查交换空间太小
问题2:先决条件检查缺少package
Oracle 11gR2 安装少包情况
问题3:oracle 11g 安装及netca,dbca乱码之解决
原因:Linux上没有安装Oracle安装时使用的字体
方法一: 上传字体库
字体库下载地址 http://download.csdn.net/detail/lidongtang/4182819
然后在Linux下执行以下命令,把字体库安装到相应位置即可
-
mkdir -p
/usr/share
/fonts/zh_CN/TrueType
-
cp zysong.ttf
/usr/share
/fonts/zh_CN
/TrueType/
这样在安装的时候。Oracle就会提示中文了,而不再是中文乱码了。
方法二:使用英文安装
export LANG=en_US.utf-8
或者
-
# vi /etc/sysconfig/i18n
-
-
LANG=
"en_US"(不会出现乱码)
问题4:无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色
参照 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<
解决办法: 不用root登陆,直接用oracle用户登陆系统
问题4:无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色
参照 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<
Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/oracle/app/oracle/product/11.2.0/dbhome/sysman/lib/ins_emagent.mk'.
google了一下,好像是oracle新版的bug,如下解决:
解决方案: 保留安装过程,另外开启一个终端窗口,将ins_emagent.mk文件中的$(MK_EMAGENT_NMECTL)更改为$(MK_EMAGENT_NMECTL) -lnnz11,然后在安装过程中点击Retry即可。
sed -i 's/^\s∗$(MKEMAGENTNMECTL)\s∗$(MKEMAGENTNMECTL)\s*$/\1 -lnnz11/g' /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
参考:
Oracle 11g 联机文档:Linux安装向导
CentOS 6安装Oracle 11gR2数据库
Linux上Oracle 11g安装步骤图解
CentOS 6.5_x64安装Oracle 11g R2
Oracle 与 iptables 和 SELinux 禁用关系说明
CenotOS6中文环境下安装Oracle 11g 中文乱码 解决办法
oracle 11.2.0.4 Error in invoking target 'agent nmhs' ins_emagent.mk