1,事先准备
1,Oracle下载链接:Oracle官网下载
Oracle官方安装指南:官方安装指南(英语)
VMware + CentOS虚拟机
2,在实体机与虚拟机,Win7和CentOS之间,实现文件共享
2.1. 安装VMware Tools
安装perl
由于VMware Tools的安装脚本需要用到perl,所以要先为CentOS安装perl
# yum install perl
-
在VMware界面“虚拟机”按钮的下拉菜单中,选择“安装VMware Tools”
安装过程
mkdir /mnt/cdrom
//创建挂载目录
mount /dev/cdrom /mnt/cdrom
//挂载
cd /mnt/cdrom
//进入挂载目录
mkdir /usr/local/vmtools
//创建安装包存放文件夹
cp VMwareTools-10.0.5-3228253.tar.gz /usr/local/vmtools
//把挂载目录中的安装包拷贝到目标文件夹中
cd /usr/local/vmtools
//进入存放文件夹中
umount /dev/cdrom
//卸载
tar zxvf VMwareTools-10.0.5-3228253.tar.gz
//解压
cd vmware-tools-distrib
//进入解压文件夹
./vmware-install.pl
//执行文件-
安装结果
其中mounting hgfs shares失败报错了,没关系,这只是说明hgfs下没有共享文件,添加共享就可以了。
共享文件在/mnt/hgfs
路径下,可以看到,这时文件夹下什么内容也没有。
2.2. 添加共享文件:
-
编辑虚拟机,点击“选项”
-
共享文件夹,改为“总是启用”,点击“添加”按钮
-
进入向导
-
添加共享文件
-
下一步,选择启用共享,即可完成共享。
2.3. 在CentOS中访问共享文件夹
-
共享文件的存放位置为
/mnt/hgfs
,之前安装VMware Tools之后什么都没有的hgfs文件夹,这时可以看到上一步共享的database文件夹了。
-
进入database文件夹,看到了Oracle的安装文件
3,安装Oracle
3.1. 进入安装文件存放的文件夹/mnt/hgfs/database,直接安装数据库,提示不能用root用户安装
3.2. 建立Oracle用户和组
groupadd dba
//添加dba组
groupadd oinstall
//添加oinstall组
useradd -m -g oinstall -G dba oracle
//添加oracle用户,默认组oinstall,自动添加home目录,同时添加到dba组
passwd oracle
//设置密码,由于是自用测试库就不设置复杂密码了
3.3. 目录和权限
如果准备使用默认路径(如下图所示)安装Oracle,可以跳过这一步,如果想要自主管理Oracle软件、配置、数据等的存放路径,可以参考这一步。
最好先百度/谷歌一下Oracle的OFA体系,再创建目录。例如可以参考 Dave老师的这一篇文Oracle OFA(Optimal Flexible Architecture) 说明。
mkdir -p /u01/app/oracle/product/11.2.0/db_1
#创建目录
mkdir -p /u01/app/oracle/oradata
chown -R oracle:oinstall /u01/app
#修改目录所有者
chmod -R 775 /u01/app
#修改目录权限
3.4. 配置系统网络参数
-
配置静态IP
Oracle在安装的时候需要静态IP地址,所以需要先配置好相关网络参数。
配置文件的各个参数作用可以看我的另一篇文:CentOS的网络配置参数作用要想永久保留IP地址等修改,需要修改配置文件。
先用ifconfig
确定系统的网卡名称,然后在/etc/sysconfig/network-scripts
路径下,寻找与网卡名称一致的配置文件。例如,网卡名称为eth0,配置文件名称为ifcfg-eth0。
或者直接编辑:vi /etc/sysconfig/network-scripts/ifcfg-eth0
。
以下是配置文件需要编辑的主要内容,不需要修改的行未记录,记得改完后要保存:
ONBOOT=yes #开机自动启用网络接口 BOOTPROTO=static #静态地址 IPADDR=192.168.9.43 #IP地址,根据实际情况配置 NETMASK=255.255.255.0 #子网掩码,根据实际情况配置 #PREFIX=24 #本行可注释 GATEWAY=192.168.9.1 #网关,根据实际情况配置 DNS1=192.168.10.4 #DNS,根据实际情况配置 DNS2=114.114.114.114 #第2个DNS,根据实际情况配置,一般有1个DNS就够了
-
修改hosts文件
vi /etc/hosts
,在底部添加一条记录:本机IP 本机主机名。
如果不做这一步,在安装的时候可能会报Oracle Net Configuration Assisant failed错误。
/etc/sysconfig/network
中的hostname要与/etc/hosts
中的一致。 重启网络服务
service network restart
,重启网络服务使配置生效。
3.5. 修改内核参数
vi /etc/sysctl.conf
,修改内核参数文件:
在文件底部录入以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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
各个内核参数的值,可以参照下表来调整,如果系统值比下表中大可以不调整,如果小于下表的值再作调整。
如果添加后有重复的内核参数,需要注释其中一个。
调整完内核后需要重启系统。
参数名称 | 最小值 | 文件 | 查询命令 |
---|---|---|---|
kernel.sem(semmsl) | 50 | /proc/sys/kernel/sem | /sbin/sysctl -a | grep sem |
kernel.sem(semmns) | 32000 | 同上 | 同上 |
kernel.sem(semopm) | 100 | 同上 | 同上 |
kernel.sem(semmni) | 128 | 同上 | 同上 |
kernel.shmall | 2097152 | /proc/sys/kernel/shmall | /sbin/sysctl -a | grep shm |
kernel.shmmax | 见下方 | /proc/sys/kernel/shmmax | 同上 |
kernel.shmmni | 4096 | /proc/sys/kernel/shmmni | 同上 |
fs.file-max | 6815744 | /proc/sys/fs/file-max | /sbin/sysctl -a | grep file-max |
net.ip_local_port_range | 9000 65500 | /proc/sys/net/ipv4/ip_local_port_range | /sbin/sysctl -a | grep ip_local_port_range |
net.core.rmem_default | 262144 | /proc/sys/net/core/rmem_default | /sbin/sysctl -a | grep rmem_default |
net.core.rmem_max | 4194304 | /proc/sys/net/core/rmem_max | /sbin/sysctl -a | grep rmem_max |
net.core.wmem_default | 262144 | /proc/sys/net/core/wmem_default | /sbin/sysctl -a | grep wmem_default |
net.core.wmem_max | 1048576 | /proc/sys/net/core/wmem_max | /sbin/sysctl -a | grep wmem_max |
fs.aio-max-nr | 1048576 |
其中,shmmax参数,Oracle官方的说明如下:
Minimum of the following values:
· Half the size of the memory
· 4GB - 1 byte
Note: The minimum value required for shmmax is 0.5 GB.
However, Oracle recommends that you set the value of shmmax to 2.0 GB
for optimum performance of the system.
本英语渣翻译大意为:shmmax的值可以是【4GB - 1byte】和【实际内存的1/2】这两者中较小的那个,同时shmmax不能小于0.5GB。官方推荐设置为2GB以获得更好的系统性能。
更多关于内核参数的设置,可以参考这一篇文章Oracle kernel parameters tuning on Linux
3.6. 修改系统资源限制
a. vim /etc/security/limits.conf
#添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
注意:修改此文件是即时生效的,但可能要重登录后再看
b. 修改/etc/pam.d/login
(也有部分文章表示可以不修改):
vi /etc/pam.d/login
找到session required pam_namespace.so
,然后在下方添加一行:
session required pam_limits.so
3.7. 修改防火墙
a. 关闭Selinux
临时关闭Selinux:setenforce 0
永久关闭Selinux:vi /etc/sysconfig/selinux
,并将文件中的SELINUX=enforcing
改为 SELINUX=disabled
,永久关闭需要重启后方能生效。
b. 关闭防火墙
service iptables stop
#临时关闭,重启后失效
chkconfig iptables off
#永久关闭
3.8. 修改oracle的环境变量
记得切换用户到oracle
vi ~/.bash_profile
编辑环境变量,添加oracle环境变量,注意路径需要和准备安装的oracle路径(即3.3中创建的目录路径)一致,ORACLE_SID需要和创建的数据库SID一致:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
然后运行source .bash_profile
使配置立即生效
3.9. 安装依赖包
Oracle11的安装包自带检查,会提示系统需要安装哪些依赖包,可以按照需要一个个添加。
我这里在网上找了一个比较全的依赖包列表:
yum install -y binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
3.10. 安装Oracle
a. 去掉勾,直接next,弹出警告选yes
b. 选择想要进行的操作,个人选1
- 创建并设置一个数据库
- 只安装数据库软件
- 升级一个已经存在的数据库
c. 选择安装那种级别的数据库:桌面级,服务级。个人选择2
从帮助文档的描述看,如果想要用到RAC,ASM,Grid Control,备份和恢复配置等等更多功能,建议选择2。
另从部分网友的文章看,桌面级似乎不支持远程连接。
d. 选择grid配置:单实例还是RAC
e. 选择典型安装还是高级安装
- 典型安装:快速安装,最少输入,多用于一般用途的数据库
- 高级安装:复杂安装,更多设置,多用于按需设置的数据库。
f. 如果选择典型安装,设置会比较简单,有选择安装路径,设置账号密码等步骤,而如果选择高级安装,还会有设置语言支持、数据库功能(需要的空间大小也不同)等步骤。
安装路径,oracle用户需要有写入权限。
g. 选择数据库类型:通用数据库,数据仓库。通常选第一个。
h. 确定数据库名称和SID
i. 选择内存管理和字符集等设置
内存管理:选中自动内存管理的勾,其他按默认设置就好,装好后还可以修改。
字符集涉及数据库支持的字符,不支持的字符会显示为乱码。
- 选项一,使用操作系统的字符集,
- 选项二,使用AL32UTF8字符集,该字符集支持多语言,
- 选项三,从支持的列表中自己选择字符集,
j. grid和邮件提醒,测试用库邮件提醒就比较无所谓了。
k. 选择存储管理方式:操作系统管理或ASM,后期可以改,先选操作系统管理
l. 自动备份选项
m. 设置关键账号的密码
n. 为操作系统用户组指定数据库权限,可见最好再加一个operator组,因为是测试库我就不再加了
o. 下一步Oracle安装程序会自检,检测环境是否符合要求。
- 如果是安装程序可以修复的问题,那么会被标记为fixable,可以通过运行安装程序提供的脚本来处理。脚本的路径和名称安装程序会提示,用root运行一遍即可。
- 如果是内存问题,就要停掉虚拟机来添加,如果是swap空间不够问题,那么就需要扩大swap空间,具体方法可以百度/谷歌之。
- 如果是报Packages问题,可以通过
rpm -q
命令来查看是否有安装。由于CentOS中部分i386包会被改名为i686,所以肯定会有几个包报错,这类错误可以直接忽略。
其实原本每种问题和解决都有记录并且截图,但不知道为什么这些内容都被吞了,而虚拟机里这一步已经过去,所以这一步就简略写写并且不配图了。
p. 接下来就是安装,安装完成后会提示需要运行2个脚本:
q. 安装成功,通过浏览器访问https://IP:1158/em来确认
安装过程中遇到的问题
- 问题一,无法将DISPLAY显示到主显示器上,系统提示如下:
Checking monitor: must be configured to display at least 256 colors >>> Could not execute auto check for display colors using command /usr/openwin/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
因为Oracle的安装需要Java和图形界面,查了一些网络资料,大约有几种解决方式:
- 如果可以接触主机,那么
- 直接在主机上启用图形界面,然后运行安装程序
- 通过vncserver功能解决
参考文章:【ORACLE】安装时遇到“display at least 256 colors”
- 如果是远程连接主机,那么
- 可以通过xshell+xmanager结合的方式安装oracle,将显示转到xmanager
参考文章:XShell+Xmanager实现在XShell中显示远程服务器的图形界面
作者:derek
参考文章: XManager远程Linux 安装Oracle 图形化界面xstart解决方法
作者:DataBases
- 可以通过xshell+xmanager结合的方式安装oracle,将显示转到xmanager