在 centos 5.2 系统安装 Oracle 10g 笔记和相关问题解决

 

1.  操作系统

1.1  CentOS 5.2 及以上版本

1.2  Redhat Advance Sever 4 及以上版本

2.  Oracle 10g 安装准备工作

2.1  root 登录 linux 系统

su -

2.2  step1: 检查 host 文件

vi /etc/hosts

 

文件中必须包含 a fully qualified name for the server 

一般格式:

<IP-address><fully-qualified-machine-name><machine-name>  

建议必须含有 localhost ,这对启动 Oracle 监听等服务很重要

 

2.3  step2: 设置内核参数

vi /etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 2147483648

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

 

退出 vi ,让设置立即生效

/sbin/sysctl –p

 

说明:

?  shmmax 定义单个进程共享内存段的最大值,它取值范围是 [0,4294967295],

单位为 byte

建议: kernel.shmmax = 2147483648 SGA 的不要超过这个数字

对于 32bit linux 来说,不管实际的内存有多大, shmmax 的最大值不应该

超过 4294967295  

当然这个参数与 linux 内核和版本有关系

有兴趣的可以查询相关网络资料  

 

2.4  step3 ,检查几个文件

系统资源限制配置文件 /etc/security/limits.conf 文件中加入:

vi /etc/security/limits.conf

* soft nproc 2047

* hard nproc 16384

* soft nofile 1024

* hard nofile 65536 

要使 limits.conf 文件配置生效, 必须要确保 pam_limits.so 文件被加入到启

动文件中。即文件中加入下列行,如果里面没有的话

vi /etc/pam.d/login

session required /lib/security/pam_limits.so 

2.5  step4: 禁用 selinux

vi /etc/selinux/config

SELINUX=disabled

备注:

出于解决安全问题, NSA   National Security Agency 的缩写 . 它是五角大楼下属的 15 个国防局之

一)在 Linux 社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能

访问那些在他的任务中所需要文件。这种体系叫做   Security-Enhanced Linux 或简化为 SELinux  

SELinux 提供了比传统的 UNIX 权限更好的访问控制

 

 

2.6  Step5: 检查必要的 rpm

rpm -q setarch

rpm -q compat-libstdc++               #注意检查时会报包没有找到,那是因为版本原因,可用rpm -qa | grep compat-libstdc++

rpm -q make

rpm -q glibc

rpm -q openmotif

rpm -q compat-db

rpm -q libaio

rpm -q gcc

rpm -q compat-gcc-32

rpm -q compat-gcc-32-c++

 

说明:

留意 rpm q 的查询结果

没有目前系统没有安装相关 rpm ,就用 rpm  ivh      ***.rpm 安装

相关 rpm 包一般在 linux 安装光碟中都有   

 

包名

是否安装

说明

make-3.79.1

1

 

gcc-3.2.3-34

1

 

glibc-2.3.2-95.20

1

 

compat-db-4.0.14-5

0

安装盘中有

compat-gcc-7.3-2.96.128

1

 

compat-gcc-c++-7.3-2.96.128

1

 

compat-libstdc++-7.3-2.96.128

1

 

setarch-1.3-1

1

 

compat-libstdc++-devel-7.3-2.96.128

0

包中没找到
1.
下载了一个包,但需要:compat-libstdc++-7.3-2.96.126.i386.rpm 这个包,就下载吧
2.
安装过程 rpm -ivh compat-libstdc++-7.3-2.96.126.i386.rpm --replacefiles (把以前的版本替换掉)
3.rpm -ivh compat-libstdc++-devel-7.3-2.96.126.i386.rpm

openmotif21-2.1.30-8

0

1. 要先装libXp-1.0.0-8.1.el5.i386.rpm
2.
再装此包

 

 

2.7  Step6: 创建用户和组

用以下命令创建下列 Oracle 运行和安装需要的组和用户

 

groupadd oinstall

groupadd dba

groupadd oper

useradd -g oinstall -G dba oracle

passwd oracle

 

说明:

建议为 Orcle 用户设置一个复杂的密码

 

2.8  Step7: 创建安装 oracle 的目录

创建 oracle 安装目录

mkdir -p /oracle/product/10.2.0/db_1

 

修改对应目录的权属关系

chown -R oracle.oinstall /oracle

2.9  Step8: 为用户打开访问 X 权限

root 登录,执行下列指令:

su-

xhost +

说明:

?  xhost +  是使所有用户都能访问 Xserver.

 

2.10 Step9: 修改 Oracle 用户的参数

把下列行加在 /home/oracle/.bash_profile 文件末尾 , 注意把其中

ORACLE_SID 换成自己的实例名(如 orcl ):

vi /home/oracle/.bash_profile

# Oracle Settings

 

ORACLE_BASE=/oracle;

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

ORACLE_SID=orcl

PATH=/usr/sbin:$PATH

PATH=$ORACLE_HOME/bin:$PATH;

 

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

         ulimit -p 16384     

         ulimit -n 65536

    else

         ulimit -u 16384 -n 65536

    fi

