转【Linux下安装Oracle10g详细教程(支持Redhat和CentOS静默模式安装)】

经过这几天的血汗历程,在重装了N次oracle和CentOS后。终于在CentOS中把Oracle搞定了,现在并且将我在安装过程中遇到的问题结合网上的资源整理了出来,希望对大家有点帮助。其中存在的一些问题可能跟环境有关,所以本文只提供参考。今天做了修改,将我最终在服务器上的安装过程融合到这篇文中了。服务器是RedHat系统,所以这篇文章同时适合CentOS和RedHat的。

1、确保系统中安装了yum     因为我安装的是服务器,而且redhat系统还没注册,所以不能使用在线更新软件。为了保证服务器能在线更新软件,或者保证安装oracle的必备软件包都已经安装,那么可以通过以下方法检查是否安装yum,CentOS应该是免费自带可用的。     saas@dbserver yum.repos.d]$ rpm -qa |grep yum     yum-3.2.22-26.el5     yum-rhn-plugin-0.5.4-15.el5     yum-security-1.1.16-13.el5     yum-updatesd-0.9-2.el5     yum-metadata-parser-1.1.2-3.el5
2、在dbserver服务器上添加CentOS的yum     先到/etc/yum.repos.d文件夹下     [saas@dbserver yum.repos.d]$cd /etc/yum.repos.d     查看文件夹内已有文件     [saas@dbserver yum.repos.d]$ dir     rhel-debuginfo.repo  rhel-debuginfo.repo.bak     在网络上获取新的CentOS的yum配置文件     [saas@dbserver yum.repos.d]$ sudo wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo     --2011-08-25 01:57:13--  http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo     Resolving docs.linuxtone.org... 119.57.20.28     Connecting to docs.linuxtone.org|119.57.20.28|:80... connected.     HTTP request sent, awaiting response... 200 OK     Length: 1426 (1.4K) [application/octet-stream]     Saving to: `CentOS-Base.repo'
    100%[======================================>] 1,426       --.-K/s   in 0s
    2011-08-25 01:57:15 (151 MB/s) - `CentOS-Base.repo' saved [1426/1426]     再次查看文件夹内文件, 发现多了一个CentOS-Base.repo。     [saas@dbserver yum.repos.d]$ dir     CentOS-Base.repo  rhel-debuginfo.repo  rhel-debuginfo.repo.bak     这个时候已经添加成功了, 而且还没有修改redhat中自带了yum的配置文件rhel-debuginfo.repo
