Oracle 11g安装和配置
Last updated on 2011-11-29
Oracle 11g R1 for Linux(RHEL5)安装和配置
物理内存: # grep MemTotal /proc/meminfo
交换空间: # grep SwapTotal /proc/meminfo
交换空间的大小是根据物理内存的大小来设置的,物理内存少于2G的则交换空间设为物理内存的两倍,物理内存大于2G的则交换空间和物理内存大小一样。如果不符合上述规定,那么就需要重新设置交换空间的大小。重新设置交换空间的大小有两种方法:一种是使用 fdisk 删除交换分区重新划分大小;另一种是创建一个新文件,分配大小然后格式化成交换分区。本手册使用第二种方法。
创建文件: # touch/home/swap
分配空间: # ddif=/dev/zero of=/home/swap bs=1024 count=4100000
格式化文件: # mkswap /home/swap
停止 swap : #swapoff �Ca
使用 swap : #swapon /home/swap
自动挂载: # 在 etc/fstab 里加入以下一行:
/home/swap swap swap defaults 0 0
磁盘空间: # df �Cah
Oracle 11g安装所需的磁盘空间为1.7G,如果不够的话得另外添加。
检查下列包是否安装,如果未安装则要先安装。 # rpm -qa | grep make gcc glibc 等等也要用rpm �Cqa检查某个包是否安装以防万一
binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
gcc-4.1.1-52
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
[root@localhostoracle-rpm]# rpm -ivh elfutils-libelf-devel-static-0.137-3.el5.i386.rpm --force--nodeps
warning:elfutils-libelf-devel-static-0.137-3.el5.i386.rpm: Header V3 DSA signature:NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:elfutils-libelf-devel-s###########################################[100%]
[root@localhostoracle-rpm]#
rpm-ivh gcc-4.1.2-50.el5.i386.rpm --force--nodeps
rpm-ivh gcc-c++-4.1.2-50.el5.i386.rpm --force--nodeps
rpm-ivh glibc-2.5-58.i386.rpm --force --nodeps
rpm-ivh glibc-devel-2.5-58.i386.rpm --force --nodeps
rpm-ivh glibc-headers-2.5-58.i386.rpm --force --nodeps
rpm -ivhkernel-headers-2.6.18-238.el5.i386.rpm
rpm -ivhlibaio-0.3.106-5.i386.rpm
rpm -ivh libgcc-4.1.2-50.el5.i386.rpm
rpm -ivh libgomp-4.4.4-13.el5.i386.rpm
rpm -ivh libstdc++-4.1.2-50.el5.i386.rpm
rpm -ivh libstdc++-4.1.2-50.el5.i386.rpm--force --nodeps
rpm -ivhopenmotif22-2.2.3-18.i386.rpm --force --nodeps
rpm -ivhoracleasm-support-2.1.4-1.el5.i386.rpm
rpm -ivhoracleasm-2.6.18-238.el5PAE-2.0.5-1.el5.i686.rpm--force --nodeps
rpm -ivhoracleasmlib-2.0.4-1.el5.i386.rpm这三个包没有包需要拷到U盘或移动硬盘里安装
rpm -ivhsetarch-2.0-1.1.i386.rpm
rpm -ivh sysstat-7.0.2-3.el5_5.1.i386.rpm
rpm -ivh unixODBC-2.2.11-7.1.i386.rpm
rpm �CivhunixODBC-devel-2.2.11-7.1.i386.rpm
rpm �Civhlibaio-devel-0.3.106-5.i386.rpm
rpm �Civh elfutils-libelf-devel-0.137-3.el5.i386.rpm
如果用U盘或者移动硬盘需要下载安装能识别ntfs文件系统的包地址:
#wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2011.4.12.tgz
这里需要注意的有两点:一是弄清楚服务器是 32 位的还是 64 位;二是不要下载 Oracle 11gR2 , R2 不能够在 RHEL5 上安装。不要辛辛苦苦的下载下来,却发现版本不对,那就做了很多无用功了。 Oracle Database Software Downloads :
http://www.oracle.com/technology/software/products/database/index.html
Vi /etc/sysctl.conf文件中加入下列行:
#11gR2版本参数
fs.aio-max-nr =1048576
fs.file-max =6815744
kernel.shmall =2097152
kernel.shmmax =536870912
kernel.shmmni =4096
kernel.sem = 25032000 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 =1048586
运行 # sysctl �Cp 命令改变核心参数。
2.2 设置 Shell Limits
a 、在/etc/security/limits.conf 文件中加入下列行:
oracle soft nofile65536
oracle hard nofile65536
oracle soft nproc16384
oracle hard nproc16384
b 、在 /etc/pam.d/login 文件中加入下列行:
session required/lib/security/pam_limits.so
session requiredpam_limits.so
c 、在 /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
2.3 禁用 secure Linux(安装时就已经禁用了)
修改 /etc/sysconfig/selinux 文件中的 SELINUX 项为 disabled(SELINUX=disabled) ,使用命令 #setenforce 0 使更改生效。
2.4 创建用户和组及相关目录
a 、创建 oinstall 、 dba 组
# groupadd dba
# groupadd oinstall
b 、创建 oracle 用户
# useradd -goinstall -G dba oracle
# usermod -goinstall -G dba oracle
# passwd oracle
# id oracle
uid=501(oracle)gid=502(oinstall) groups=502(oinstall),501(dba)
c 、创建相关安装目录
chmod 777 /opt
chmod 777/opt/oracle/
chmod 777 /var
chmod 777 /var/opt
su - oracle(最好开放最大权限)
# mkdir -p /opt/oracle/product
# mkdir -p/opt/oracle/product/OraHome
# mkdir -p/opt/oraInventory
# mkdir -p/opt/oracle/oradata
# mkdir -p/var/opt/oracle
d 、设置目录所有者和权限
su - root
# chownoracle:oinstall /opt
# chown -R oracle:oinstall/opt/oracle
# chown -Roracle:dba /opt/oraInventory
# chown oracle:dba/var/opt/oracle
# chmod -R 777/opt/oracle
# chmod -R 777/var/opt/oracle
[root@localhost /]#vi /etc/sysconfig/i18n
#LANG="zh_CN.UTF-8"
LANG=zh_CN
NLS_LANG=zhs16gbk
[root@localhost /]#source /etc/sysconfig/i18n
设置好后最好检查一遍,确认上述目录以及其子目录的所有者和权限都设置正确。后面安装过程中出现的权限问题大都和这里目录的所有者和权限设置不对有关。
2.5 设置环境变量
进入到 oracle 用户下,更改用户的一些配置。
# su �C oracle
[root@localhost /]#source /etc/sysconfig/i18n
Cd /home/oracle
Vi .bash_profile 添加以下参数,主要是配置 oracle 软件运环境参数。
if [ -f ~/.bashrc]; then
. ~/.bashrc
fi
exportORACLE_BASE=/opt/oracle
exportORACLE_HOME=$ORACLE_BASE/product/OraHome
exportORACLE_SID=orcl
exportORACLE_OWNER=oracle
exportORACLE_TERM=vt100
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
exportPATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
exportLD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH
ORA_NLS33=$ORACLE_HOME/nls/admin/data
执行以下命令让配置马上生效: # source $HOME/.bash_profile
2.6 设置网络
su - root
ifconfig
Oracle 的安装需要设置静态 IP ,否则会在安装检查时出现警告。打开/etc/sysconfig/network-scripts/ifcfg-eth0 ,改为静态 IP ,这里注意一定要有红色标识的那句。
DEVICE=eth0
HWADDR=00:1b:11:0f:39:85
ONBOOT=yes
BOOTPROTO=static
NETMASK=255.255.225.0
IPDDR=192.168.1.30
GATEWAY=192.168.1.1
TYPE=Ethernet
[root@localhost /]#source /etc/sysconfig/network-scripts/ifcfg-eth0
修改 /etc/hosts ,增加一行,其中第一个是服务器的静态 IP 、第二个是服务器的域名,第三个是服务器的主机名。
192.168.1.30localhost.localdomain localhost
LINUX本地执行(需要重启网卡使之生效)
Ifdown eth0
Ifup eth0
[root@localhost~]#xhost local:oracle
3 、安装
重新打开一个终端窗口,以 oracle 用户登录,运行 runInstaller 。如果用的是 X 模式,则需要设置 DISPLAY 。
Su - oracle
# exportDISPLAY=:0.0
到存放ORACLE安装包的目录下
# unzip linux_11gR2_database_1of2.zip
# unzip linux_11gR2_database_2of2.zip
Su �C root
Reboot需要重启服务器使之所有的配置生效
开机用oracle用户登陆
# cd database
# ./ runInstaller
最好在根上建立一个文件夹,这个文件夹专门用来存放 ORACLE 的安装文件。但是需要注意的是,在安装 ORACLE 前,需要把这个文件夹的所有者修改成用户 oracle ,文件夹权限最好是修改成 777 ,以免在安装过程中出现问题。在安装过程中会提示你以 root 权限运行 /oracle/oraInventory/orainstRoot.sh 和/opt/oracle/product/OraHome/root.sh 两个脚本,注意一定要以 root 权限来运行。完成后的画面中会有管理端入口地址和 sqlplus 入口地址。
此时会有报错(无法使用命令/usr/bin/xdpyinfo 自动检查显示颜色是否设置DISPLAY变量)
进入root用户执行#xhost + 即可
4 、启动
Oracle 提供了两个脚本 dbstart 和 dbshut 用来启动和关闭数据库。这两个脚本首先读取oratab(/etc/oratab) 文件来决定哪个数据库是需要自动启动和关闭 , 然后启动和关闭那些数据库, oratab 文件通过 root.sh 创建。不过, dbstart 和 dbshut 脚本中都包含有错误,需要修改 ORACLE_HOME_LISTNER=$ORACLE_HOME
oracle账户下修改$ORACLE_HOME/bin/dbstart文件。
Root.sh在/opt/oracle/product/OraHome/下
# dbstart
# sqlplus /nolog
# connect /assysdba
如果一切顺利的话,到此为止你就可以进行 SQL 操作了。
测试:
启动和停止监听器:
监听器接受客户端的连接请求,并在验证证书后创建数据库连接。要使用OEM,必须先启动监听器。
$ lsnrctl start
[oracle@localhost ~]$ lsnrctl start
题外
启动和停止 Oracle 企业管理器数据库控制:
$ emctl start dbconsole
[oracle@localhost ~]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.1.0.6.0
Copyright (c) 1996, 2007 Oracle Corporation. All rights reserved.
https://localhost.localdomain:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control............................. started.
------------------------------------------------------------------
Logs are generated in directory/u01/app/oracle/product/11.1.0/db_1/localhost.localdomain_orcl/sysman/log
$ emctl stop dbconsole
[oracle@localhost ~]$ emctl stop dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.1.0.6.0
Copyright (c) 1996, 2007 Oracle Corporation. All rights reserved.
https://localhost.localdomain:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g Database Control ...
... Stopped.
5 、安装过程常见错误
错误提示:
建议案 : Oracle 支持在具有 DHCP 分配的公共 IP 地址的系统上进行安装。但应使用静态 IP 地址来配置系统的主网络接口 , 以便 Oracle 软件正常工作。有关在配置有 DHCP 的系统上安装软件的详细信息 , 请参阅 Installation Guide 。
解决方法:参考 2.6 设置网络
错误提示:
/opt/oracle/product/OraHome/bin/lsnrctl:error while loading shared libraries:/opt/oracle/product/OraHome/lib/libnnz11.so: cannot restore segment prot afterreloc: Permission denied
解决方法:关闭 SELinux ,参考 2.3 禁用 secure Linux