fi

 

 

说明:

留意文本中红色部分关键信息

结合自己的应用设置 SID

2.11  Step10 :启动安装

oracle 用户登录。

su – oracle

如果用的是 X 模式,要把 DISPLAY 设置:

DISPLAY=<machine-name>:0.0; export DISPLAY

 

Oracle 安装文件 Disk1 目录下用如下命令开始安装:

./runInstaller

 

2.11 因为 oracle 10g 不支持 centos, 所以修改 CentOS 5 的版本

#vi /etc/redhat-release
redhat-4

 

4.Oracle 登陆,并启动 startx ,以便进行图形界面安装 oracle

改安装程序目标的权限 :

chown –R oracle:oinstall database && chmod 755 database -R

1 先只安装程序

启动 xwindows (startx) ,启一个终端,到安装目录下运行, runInstall ……

2 配置监听程序 netca

3 建实例: dbca

4. 启动监听 lsnrctl start

退出到终端下, oracle 登陆

lsnrctl start

-- lsnrctl 是启动监听程序的;

 

5. 启动 DB

Oracle 用户登陆,

sqlplus ‘/ as sysdba’

startup immediate  关: shutdown immediate

exit

 

安装 rlwrap sqlplus 实现回退、上下翻命令等 .....

由于 sqlplus 中回退键出现乱码,可以安装 rlwrap 进行解决( stty erase ^h 这招在 centos 5.2 上有时不起作 , 系统一样重装一次 oracle 又可以了。。。不知道为什么)

 

1. 安装: readline-5.0.tar.gz

http://ftp.gnu.org/gnu/readline/  下载)

2. 安装: rlwrap-0.37.tar.gz

  http://utopia.knoware.nl/~hlub/uck/rlwrap/

2. 运行 rlwrap sqlplus /nolog    

这时就可以实现回显了,也可以上下翻命令,回退键 ...

