Oracle公司要求安装Oracle11g的服务器,物理内存不能小于1G,否则无法进程安装。可以使用free -m命令查看物理内存。
可以使用free -m命令查看swap的大小。如果swap分区太小,可以使用以下方法增加swap大小:
用root执行:
dd if=/dev/zero of=/var/swap bs=1M count=2048
意思是创建/var/swap文件,大小为2G(共计2048个大小为1M的块)的swap文件,该文件的大小可以按照实际需求调整。
用root执行:
mkswap /var/swap
意思是创建swap空间
用root执行:
swapon /var/swap
意思是启用这个swap文件
修改/etc/fstab文件,在末尾添加
/var/swap swap swap defaults 0 0
这样每次开机,系统都会自动启用这个swap文件
使用hostname命令可以显示主机名,请与/etc/sysconfig/network文件中的HOSTNAME记录和/etc/hosts文件中的127.0.0.1这一行中的记录进行核对,如果三个地方的主机名不一致,将来会在用netca对oracle进行网络配置的时候报错。如果需要修改主机名,也是在这三处进行设置,使用root执行:
hostname 新主机名
vi /etc/sysconfig/network 将HOSTNAME设置为新主机名
vi /etc/hosts,第一行末尾增加新主机名,如:
127.0.0.1 localhostlocalhost.localdomain 新主机名
使用date -R命令输出系统时间,输出如下:
root@rhel6 ~]# date -R
Mon, 22 Sep 2014 16:52:22 +0800
请注意,如果最后的一列不是+0800,说明安装系统的时候时区选择的不对,使用root执行下面命令进行修复:
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果需要调整系统时间,使用date–s 命令后面加需要设置的时间,例如:
date -s '20140922 17:00:00'
然后执行
hwclock –w
当我们执行oracle安装程序./runInstaller的时候,这个程序作为一个X client,接入到我们执行语句的Xmanager,Xmanager就是一个X server,用来显示X client的界面。默认情况下Linux上的程序(X client)只会在默认的DISPLAY上进行显示输出。默认的DISPLAY为:
DISPLAY=:0.0
也就是服务器本机的Xserver。如何将界面显示到Xmanager的X server呢?两个办法,一种是修改DISPLAY,用oracle用户执行:
DISPLAY=<你运行Xmanager的主机IP>:0.0;export DISPLAY;
另外一种就是完全放开限制,用root执行
xhost +
推荐第二种方法,设置更简单。如果你使用的远程控制控制软件没有Xserver功能(如putty、SecureCRT),又或者你没有通过上面两种方法设置X server的访问权限,那么你在执行./runInstaller的时候会得到这样一个报错:
xhost: unable to open display
安装oracle11g的服务器需要关闭SELinux,查看/etc/selinux/config文件,如果发现:
SELINUX=enforcing
说明系统已经启用了SELinux,请将该配置修改为
SELINUX=disabled
修改完毕后,需要重启服务器才能生效。
可以用setenforce 0命令立刻关闭SELINUX。
关闭不需要的服务服务器如果打开太多服务,不但会占用服务器资源,增加服务器负担,还会带来安全问题,用root执行下列语句关闭一些平时用不到的服务(包括Linux防火墙服务iptables):
chkconfig --level 345 acpid off;
chkconfig --level 345 auditdoff;
chkconfig --level 345 avahi-daemon off;
chkconfig --level 345 bluetooth off;
chkconfig --level 345 cpuspeed off
chkconfig --level 345 cups off;
chkconfig --level 345cups-config-daemon off;
chkconfig --level 345 gpm off;
chkconfig --level 345 hidd off;
chkconfig --level 345 httpd off;
chkconfig --level 345 iiim off;
chkconfig --level 345ip6tables off;
chkconfig --level 345iptables off;
chkconfig --level 345irqbalance off
chkconfig --level 345 iscsioff;
chkconfig --level 345 iscsidoff;
chkconfig --level 345 isdn off;
chkconfig --level 345 kdump off;
chkconfig --level 345 kudzu off;
chkconfig --level 345 libvirtd off;
chkconfig --level 345 mcstrans off;
chkconfig --level 345mdmonitor off;
chkconfig --level 345 nfslock off;
chkconfig --level 345 sendmail off;
chkconfig --level 345 smartd off
chkconfig --level 345 smb off
chkconfig --level 345 squid off
chkconfig --level 345 tog-pegasus off;
chkconfig --level 345 yum-updatesd off;
service cpuspeed stop
service iptables stop
service irqbalance stop
service xinetd reload
chkconfig --level 345 pcmcia off;
chkconfig --level 345 pcscd off;
chkconfig --level 345 postfixoff;
chkconfig --level 345 rhnsd off;
请注意,如果系统输出
error reading information on servicesmb: No such file or directory
这样的提示,说明你在安装操作系统的时候就没有安装这些服务,忽略这些提示即可。
安装ORACLE需要的包yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gccgcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 libgcc*.i686 libgcclibstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaiolibaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBCunixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp ksh
系统内核参数首先需要配置的内核参数,是/etc/sysctl.conf,典型的配置如下:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range = 900065500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.swappiness=40
vm.vfs_cache_pressure=200
vm.min_free_kbytes=409600
修改完参数后,需要用root执行
sysctl -p
检查修改的配置是否有效,并使其立即生效。
里面参数的具体意义如下:
kernel.shmmax = 2147483648 #单个进程使用的共享内存段的最大值,单位是字节,一般取物理内存大小的一半。32位操作系统的最大值是4294967295
(也就是4G-1)
kernel.shmmni = 4096 #整个系统共享内存段的最大数目,默认是4096
kernel.shmall = 2097152 #默认值是2097152系统可以使用的共享内存的总量,以页(PAGESIZE)为单位,内存页的大小可以通过getconf PAGESIZE命令来查看,默认是4096。其值应不小于shmmax/page_size
kernel.sem = 250 32000 100 128 #信号量方面的设置,分别是:每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数
fs.file-max = 65536 #系统中所允许的文件句柄最大数目
net.ipv4.ip_local_port_range = 102465000 #当程序打开随机端口进行对外连接时,程序可使用的IPv4端口范围
net.core.rmem_default = 1048576 #套接字接收缓冲区大小的默认值
net.core.rmem_max = 1048576 #套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 #套接字发送缓冲区大小的默认值
net.core.wmem_max = 262144 #套接字发送缓冲区大小的最大值
vm.swappiness=40 #默认是60,设置为0的时候表示最大限度使用物理内存,然后才是swap空间,100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。推荐设置为20-40,但不要设置为0,否则程序容易被内核KILL掉。
vm.vfs_cache_pressure=200 #默认值:100 控制内核回收再利用用于缓存目录与inode对象的内存的趁势,默认100表示内核以平等的速度去考虑pagecache和swapcache的回收再利用。减小它,会触发内核保持目录与inodes的缓存内存。增大它,会触发内核回收再利用目录与inodes的缓存内存
vm.min_free_kbytes=409600 #默认值 3519 这个参数值用来强制linux虚拟内存保留最小值的空闲
fs.aio-max-nr=3145728 #文件系统最大异步io数量
需要注意的是,shmmax这个参数在系统安装完毕后有个默认值,可以按照物理内存的一半进行设置。如果shmmax/ PAGESIZE 大于 shmall,则需要按照实际值增大shmall。上面的配置,PAGESIZE* shmall = 8G,也就是说,在物理内存是16G以上的时候,需要修改shmall。
总结:shmmax需要修改为物理内存的一半,物理内存大于16G的时候,需要同时调整shmall,shmall应该设置为大于等于 (物理内存/2)/4096。使用ipcs -sa命令可以看到共享内存段个数
勘误:有的文档说“三个参数的关系必须是(shmall* shmmni>= shmmax)”其实是不正确的,shmmni恰巧等于PAGESIZE,都是4096,但它们完全是两码事,千万不要混淆。正确的算法应该是shmall* PAGESIZE>= shmmax
勘误:有的文档说“shmmax应该设置为物理内存的一半减一”其实是不正确的,物理内存的一半即可,不需要减一。他们可能混淆了shmmax 在32位操作系统的最大值是4294967295(也就是4G-1)
Oracle数据库在运行的时候会打开大量的文件和进程,可以通过ulimit–a命令看到系统当前对同时打开的文件数、进程数、栈大小、占用CPU时间等限制。Oracle在安装和运行的时候,要求系统的这些限制必须放大到一定范围内,因为系统的默认值是非常小的。需要修改这3个文件:
1.修改/etc/pam.d/login文件,
vi /etc/pam.d/login
在文件尾部添加如下内容:
session required pam_limits.so
注意:有的文档上说,添加的内容是sessionrequired /lib/security/pam_limits.so。这是在32位系统上用的,如果是64位系统,需要修改为sessionrequired /lib64/security/pam_limits.so。一旦64位系统设置的路径错误的设置为lib,会导致服务器无法登录。其实没必要这么麻烦,直接写pam_limits.so就行,系统会自动选择正确的文件。
2.修改/etc/security/limits.conf文件:
vi /etc/security/limits.conf
在文件尾部添加如下内容:
* soft nproc 16384
* hard nproc 16384
* soft nofile 65536
* hard nofile 65536
* soft stack 10240
* hard stack 32768
上面的内容,就是文件数、进程数、栈大小的设置。注意,如果服务器上只运行oracle数据库,可以把前面的星号替换为oracle,如果需要同时运行恒生的中间件,建议保留为星号。
3.修改/etc/security/limits.d/90-nproc.conf文件:
这个配置文件是RHEL6新增的,如果这个配置文件不修改,/etc/security/limits.conf中的配置就不会生效。
vi /etc/security/limits.d/90-nproc.conf
把 * soft nproc 1024 这一行,在开头加#号注释掉,如果不注释,普通用户可以开启的进程就被限制为1024个。也可以使用下面命令快速修改:
sed -i 's/^*/#*/g'/etc/security/limits.d/90-nproc.conf
勘误:limits.conf文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,而且只针对于单个会话,也就是说,如果/etc/pam.d/login中不加载pam_limits.so,那么limits.conf文件中的配置是不生效的。有的文档上只修改limits.conf,没有修改login文件,这是不对的。以上3个文件请务必同时修改。
勘误:如果在limits.conf中配置了文件进程数的限制,那就不需要再用ulimit命令来设置了。有的文档会在/etc/profile或者oracle用户的.bash_profile中使用ulimit命令来设置,这完全是多余的。/etc/profile不需要修改,.bash_profile请参考下面的章节。
增加oracle用户和组使用root用户执行如下语句,会添加oinstall、dba两个用户组,添加oracle用户,创建oracle目录并授权,使用passwd命令来设置oracle的密码:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle.oinstall /u01
mkdir -p /u02/oradata/
chown -R oracle:oinstall /u02
chown-R oracle:oinstall /home/oracle/
echo 'oracle' | passwd oracle --stdin
使用vi~oracle/.bash_profile命令来编辑oracle用户的登录配置文件,典型配置如下:
if [ -f ~/.bashrc ]; then
.~/.bashrc
fi
ORACLE_BASE=/u01/app/oracle; exportORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;exportORACLE_HOME
ORACLE_SID=orcl;export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; exportPATH
NLS_LANG="SIMPLIFIEDCHINESE_CHINA.ZHS16GBK"; export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH
请将ORACLE_SID修改为实际的SID值,ORACLE_SID的长度不能大于8个字符。注意:修改完.bash_profile配置文件之后,oracle用户需要重新SSH登录,所设定的环境变量才会真正生效,当然也可以执行以下命令使.bash_profile配置文件中的内容立即生效: source .bash_profile或者. .bash_profile
安装oracle文件Oracle的安装包要跟操作系统的位数一致,32位的系统只能安装32位的oracle,64位的操作系统只能安装64位的oracle,不能混淆。推荐将oracle的安装包放到oracle的主目录/home/oracle或者/u01目录,可以避免一些权限问题。使用下面命令解压Oracle11g的安装包:
32位安装包:
unzip p13390677_112040_LINUX_1of7.zip
unzip p13390677_112040_LINUX_2of7.zip
64位安装包:
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_1of7.zip
就解压完成了,cd 到database子目录,用oracle用户执行下面命令,就可以开始图形化安装了:
./runInstaller
图形安装自行参考自身需要