在过去对众多项目的支撑过程中,Oracle作为首选数据库,其安装与配置过程成了重复性最多的工作之一。
在此,我进行了总结,并分享出来,希望能对大家有所帮助。
随着Oracle版本的提升,从9i
->10g ->11g,其安装与配置过程其实越来越简单,尤其到了11g,会自动检测所缺少的系统软件包,并在系统参数配置方面进行自动调优。

在Linux下Oracle的安装配置过程我认为可分为三大步:
第一步
预安装的环境参数配置
在Windows下没有这一步,因为已经由安装程序直接完成了,Linux下目前也有相应的rpm软件包可进行快速设置,例如SUSE的orarun,但我强烈建议不要采用这类软件包,因为它们所完成的设置在参数、权限、目录规划等方面都存在不足。

第二步
实际的数据库安装过程
执行runInstaller安装数据库程序;
执行dbca创建数据库实例;
执行netca创建数据库监听和配置本地服务名;
这些过程与Windows平台上基本上没有什么差异。

第三步
系统服务的创建与配置
创建管理数据库服务的shell脚本,实现数据库的开机自启动和关机自停止。
这一步过程在Windows平台上可直接通过
管理工具-服务
进行配置。

鉴于Oracle10g与11g的安装与配置步骤基本相同,我就把它们整合在了一起,具体步骤如下:
一、预安装的环境参数配置

1.系统环境设置
确保交换分区的大小超过2G,且IP为固定IP,避免在安装环境检测时提示失败(若实在条件有限,可以强行安装)。

2.安装所需软件包
Oracle10g
需要安装以下软件包(*代表所有匹配的软件包都需要安装,请自行从安装光盘中获取):
#rpm
-Uvh setarch-* make-* glibc-* libaio-* compat-libstdc++-* compat-gcc-*
gcc-* libXp-* openmotif22-*
compat-db-*
Oracle11g 除了需要安装上面提到的软件包以外,还需要以下软件包:
#rpm
-Uvh sysstat-* unixODBC-* ksh-* binutils-* elfutils-*
注意:*代表通配符,意思是所有匹配的软件包都需要安装,以上软件包都可以在操作系统的安装光盘中找到。

3.修改/etc/redhat-release文件
因为Oracle
10g官方只支持到RHEL4和SUSE9,所以需要更改版本说明。
RHEL需要编辑/etc/redhat-release文件,暂时将内容修改为redhat-4。
SUSE需要编辑/etc/SUSE-relase,暂时将内容修改为SUSE-9。

Oracle11g已经支持最新的Linux发行版本,因此无需修改。

4.修改内核参数
#vi
/etc/sysctl.conf
32位Oracle推荐配置参数如下:

kernel.shmmax = 2147483648 //这里设置为物理内存的一半,但32位Linux最大仅支持4G,即4294967295字节。
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

64位Oracle推荐配置参数如下:

kernel.shmmax = 536870912 //这里设置为物理内存的一半。
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 1024 65500 //如果是11g则推荐 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

使更改立即生效,使用下面的命令:
#sysctl -p

5.建立安装Oracle需要的用户,组,及目录
#groupadd oinstall
#groupadd dba
#groupadd oper
#useradd -g oinstall -G dba oracle
#passwd
oracle

#mkdir /oracle
#chown -R oracle:oinstall /oracle
#chmod -R 775 /oracle

安装oracle的目录建议指定在一个单独的分区、磁盘或阵列上,以减少因操作系统问题而带来的数据风险。

6.设置oracle用户的shell
limit
#vi /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

更改/etc/pam.d/login文件,添加如下内容,使shell limit生效:
#vi /etc/pam.d/login

session                  required                pam_limits.so

7.配置oracle用户的环境变量

编辑/home/oracle目录下的.bash_profile文件,设置如下内容:

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 //根据实际情况设置,如果是安装11g R2则将10.2.0更改为11.2.0。
export ORACLE_SID=orcl //根据实际情况设置
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH
export CLASSPATH
 
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

