一般企业级的服务器都是采用Linux或者Unix,因为相对Windows系统来说,Linux和Unix服务器稳定性比较好、可以多用户操作系统、bug较Windows少、调控性高、可以根据实际应用做出相应的调整、排错性强,而且Linux是免费的而Windows收费。另外,对于企业来说,更希望程序执行的效率更高些,虽然这两个系统的人工成本高,但是更有可能兼顾程序的效率,所以一般生产用的服务器都是Linux和Unix。
Linux 6(x86-64)系统对应的Oracle 12c数据库可以通过以下网址进行下载:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-linux-download-1959253.html,安装包分为2个文件,下载完后,需要将2个文件解压到同一目录下,路径名称中,最好不要出现中文,也不要出现空格等不规则字符;安装的参考文档以及数据库相关的学习文档下载网址是http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html。
1. 内存要求
1) 最小值为1 GB of RAM,建议值为2 GB of RAM or more;
2) 查询命令:# grep MemTotal /proc/meminfo
本测试系统环境为Linux 6.4(x86-64),内存有1.8G多,满足Oracle 12c的内存安装要求。
1. 交换空间要求
1) 查询命令:# grep SwapTotal /proc/meminfo
2) 通过命令:# free查看内存和交换空间的使用情况。
由上面本机内存1.8G可知,只要交换空间在1.8*1.5以上就可以,查询可知本机的交换空间接近4G,满足要求。
3. 系统内核版本
1) 查询系统位数命令:# uname -m;
2) 查询系统版本命令:# cat /proc/version或# cat /etc/redhat-release或# lsb_release -id;
3) 查询系统内核版本:# uname -r。
经查询可知,本机系统为RedHat 6.4(x86_64),系统版本和内核版本都在Oracle 12c支持的范围内。
4. 磁盘空间要求
用来安装的Oracle 12c对应版本的目录硬盘保留量至少满足上面的要求,一般情况下,这个都不是问题,如果有疑问,可以用df -h命令查询一下目录所在的硬盘空间使用情况。
5. /tmp空间至少1GB
1) 查询命令:# df -h /tmp,Oracle安装目录中的/oradata目录用来存放数据文件,/tmp目录是根文件系统的一部分,而图5-8中查询结果显示根目录还剩余29G,满足条件。
2) 通过命令:# df -h查看各个磁盘的使用情况。
1. RPM要求
安装前可先查看需要的RPM包已安装,查询命令:# rpm -q package_name,另外,对于本测试的操作系统版本Oracle 12c,要使用用于连接数据库的Oracle ODBC Drivers,需要安装unixODBC-2.3.1 or later,下载地址http://www.unixodbc.org。
1) 检查Oracle需要的rpm安装情况
[root@kk /]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat
2) 安装缺失的rpm
[root@kk /]#yum install glibc-devel-2.12-1.132.el6_5.1.i686 libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6.i686 libstdc++-4.4.7-4.el6.x86_64.i686 libstdc++-devel-4.4.7-4.el6.i686 libXext-1.3.1-2.el6.i686 libXtst-1.2.1-2.el6.i686 libX11-1.5.0-4.el6.i686 libXi-1.6.1-3.el6.i686
3) 再次检查rpm的安装情况
注意:如果yum没有对应rpm资源,可以在http://rpm.pbone.net/上查找下载相关的rpm资源,然后安装。
2. 创建用户、用户组以及安装目录
安装和运行Oracle数据库软件都需要使用指定用户组内的指定用户,用户为Oracle,出于安全考虑,用户组建为oinstall、dba,oinstall组中的成员用于管理Oracle数据库物理软件,dba组中的成员用于管理、操作数据库,具有sysdba权限。
[root@kk 桌面]# groupadd oinstall ----创建oracle用户组
[root@kk 桌面]# groupadd dba----创建oracle用户组
[root@kk 桌面]# useradd -g oinstall -G dba oracle----oracle加入新建的2个用户组
[root@kk 桌面]# passwd oracle ----设置oracle用户的密码
[root@kk 桌面]# mkdir -p /usr/oracle ----创建oracle安装目录
[root@kk 桌面]# chown -R oracle:oinstall /usr/oracle ----更改oracle目录用户组
[root@kk 桌面]# chmod -R 775 /usr/oracle ----更改oracle目录权限
[root@kk 桌面]# chown -R oracle:oinstall /opt/oracle/oracinstall----更改oracle安装文件所在目录的用户组
[root@kk 桌面]# chmod -R 755 /opt/oracle/oracinstall----更改oracleracle安装文件所在目录的操作权限
2. 配置系统内核参数
内核参数大致分为4种:共享内存(shared memory)、信号量(semaphores)、网络(network)、打开文件(open files)。
共享内存是用于进程间通信的一种机制,可以有指定的多个进程共用,是一种系统资源,共享内存以段得得形式分配,Oracle实例启动时,shmget()系统调用为SGA分配内存,SGA由Oracle的多个进程共享,这部分内存会以共享内存的形式分配。共享内存内核参数有kernel.shmmax(每个内存段的最大值,等于或大于sga_max_size,不小于物理内存1/2或2G)、kernel.shmall(指定任意时刻,系统可以分配的所有共享内存段总和的最大值,不小于shmmax/page_size,如果服务器运行的SGA<8G,可用默认值)、kernel.shmmni(系统可分配的共享内存段的最大数量,默认是4096)。
信号量是一种控制资源访问的方法,Oracle实例主要使用信号量来控制共享内存的访问,使用processes初始化参数分配信号量,其值至少等于processes。信号量通过内核参数kernel.sem来控制,如:kernel.sem = 250 32000 100 128,其中等号右边4部分分别为semmsl、semmns、semopm、semmni值。
n semmsl指每个信号量集合中的最大信号量个数,其值或取其最小值100,或者为所有数据库中最大的processes+10,选择其中较大值者。
n semmns值是指整个系统范围内信号量总数的最大值,默认是32000。
n semopm用于指定每个semop()系统调用可以设置的信号量操作的最大数量,默认为100。
n semmni用于指定信号量集合的最大数量,最小为100,Oracle建议取值128.
net.core.rmem_default、net.core.rmem_max、net.core.wmem_default、net.core.wmem_max,4个参数用于设置socket数据发送缓冲区及接收缓冲区的默认大小与最大大小。对应Oracle 12c的系统内核参数要求参考如下:
1)编辑系统的内核参数:[root@kk 桌面]# vi /etc/sysctl.conf,在文件的末尾加入内核要求内容,编辑完成通过“ESC”和“:wq”保存并退出编辑窗口
2) 生效新配置的系统内核参数(图5-16):
[root@kk 桌面]#sysctl -p
3) Error:"net.bridge.bridge-nf-call-arptables" is an unknown key,这个错误是由于自动处理可载入的模块bridge没有自动载入,解决办法是自动处理开载入的模块ip_conntrack,error解决方法:
[root@kk 桌面]# modprobe bridge
[root@kk 桌面]# lsmod | grep bridge
4. 配置Oracle用户shell limit
为了提高在linux系统上运行软件的性能,必须对oracle用户设置下列限定。
[root@kk 桌面]# vi /etc/security/limits.conf
5. 编辑登录配置文件
[root@kk 桌面]# vi /etc/pam.d/login
6. Oracle用户环境变量配置
要成功安装并使用Oracle数据库软件,必须在Oracle用户的.bash_profile文件中设置ORACLE_BASE、ORACLE_HOME、ORACLE_SID和PATH环境变量,其他的根据需要来设置。ORACLE_HOME可以在安装前手动配置,另外,Oracle安装过程中会根据ORACLE_BASE的值自动指定的ORACLE_HOME,所以也可以在安装后将这个ORACLE_HOME写入.bash_profile。
[root@kk 桌面]# su – oracle
[oracle@kk ~]$vi .bash_profile
# use for oracle
export ORACLE_BASE=/usr/oracle
export ORACLE_HOME=$ORACLE_BASE/product
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LANG=en_US----防止Oracle安装界面乱码,先把语言环境改为英文
if [ $USER = "oracle" ];then
if [ $SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[oracle@kk ~]$ source .bash_profile
7. 配置修改/etc/hosts文件
安装RHEL的时候最好采用静态IP地址,
[root@kk 桌面]# vi /etc/hosts
至此操作系统的软硬件检测和配置已完成,接下来进行Oracle数据库的安装,这里我们采用图形界面方法进行安装(图5-23)。
[root@kk 桌面]# xhost + --接收Oracle安装的图形界面
[root@kk 桌面]# su - oracle
[oracle@kk ~]$ cd /opt/oracleinstall/database ---进入安装文件目录
[oracle@kk databasel]$ ./runInstaller
进入安装界面:
接下来的安装可参详Windows下Oracle 12c的安装,大同小异,这里就不赘述了。
不足之处,稻草人欢迎大家的批评指正!