3. 如果运行报: error while loading shared libraries libreadline.so.6 解决如下:

                            find / -iname libreadline.so.6  -- 确保能找到此文件

                            cp /etc/ld.so.conf /etc/ld.so.conf.backup

                            vi /etc/ld.so.conf

                            ld.so.conf 最后加入 /usr/local/lib ,文件内容信息变为如下:

                                     include ld.so.conf.d/*.conf

                                     /usr/local/lib

                            ldconfig   -- 运行此命令,使配置文件起作用;

3. 把下两句写入运行 oracle 的用户 .bash_profle 文件中:

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman'

 

 

 

Oracle 开机自动启动和关闭方法:

su - oracle -c "/u02/oracle/bin/lsnrctl start" >> /var/log/oracle

 

 

1 修改启动选项

vi /etc/oratab

 

expbook:/oracle/product/10.2.0/db_1:Y

 

说明:

格式为: SID:ORACLE_HOME:Y

AUTO 域设置为 Y( 大写 ) ,只有这样, oracle  自带的 dbstart dbshut 才能够发挥作用

2 处理服务脚本:

将脚本命名为 oracle ,保存在 /etc/rc.d/init.d

改变文件属性: chmod 755 oracle

chown root.root oracle 

 

3 脚本内容

#!/bin/bash

# Oracle DataBase

#

# chkconfig: 345 99 10

# description: Oracle

#

 

#################FUNCTION#############

#

# AutoStart Oracle and listener

# AutoStop Oracle and listener

# Created by bluefox 2003-11-26

#####################################

 

 

case "$1" in

    start)

        echo "Starting Oracle Databases ... "

         echo "-------------------------------------------------" >> /var/log/oracle

        date +" %T %a %D : Starting Oracle Databasee as part of system up." >> /var/log/oracle

        echo "-------------------------------------------------" >> /var/log/oracle

        su - oracle -c "dbstart" >> /var/log/oracle

        echo "Done."

        echo "Starting Oracle Listeners ... "

        echo "-------------------------------------------------" >> /var/log/oracle

        date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle

        echo "-------------------------------------------------" >> /var/log/oracle

        su - oracle -c "lsnrctl start" >> /var/log/oracle

        echo "Done."

        echo ""

        echo "-------------------------------------------------" >> /var/log/oracle

        date +" %T %a %D : Finished." >> /var/log/oracle

        echo "-------------------------------------------------" >> /var/log/oracle

        touch /var/lock/subsys/oracle

        ;;

    stop)

        echo "Stoping Oracle Listeners ... "

        echo "-------------------------------------------------" >> /var/log/oracle

        date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle

        echo "-------------------------------------------------" >> /var/log/oracle

        su - oracle -c "lsnrctl stop" >> /var/log/oracle

        echo "Done."

        rm -f /var/lock/subsys/oracle

        echo "Stoping Oracle Databases ... "

         echo "-------------------------------------------------" >> /var/log/oracle

         date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle

        echo "-------------------------------------------------" >> /var/log/oracle

        su - oracle -c "dbshut" >>/var/log/oracle

        echo "Done."

        echo ""

        echo "-------------------------------------------------" >> /var/log/oracle

        date +" %T %a %D : Finished." >> /var/log/oracle

        echo "-------------------------------------------------" >> /var/log/oracle

        ;;

    restart)

        $0 stop

        $0 start

        ;;

    *)

        echo "Usage: oracle {start|stop|restart}"

        exit 1

        esac

 

4 保存文件 , 退出以后 , 添加并启动察看服务。

 

#chkconfig --add oracle

#chkconfig --list oracle

 

chkconfig --list oracle 的运行结果:

 

oracle     0:off   1:off   2:off   3:on    4:off   5:on    6:off

5. 附说明 chkconfig 作用

根据上面的运行结果,当相应的运行级别为 on ( 例如: 5:on) ,在对应的 /etc/rc.d/rcN.d( 例如:和 5:on 对应的是: /etc/rc.d/rc5.d) 下面会生成一个文件: S99oracle ,使用 vi S99oracle 打开该文件,可以看到该文件的内容和 /etc/rc.d/init.d/oracle 内容相同,表示配置成功,其实, S99oracle 是一个到 /etc/rc.d/init.d/oracle 的链接,我们可以使用 file 命令来查看:

 

$file /etc/rc.d/rc5.d/S99oracle

 

S99oracle:symbolic link to '../init.d/oracle

 

说明一点:

 

脚本文件中的: # chkconfig: 345 99 10

 

指出 3 4 5 级别启动这个服务, 99 是在相应的 /etc/rc.d/rcN.d(N 为前面指定的级别,这里是 345) 目录下生成的链接文件的序号 ( 启动优先级别 )S99oracle 10 为在除前面指出的级别对应的 /etc/rc.d/rcN.d(N 为除 345 之外的级别 ) 目录生成的链接文件的序号 ( 服务停止的优先级别 )K10oracle

 

重启系统,就可以在启动的过程中看到 Starting oracle ,因为我们设置的优先级为 99 ,一般是最后启动。 [OK] 以后就可以了。因为要启动 emctl ,可能有点慢,等待的时间要稍微长一点。

 

启动以后可以以 root 执行 oracle start 或者 oracle stop 来启动或停止服务。

 

注意 :

 

这样的脚本启动一般不会启动实例 , 如果想让实例也随脚本一起启动的话 , 就需要修改文件 :/etc/oratab

如果这个文件不存在 , 那么就得运行脚本文件产生它 sh /u01/app/oracle/product/10.2.0/root.sh

 

/etc/oratab 最后一行

sid:/oracle/product/10.2.0.1:N

=>

sid:/oracle/product/10.2.0.1:Y (其中 sid 为想要启动的 database

 

只要在这里设置好后 , 在配合上面的脚本 , 即可实现开机自动启动 oracle 以及实例了 .

 

Chkconfig –-add 做的工作:

/etc/rc.d/init.d/oracle 依据 # chkconfig: 345 99 10 拷贝到相应目录,并以 345 ,为启动,目标, 99 的启动时顺序, 10 的关机时关掉顺序;

 

. 由于硬盘空间不够,新加一个盘;

fdisk 分区,然后格式化分区; mkfs.ext3 /dev/sdb1 ,接下来挂载上去;

启动自动挂载硬盘, /etc/fstab 文件 ,格式为:

fs_spec     fs_file         fs_type       fs_options       fs_dump   fs_pass  

/dev/sdb1  /home/u01   ext3         defaults        1        1

fs_spec   -  该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说: IDE 设备一般描述为 /dev/hdaXN X IDE 设备通道 (a,   b,   or   c) N 代表分区号; SCSI 设备一描述为 /dev/sdaXN 。对于 NFS 情况,格式一般为 :, 例如: `knuth.aeb.nl:/' 。对于 procfs ,使用 `proc' 来定义。

 

fs_file   -  该字段描述希望的文件系统加载的目录点,对于 swap 设备,该字段为 none ;对于加载目录名包含空格的情况,用 40 来表示空格。

 

fs_type   -  定义了该设备上的文件系统,一般常见的文件类型为 ext2   (Linux 设备的常用文件类型 ) vfat(Windows 系统的 fat32 格式 ) NTFS iso9600 等。

 

fs_options   -  指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用 "defaults" 就可以满足需要。其他常见的选项包括:

 

选项含义

 

ro       以只读模式加载该文件系统

 

sync     不对该设备的写操作进行缓冲处理,这可以防止在非正常关机时情况下破坏文件系统,但是却降低了计算机速度

 

user     允许普通用户加载该文件系统

 

quota    强制在该文件系统上进行磁盘定额限制

 

noauto   不再使用 mount  - a 命令(例如系统启动时)加载该文件系统

 

fs_dump   -  该选项被 "dump" 命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为 0

 

fs_pass   -  该字段被 fsck 命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统 "/" 对应该字段的值应该为 1 ,其他文件系统应该为 2 。若该文件系统无需在启动时扫描则设置该字段为 0

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值