一、安装环境
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
2.4 firewall开启1521端口
[root@sdba ~]# firewall-cmd --permanent --zone=public --add-port=/tcp
success
[root@sdba ~]# firewall-cmd --reload
success
2.5下载Oracle 11g
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
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.-.el5_8..x86_64.rpm
yum install -y elfutils-libelf-devel
否则会提示缺少package
2.8创建安装oracle所需用户与用户组
root用户:创建Oracle安装组oinstall,数据库管理员组dba,及oracle用户
[root@oracledb ~]# groupadd -g oinstall
[root@oracledb ~]# groupadd -g dba
[root@oracledb ~]# useradd -u -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=
fs.file-max =
kernel.shmall =
kernel.shmmax =
kernel.shmmni =
kernel.sem = 100 128
net.core.rmem_default=
net.core.wmem_default=
net.core.rmem_max=
net.core.wmem_max=
fs.aio-max-nr =
执行以下命令使更改生效
[root@oracledb ~]# sysctl -p
2.10 修改系统资源限制
[root@oracledb ~]# vi /etc/security/limits.conf
oracle soft nproc
oracle hard nproc
oracle soft nofile
oracle hard nofile
[root@oracledb ~]# vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p
ulimit -n
else
ulimit -u -n
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 7 /u01/oracle
[oracle@localhost ~]$ mkdir /u01/oracle/app
[oracle@localhost ~]$ chmod /u01/oracle/app/
[oracle@localhost ~]$ mkdir /u01/oracle/oradata
[oracle@localhost ~]$ chmod /u01/oracle/oradata/ [oracle@localhost ~]$ vi ./.bash_profile # 在文件末尾添加
umask
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./dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl [oracle@oracledb ~]$ source .bash_profile #立即生效
三、安装Oracle Database
[1]上传oracle安装文件到CentOS上
windows下使用putty的pscp工具
I:\>pscp -r "oracle database 11.2.0.4" oracle@服务器IP:/u01
oracle@172.17.84.83's password:
p13390677_112040_Linux-x8 | kB | 25714.6 kB/s | ETA: :: | %
p13390677_112040_Linux-x8 | kB | 26769.5 kB/s | ETA: :: | %
p13390677_112040_Linux-x8 | kB | 27372.2 kB/s | ETA: :: | %
p13390677_112040_Linux-x8 | kB | 27854.4 kB/s | ETA: :: | %
p13390677_112040_Linux-x8 | kB | 27863.2 kB/s | ETA: :: | %
p13390677_112040_Linux-x8 | kB | 28054.5 kB/s | ETA: :: | %
p13390677_112040_Linux-x8 | kB | 29180.0 kB/s | ETA: :: | %
[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
[3] 以oracle用户VNC 登陆,运行以下命令
安装VNC
yum install tigervnc-server
开启端口
[root@oracledb ~]# firewall-cmd --permanent --zone=public --add-port=/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./dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
[29]开放控制台端口,
四、配置自启动
参照CentOS 6下 Oracle11gR2 设置开机自启动
五、启用Scott
六、遇到的问题
问题1:交换空间太小
问题2:先决条件检查缺少package
问题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*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
参考:
Oracle 与 iptables 和 SELinux 禁用关系说明
CenotOS6中文环境下安装Oracle 11g 中文乱码 解决办法
oracle 11.2.0.4 Error in invoking target 'agent nmhs' ins_emagent.mk