3、测试添加的CentOS的yum     先随便找几个有必要安装的软件进行查询看装了没, 当然是假设我已经知道这些软件中有一     个或几个并没有装过, 然后我们通过新的yum进行安装。     例如我要装sysstat这个软件包, 那么我先查询确认系统中没有装     [saas@dbserver /]$ rpm -q make compat-libstdc++ sysstat     make-3.81-3.el5     package compat-libstdc++ is not installed     package sysstat is not installed     然后我在用新的yum来安装sysstat     [saas@dbserver /]$ sudo yum install sysstat     [sudo] password for saas:     Loaded plugins: rhnplugin, security     This system is not registered with RHN.     RHN support will be disabled.     addons                                                   |  951 B     00:00     addons/primary                                           |  204 B     00:00     base                                                     | 2.1 kB     00:00     base/primary_db                                          | 2.2 MB     00:08     extras                                                   | 2.1 kB     00:00     extras/primary_db                                        | 260 kB     00:01     update                                                   | 1.9 kB     00:00     update/primary_db                                        | 725 kB     00:03     Setting up Install Process     Resolving Dependencies     --> Running transaction check     ---> Package sysstat.x86_64 0:7.0.2-3.el5_5.1 set to be updated     --> Finished Dependency Resolution
    Dependencies Resolved
    ================================================================================      Package          Arch            Version                   Repository     Size     ================================================================================     Installing:      sysstat          x86_64          7.0.2-3.el5_5.1           base          174 k
    Transaction Summary     ================================================================================     Install       1 Package(s)     Upgrade       0 Package(s)
    Total download size: 174 k     Is this ok [y/N]: y     Downloading Packages:     sysstat-7.0.2-3.el5_5.1.x86_64.rpm                       | 174 kB     00:01     warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897     base/gpgkey                                              | 1.5 kB     00:00     Importing GPG key 0xE8562897 "CentOS-5 Key (CentOS 5 Official Signing Key) <centos-5-key@centos.org>" from http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5     Is this ok [y/N]: y     Running rpm_check_debug     Running Transaction Test     Finished Transaction Test     Transaction Test Succeeded     Running Transaction       Installing     : sysstat                                                  1/1
    Installed:       sysstat.x86_64 0:7.0.2-3.el5_5.1
    Complete!     这个时候sysstat已经装好了, 我们再次查询确认下:     [saas@dbserver /]$ rpm -q make compat-libstdc++ sysstat     make-3.81-3.el5     package compat-libstdc++ is not installed     sysstat-7.0.2-3.el5_5.1     至此新的yum貌似已经可以用了, 那么接下来就可以大胆的通过这种方式安装软件了。不过呢,最好     在安装完软件之后,把下载下来的安装包删去,因为它会占缓存,你懂得!     命令:sudo yum clean all 4、通过新的yum下载安装软件包     具以前专业人士编写的文档, redhat安装软件包大致需要以下相关的东东:     X11相关的库 (软件包名视操作系统而定,故不一一列出)     gcc (版本至少为2.96-124)     make (版本至少为3.79)     binutils (版本至少为2.11)     openmotif (版本至少为2.1.30)     setarch (版本至少为1.3)     compat-db (版本至少为4.0.14.5)     compat-gcc (版本至少为7.3-2.96.122)     compat-gcc-c++ (版本至少为7.3-2.96.122)     compat-libstdc++ (版本至少为7.3-2.96.122)     compat-libstdc++-devel (版本至少为7.3-2.96.122)     sysstat (版本至少为5.0.5-1)     libaio (版本至少为0.3.103-3)     libaio-devel (版本至少为0.3.103-3)     libstdc++     libstdc++-devel     下面是我装oracle的必要软件列表(仅供参考)     binutils-2.15.92.0.2-10.EL4     compat-db-4.1.25-9     control-center-2.8.0-12     gcc-3.4.3-9.EL4     gcc-c++-3.4.3-9.EL4     glibc-2.3.4-2     glibc-common-2.3.4-2     gnome-libs-1.4.1.2.90-44.1     libstdc++-3.4.3-9.EL4     libstdc++-devel-3.4.3-9.EL4     make-3.80-5     pdksh-5.2.14-30     sysstat-5.0.5-1     xscreensaver-4.18-5.rhel4.2     libaio-0.3.96     openmotif21-2.1.30-11.RHEL4.2  (Required only to install Oracle demos.  Installation of Oracle demos is not covered by this guide.)         在我综合了众位网友的经验之后,觉得大致也差不多,只是软件包名有点出路而已。     那么先看看系统中查什么包吧     检查这些软件包的命令如下:     [saas@dbserver /]$ rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-gcc-34 compat-gcc-34-c++ compat-libstdc++ compat-libstdc++-devel compat-libstdc++-296 compat-libstdc++-33 unixODBC unixODBC-devel libaio libaio-devel sysstat glibc     其中我故意的将compat-gcc compat-gcc-c++ compat-gcc-34 compat-gcc-34-c++四个包都写上     目的就是想告诉大家,以前网上说要检查compat-gcc和compat-gcc-c++,很多人发现再怎么安装,     再怎么检查都是未装上,后来安装oracle时也没出错, 其实不是他没装, 是软件包名更换了,说不     定他装上的是compat-gcc-34  compat-gcc-34-c++这两个包, 但不管怎么说这些包还是必须的,如     果说不装这些先决软件包, 那么安装oracle时很有可能就会出错。至于你信不信, 反正我是信了。     上面的检查结果如下:     compat-gcc-34-c++     gcc-4.1.2-50.el5     make-3.81-3.el5     binutils-2.17.50.0.6-14.el5     package openmotif is not installed     setarch-2.0-1.1     package util-linux-ng is not installed     package compat-db is not installed     package compat-gcc is not installed     package compat-gcc-c++ is not installed     package compat-gcc-34 is not installed     package compat-gcc-34-c++ is not installed     package compat-libstdc++ is not installed     package compat-libstdc++-devel is not installed     package unixODBC is not installed     package unixODBC-devel is not installed     compat-libstdc++-296-2.96-138     compat-libstdc++-33-3.2.3-61     compat-libstdc++-33-3.2.3-61     libaio-0.3.106-5     libaio-0.3.106-5     package libaio-devel is not installed     sysstat-7.0.2-3.el5_5.1     其中gcc-4.1.2-50.el5和sysstat-7.0.2-3.el5_5.1是我上面测试的时候装上的     那么接下来就动手装上那些oracle需要的软件包吧。。。     注:CentOS中setarch好像和util-linux-ng有某种关联, 我说不清, 但我只能确定我在CentOS拼命的     装setarch都没装上, 提示util-linux-ng这个却装上了。不过现在我在redhat中却发现setarch已经     装上了, 所以少了这个麻烦了。