二、实际的数据库安装过程
首先,从Oracle官方网站下载所需的版本,个人推荐在64位的Linux操作系统上安装64位的Oracle,这样才能够获得良好的数据库性能。

Oracle官方下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
Oracle10.2
32位:10201_database_linux32.zip
Oracle10.2
64位:10201_database_linux_x86_64.cpio.gz
Oracle11.2
64位:linux.x64_11gR2_database_1of2.zip ,
linux.x64_11gR2_database_2of2.zip

将安装文件放入/oracle/install
目录(以Oracle10.2
64位为例):
#mkdir /oracle/install
#mv
10201_database_linux_x86_64.cpio.gz /oracle/install/
#chown -R oracle:oinstall /oracle/install

解压数据库安装包:
#cd
/oracle/install
zip文件解压:#unzip
10201_database_linux32.zip
cpio.gz文件解压:#zcat 10201_database_linux_x86_64.cpio.gz | cpio -idmv

修改解压后的目录权限:
#chown -R oracle:oinstall
/oracle/install/database

Oracle的安装需要通过oracle用户登陆图形化终端(如Gnome,KDE)支持,通过以下几种方式可以实现:
使用Oracle用户直接本地登陆图形化终端;
配置VNC
Server,通过VNC
Client远程登陆Oracle用户图形化终端,配置方法:
http://heylinux.com/archives/669.html
配置并通过Xmanager的Xbrowser远程登陆Oracle用户图形化终端,配置方法:
http://heylinux.com/archives/394.html
将远程安装程序的图形化界面显示到本地,方法为:
启动Xmanager主程序,通过Oracle用户登陆命令行终端,
然后执行
$export DISPLAY=192.168.1.7:0.0 //请更改为当前实际操作命令终端的IP地址

使用Oracle用户登陆后,为了防止安装时出现中文乱码,先把语言环境改为英文:
$export
LC_CTYPE=en_US.UTF-8

解压后,开始安装Oracle数据库程序:
$database/runInstaller

下面以
Oracle10.2 64位
为例:
1.选择安装类型,这里选择高级安装,如下图所示:

2.指定证书存放目录,如下图所示:

3.选择安装的数据库类型及oracle所支持的语言,这里选择企业版,语言选择英文和简体中文,如下图所示:

4.指定oracle环境变量,安装路径。因为我们在.bash_profile中已经声明,所以这里会自动填充.如下图所示:

5.Oracle安装前的检查工作,如下图所示:

6.选择配置选项,这里我们选择仅安装数据库程序,数据库实例的创建则通过后面的dbca来单独完成,如下图所示:

7.点击“Next”,开始安装,在出现下图显示的内容时执行以下操作:

#su -
root
#/oracle/oraInventory/orainstRoot.sh
#/oracle/product/10.2.0/db_1/root.sh

8.安装完成,恢复操作系统版本信息。

执行dbca创建数据库实例:
$dbca

下面以
Oracle10.2 64位
为例:
1.选择创建数据库,如下图所示:

2.选择自定义数据库,如下图

3.输入数据库实例名,即SID(根据实际情况设置),如下图所示:

4.默认配置,点击“Next”,如下图所示:

5.输入管理用户密码,如下图所示:

6.选择数据库设备类型,默认使用操作系统的文件系统,如下图所示:

7.默认配置,点击“Next”,如下图所示:

8.默认配置,点击“Next”,如下图所示:

9.配置数据库安装组件,点击右下角“Standard
Database Components...”,取消“Oracle
JVM”与“Oracle
XML DB”,如下图所示:

10.配置数据库参数,修改字符集参数为“ZHS16GBK”与“UTF-8”,其他设置保持默认,如下图所示:

11.后面的步骤均保持默认配置,点击“Next”或“Finish”,直到安装完成。

三、系统服务的创建与配置
下面以
Oracle10.2 64位
为例:

1.编辑
/etc/oratab文件,配置以下选项:
orcl:/oracle/product/10.2.0/db_1 :Y //修改该选项最后的“N”为“Y”;

2.编写自定义脚本
创建用于启动、关闭与重启Oracle服务的自定义脚本并命名为oracle10g,内容如下:

# !/bin/sh
# chkconfig: 2345 80 03
# description: oracle dabase deamons
# filename:oracle10g
 
ORACLE_HOME=/oracle/product/10.2.0/db_1
ORACLE_OWNER=oracle
 
case "$1" in
'start')
ORACLE_PROCESS=`ps aux | grep ora_ | grep -v grep |wc -l`
if [ $ORACLE_PROCESS -ne 0 ];
        then
               echo "ERROR: Oracle already running."
               sleep 1
        else
                echo -n "Starting Oracle: "
               su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart
               touch /var/lock/subsys/oracle10g
               sleep 2
fi
ORACLE_LISTENER=`ps -e |grep tnslsnr |wc -l`
if [ $ORACLE_LISTENER -ne 0 ];
        then
               echo "ERROR: Listener already running."
               sleep 1
        else
               echo -n "Starting Listener: "
               su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
               sleep 2
fi
echo
;;
 
'stop')
ORACLE_LISTENER=`ps -e |grep tnslsnr |wc -l`
if [ $ORACLE_LISTENER -ne 0 ];
        then
               echo -n "Shutting down Listener: "
               su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
               sleep 2
        else
               echo "ERROR: Listener already shutdown."
               sleep 1
fi
ORACLE_PROCESS=`ps aux | grep ora_ | grep -v grep |wc -l`
if [ $ORACLE_PROCESS -ne 0 ];
        then
               echo -n "Shutting down Oracle: "
                su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut
               rm -f /var/lock/subsys/oracle10g
               sleep 2
        else
               echo "ERROR: Oracle already shutdown."
               sleep 1
fi
echo
;;
 
'restart')
echo "Restarting Oracle: "
$0 stop
$0 start
echo
;;
 
*)
echo "Usage: oracle { start | stop | restart }"
exit 1
 
esac
exit 0

3.配置自定义脚本
通过以下命令将自定义脚本添加至系统自动启动与自动关闭管理服务中:
#
cp oracle10g /etc/rc.d/init.d/
# chmod 744 /etc/rc.d/init.d/oracle10g
# chown oracle:oinstall /etc/rc.d/init.d/oracle10g
# ln -s /etc/rc.d/init.d/oracle10g /etc/rc.d/rc3.d/S99oracle10g
# ln -s
/etc/rc.d/init.d/oracle10g /etc/rc.d/rc5.d/S99oracle10g
# ln -s
/etc/rc.d/init.d/oracle10g /etc/rc.d/rc0.d/K01oracle10g
# ln -s
/etc/rc.d/init.d/oracle10g /etc/rc.d/rc6.d/K01oracle10g
这样,系统在开启时将会最后自动启动Oracle,而在关闭时会最先自动关闭Oracle。

4.使用自定义脚本
/etc/init.d/oracle10g start
//启动数据库
/etc/init.d/oracle10g stop
//关闭数据库
/etc/init.d/oracle10g restart
//重启数据库