5、检查安装oracle软件环境     再次查看安装oracle所需的软件环境     [saas@dbserver /]$ rpm -q gcc make binutils openmotif setarch compat-db compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-296 compat-libstdc++-33 libaio libaio-devel sysstat glibc     gcc-4.1.2-50.el5     make-3.81-3.el5     binutils-2.17.50.0.6-14.el5     openmotif-2.3.1-5.el5_6.2     setarch-2.0-1.1     compat-db-4.2.52-5.1     compat-gcc-34-3.4.6-4.1     compat-gcc-34-c++-3.4.6-4.1     package unixODBC is not installed     package unixODBC-devel is not installed     compat-libstdc++-296-2.96-138     compat-libstdc++-33-3.2.3-61     libaio-0.3.106-5     libaio-devel-0.3.106-5     sysstat-7.0.2-3.el5_5.1     glibc-2.3.4-2     glibc-common-2.3.4-2     删除更新软件时所下载的文件,这步目的是清空没用的文件,是可选的     [saas@dbserver /]$ sudo yum clean all     [sudo] password for saas:     Loaded plugins: rhnplugin, security     Cleaning up Everything     至此软件环境就准备好了     6、检查安装oracle时对操作系统的要求     先了解下我在CentOS中遇到过的问题     [oracle@localhost database]$ ./runInstaller       正在启动 Oracle Universal Installer...      正在检查安装程序要求...      检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2                        未通过 <<<<      正在退出 Oracle Universal Installer。         大致的意思就是说系统不是oracle推荐可以安装的linux版本。     那么我现在看看dbserver中redhat的系统信息     [saas@dbserver /]$ cat /etc/redhat-release     Red Hat Enterprise Linux Server release 5.5 (Tikanga)     发现也不是oracle推荐的,那么就按照我在CentOS中安装时的修改办法     1) 先备份管理linux版本的信息文件"/etc/redhat-release"     [saas@dbserver etc]$ sudo cp redhat-release redhat-release.bak     2) 修改内容     [saas@dbserver etc]$ sudo vim redhat-release     将内容由     Red Hat Enterprise Linux Server release 5.5 (Tikanga)     修改为     Red Hat Enterprise Linux Server release 4.5 (Tikanga)
7、设置安装语言     1) 切换为root用户(su - root)或者有一定root权限的用户使用sudo管理, 这里用的是具有一定权     限用户,所以后面说的以root身份登录时我直接用sudo代替了, 但一定要注意用户的切换。所以我每     次用到sudo时, 大家可以用root就行了, 然后把我的sudo去掉     2) 安装语言:export LANG=en_US.UTF-8

 

上面是后来修改的,上面有些命令前加了sudo意思也就是以root权限执行,相当于切换为root。 8、修改内核参数 1) 以root身份登录 2) 编辑文件 /etc/sysctl.conf,修改以下项目,如果没有可以自己添加。     kernel.shmall = 2097152 # 可以使用的共享内存的总量。     kernel.shmmax = 1073741824 # 最大共享内存段大小。     kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。     kernel.sem = 250 32000 100 128 #每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。     fs.file-max = 65536 # 系统中所允许的文件句柄最大数目。     net.ipv4.ip_local_port_range = 1024 65000 # 应用程序可使用的IPv4端口范围。     net.core.rmem_default = 262144 # 套接字接收缓冲区大小的缺省值     net.core.rmem_max = 262144 # 套接字接收缓冲区大小的最大值     net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值     net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值 3) 运行sysctl -p 应用以上参数,即可马上生效。 4) 修改/etc/security/limits.conf文件,在文件末尾添加以下内容:     * soft nproc 2047     * hard nproc 16384     * soft nofile 1024     * hard nofile 65536 5) 修改/etc/pam.d/login文件,并在文件末尾添加以下内容     session required pam_limits.so 6) 查看/etc/selinux/config 文件,确保SELINUX 为disabled状态     SELINUX=disabled 7)注:内核参数并非必须修改,可以根据自己实际情况而定。
9.安装Oracle必须指定拥有DBA权限的组和运行Oracle的用户 1) 以root身份登录 2) 查看用户和组     cat /etc/group     cat /etc/passwd |cut -f 1 -d 2) 创建组: groupadd oradba 3) 创建用户: useradd -g oradba oracle 4) 设置oracle用户密码: passwd oracle
10、创建oracle安装时的目标目录 1) 以root身份登录 2) 创建Oracle系统目录:mkdir /app/oracle 3) 创建Oracle服务器主目录:mkdir /app/oracle/10g 4) 将该目录的所有者设置为oracle:chown oracle /app/oracle -R 5) 编辑 /etc/profile,在后面追加以下两行     export ORACLE_BASE=/app/oracle     export ORACLE_HOME=/app/oracle/10g     export ORACLE_SID=LHSID 6) 注: 安装Oracle的目标目录可以任意指定, 但是安装和运行Oracle的用户必须     有完全修改该目录的权限
11、编辑安装需要的应答文件 1) 以root身份登录 2) 静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。     在Oracle安装目录的response子目录里有enterprise.rsp、standard.rsp     和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。 3) 以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。     ORACLE_HOME Oracle服务器的主目录位置, 必须是绝对路径, 这里我     设置为/app/oracle/10g     ORACLE_HOME_NAME Oracle服务器的名称, 必须以字母开头, 这里我     设置为ALINHOME     COMPONENT_LANGUAGES Oracle服务器支持的语言, 默认只有英语,可以添     加多个语言,这里默认不修改     s_nameForDBAGrp 用于Oracle系统管理的linux用户组名,该组的用户     拥有管理Oracle服务器的权限,这里我设置为 oradba     s_nameForOPERGrp 用于Oracle数据库常规操作的linux用户组名, 该组的     用户拥有常规操作Oracle数据库的权限,这里我设置为oracle     n_configurationOption 安装类型(1为在安装后创建数据库, 2为安装后     创建一个自动存储管理实例, 3为只安装服务器软件),这里我选择3。     其它项目用默认值即可,也可以根据自己的须要进行修改 4) 注:如果Oracle从光盘安装,必须先将应答文件复制到硬盘上,才能修改
12、开始安装 1) 用oracle用户登录,然后在Oracle安装目录里执行     ./runInstaller -ignoreSysPrereqs -silent -responseFile <应答文件的绝对路径> 2) 接下来就是等待安装结束了。     各安装参数的含义如下     ignoreSysPrereqs     让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。     silent 让安装程序以静默模式运行。     responseFile 指定一个应答文件     在这里我输入:./runInstaller -ignoreSysPrereqs -silent -responseFile /app/soft/database/response/enterprise.rsp 当前目录为安装目录         系统反应为:     Starting Oracle Universal Installer...     Checking installer requirements...
13、系统初始化 1) 在安装完成后读信息发现:     WARNING:A new inventory has been created in this session. However, it has not yet been registered as the central inventory of this system.     To register the new inventory please run the script '/app/oracle/oraInventory/orainstRoot.sh' with root privileges.     If you do not register the inventory, you may not be able to update or patch the products you installed.         The following configuration scripts     /app/oracle/10g/root.sh     need to be executed as root for configuring the system. If you skip the execution of the configuration tools, the configuration will not be complete and the product wont function properly. In order to get the product to function properly, you will be required to execute the scripts and the configuration tools after exiting the OUI. 2) 以root用户登录 3) 运行$ORACLE_HOME/root.sh,进行系统初始化     一路按回车用默认值即可     系统反应:     /app/oracle/10g/root.sh     Running Oracle10 root.sh script...         The following environment variables are set as:         ORACLE_OWNER= oracle         ORACLE_HOME=  /app/oracle/10g         Creating /etc/oratab file...     Entries will be added to the /etc/oratab file as needed by8.Oracle系统初始化     Database Configuration Assistant when a database is created     Finished running generic part of root.sh script.     Now product-specific root actions will be performed.
14、安装网络监听器 1) 以oracle登陆 2) 没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网     络监听器,也只能使用静默模式。 3) 编辑Oracle安装目录里response子目录下的应答文件 netca.rsp, 修改以下项目:     INSTALL_TYPE=""custom"" 安装的类型,这里我使用默认值     LISTENER_NUMBER=1 监听器数量,这里我使用默认值     LISTENER_NAMES={"LISTENER"} 监听器的名称列表,这里我使用默认值     LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表,这里我使用默认值     LISTENER_START=""LISTENER"" 监听器启动的名称,这里我使用默认值 4) 然后运行     $ORACLE_HOME/bin/netca /silent /responseFile <应答文件的绝对路径>     这里我输入的命令为:$ORACLE_HOME/bin/netca /silent /responseFile /app/soft/database/response/enterprise.rsp
15、修改dbstart 1) 以oracle身份登录 2) 打开 $ORACLE_HOME/bin/dbstart,将     ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle     改为     ORACLE_HOME_LISTNER=$ORACLE_HOME     否则网络监听器可能无法自动启动。
16、安装数据库实例 1) 以root身份登录    2) 编辑Oracle安装目录里response子目录下的应答文件 dbca.rsp,修改以下项目:     GDBNAME 数据库全局名称,这里我设置为:GDBNAME = "LHSYSTEM"     SID 数据库的SID,这个比较重要,我第一次安装时就是因为这个问题无法使用,这里我修改为:SID = "LHSYSTEMSID"     SYSPASSWORD SYS用户的初始密码,我设置为manager     SYSTEMPASSWORD SYSTEM用户的初始密码,我设置为manager     CHARACTERSET 数据库字符集(中文为 ZHS16GBK),当然得设置成中文了     NATIONALCHARACTERSET 数据库国家字符集,使用默认值 3)然后登陆oracle运行     $ORACLE_HOME/bin/dbca -silent -responseFile <应答文件的绝对路径> -cloneTemplate     这里我输入的命令为:$ORACLE_HOME/bin/dbca -silent -responseFile /usr/local/oracle10G/response/dbca.rsp -cloneTemplate 4) 系统反应:     [oracle@alin ~]$  $ORACLE_HOME/bin/dbca -silent -responseFile /usr/local/oracle10G/response/dbca.rsp -cloneTemplate     Copying database files     1% complete     3% complete     11% complete     18% complete     26% complete     33% complete     37% complete     Creating and starting Oracle instance     40% complete     45% complete     50% complete     55% complete     56% complete     60% complete     62% complete     Completing Database Creation     66% complete     70% complete     73% complete     85% complete     96% complete     100% complete     Look at the log file "/app/oracle/10g/cfgtoollogs/dbca/JXSYSTEM/JXSYSTEM.log" for further details.     17、数据库创建成功后须要注册一些信息 1) 以oracle用户登录 2) 输入显示以下信息     [oracle@alin ~]$ $ORACLE_BASE/oraInventory/orainstRoot.sh     chmod: changing permissions of `/etc': Operation not permitted     cp: cannot create regular file `/etc/oraInst.loc': Permission denied     Changing permissions of /app/oracle/oraInventory to 770.     Changing groupname of /app/oracle/oraInventory to oradba.     The execution of the script is complete 3) 改为root用户输入后        $ORACLE_BASE/oraInventory/orainstRoot.sh     系统反应:     Changing permissions of /app/oracle/oraInventory to 770.     Changing groupname of /app/oracle/oraInventory to oradba.     The execution of the script is complete 4) 然后编辑 /etc/oratab     将<Oracle的SID>:<Oracle的主目录>:N     修改为<Oracle的SID>:<Oracle的主目录>:Y     使数据库实例能够自动启动。
18、让Oracle运行为服务 1) 以root身份登录 2) 创建文件 /etc/init.d/oracle,输入下列内容     #!/bin/sh     #     export ORACLE_HOME=/app/oracle/10g #----<Oracle服务器主目录的绝对路径>     export ORACLE_HOME_LISTNER=$ORACLE_HOME     export ORACLE=oracle     . /etc/init.d/functions     export PATH=${PATH}:$ORACLE_HOME/bin     start()     {         daemon --user $ORACLE $ORACLE_HOME/bin/dbstart         daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl start"     }     stop()     {         daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl stop"         daemon --user $ORACLE $ORACLE_HOME/bin/dbshut     }     case $1 in     'start')         start         RETVAL=$?         ;;     'stop')         stop         RETVAL=$?         ;;     'restart')         stop         start         RETVAL=$?         ;;     *)         echo "usage: $0 {start|stop|restart}"         exit         ;;     esac     #     exit 3) 然后将这个文件赋予可执行的权限,运行     chmod a+x /etc/init.d/oracle 4) 让Oracle的服务在Linux启动时自动运行     ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle     ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle     这样就可以用service来启动和停止Oracle了

 

19、卸载oracle     现在Oracle 10g的安装已经完成,在任何一台电脑上装个Oracle客户端就可以对它进行管理了。     如果要卸载Oracle,只须运行     $./runInstaller -silent -deinstall -removeallfiles -removeAllPatches     "REMOVE_HOMES={$ORACLE_HOME}" -responseFile <安装时使用的应答文件>

posted @ 2013-03-18 10:04  皮皮机器猫  阅读(352)  评论(0编辑  收藏  举报