四、卸载ORACLE
如果需要完全卸载Oracle,可通过以下步骤完成:
1.
停止oracle10g并删除自定义脚本
#/etc/init.d/oracle10g
stop
#rm -f /etc/init.d/oracle10g
2. 使用oracle用户执行
$ORACLE_HOME/bin/localconfig delete
3. $rm -rf $ORACLE_BASE/*
4. $rm -f /etc/oraInst.loc /etc/oratab
5. $rm -rf /etc/oracle
6. $rm -f /etc/inittab.cssd
7. $rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
8.
使用root用户删除oracle用户和组
#userdel -r oracle
#groupdel
oinstall
#groupdel dba
#groupdel oper
9.卸载完成

Oracle10g/11g 在SUSE/RHEL上的安装与配置的更多相关文章

  1. Win7上Git安装及配置过程

    Win7上Git安装及配置过程 文档名称 Win7上Git安装及配置过程 创建时间 2012/8/20 修改时间 2012/8/20 创建人 Baifx 简介(收获) 1.在win7上安装msysgi ...

  2. 在Linux上怎么安装和配置Apache Samza

    samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...

  3. Linux平台上轻松安装与配置Domino

    Linux平台上轻松安装与配置Domino Domino Server的编译安装过程中需要用到libstdc++-2.9和glibc-2.1.1(或者其更高的版本)两个编译模块,它们是Linux开发编 ...

  4. solr5.5.0在CenOS上的安装与配置

    solr5.5.0在CenOS上的安装与配置 1. Solr简介 Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XS ...

  5. MongoDB 3.2 在CentOS 上的安装和配置

    MongoDB 3.2 在CentOS 上的安装和配置   2016-01-06 14:41:41 发布 您的评价:       0.0   收藏     0收藏 一.安装 编辑/etc/yum.re ...

  6. java环境--JDK和Tomcat在linux上的安装和配置

    Tomcat在Linux上的安装与配置 以下使用的Linux版本为: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54.1.下载JDK ...

  7. Solr6.5在Centos6上的安装与配置 (一)

    这篇文章主要是介绍在Centos6上Solr6.5的安装与配置. 一.安装准备及各软件使用版本说明: 1.JDK8,版本jdk1.8.0_121下载地址:jdk-8u121-linux-x64.tar ...

  8. Nginx 在 Linux 上的安装和配置

    一.Nginx的安装 1.单台Nginx的安装 Nginx在Linux上的安装可以参考这篇博客:http://blog.csdn.net/molingduzun123/article/details/ ...

  9. nginx在linux上的安装与配置详解(一)

    Nginx的安装与配置详解 (1)nginx简介     nginx概念: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like ...

随机推荐

  1. codeforces 630K - Indivisibility

    K. Indivisibility 题意:给一个n(1 <= n <= 10^18)的区间,问区间中有多少个数不能被2~10这些数整除: 整除只需要看素数即可,只有2,3,5,7四个素数: ...

  2. thinkphp 框架的学习(1) 扩展配置文件

    在config.php里面写入 1:'LOAD_EXT_CONFIG' => array('SETTINGS' => 'settings'); 系统会判断是否有参数:LOAD_EXT_CO ...

  3. 安装ubuntu12.04LTS卡住以及花屏问题

    昨天在XP下用grub4dos安装了ubuntu12.04LTS,总体上还算比较顺利,中途有碰到两个异常问题,解决了记录一下. 问题一:安装过程中读取ISO镜像文件时,卡在"checking ...

  4. JS数组整理

    1. 检测数组的方法: 1. instanceof[操作符]: var arr = []; console.log(arr instanceof Array);//true 1. instanceof ...

  5. zoj 3765

    一道区间更新.查询的题: 但是线段树不能做插入: 后来才知道用splay: splay用来做区间查询的话,先将l-1旋转到根节点,然后把r+1旋转到根节点的右节点: 这样的话,根节点的右节点的左子树就 ...

  6. easyui源码翻译1.32--DateTimeBox(日期时间输入框)

    前言 扩展自$.fn.datebox.defaults,使用$.fn.datetimebox.defaults重写默认值对象.下载该插件翻译源码 和日期输入框类似,日期时间输入框允许用户选择日期和指定 ...

  7. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-011-注入AspectJ Aspect

    一. 1. package concert; public interface CriticismEngine { public String getCriticism(); } 2. package ...

  8. 基于CommentCoreLibrary简单的弹幕实现

    本文地址:http://www.cnblogs.com/liaoyu/p/ccl-demo.html 实现基于开源的 CommentCoreLibrary 最近有需求要实现一个简单的评论弹幕实现,通过 ...

  9. C#中如何生成矢量图

    主要的功能就是使用C#画矢量图,然后导出到Word.Excel.Powerpoint中,并且能够再次被编辑.以下是解决过程: 首先应该确定在Office文档中可编辑图形使用的格式:学习了相关资料,了解 ...

  10. 【HDOJ】2037 今年暑假不AC

    qsort排序后DP,水题.注意,数组开大点儿,把时间理解为0~23,开太小会wa. #include <stdio.h> #include <stdlib.h> #defin ...