Redhat6 安装 Oracle 10g 数据库

本文提供Oracle 10g数据库在Linux环境下的安装步骤、系统配置调整建议以及常见问题解决方案,包括环境准备、安装过程、补丁升级等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



0、安装前的设定


0.1 软件安装在什么位置?安装在 /home/oracle/database 下面
0.2 数据放在什么位置?数据放在/home/oracle/database/MTDBdata
0.3 数据库名称叫什么? 数据名 mtyxdb
0.4 需要的字符集是什么?ZHS16GBK
0.5 是否归档,归档到什么位置?  /home/oracle/database/MTArchiveData




1、安装环境测试(操作系统在安装时要把全部的开发环境安装上)


rpm -q binutils control-center gcc gcc-c++ glibc glibc-common  libstdc++ libstdc++-devel make libaio


PS:如果没有装好,也可以使用ISO文件作为安装源,重新安装。


2、vim /etc/sysconfig/i18n


LANG="en_US.UTF-8" # 不显示中文界面,避免乱码


3、 vim /etc/redhat-release


内容修改前 Red Hat Enterprise Linux Server release 6.3 (Santiago)
内容修改后 Red Hat Enterprise Linux AS release 4 (Nahant Update 4)


4、vim /etc/sysctl.conf 文件最后添加如下内容


# for Oracle
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


5、vim /etc/security/limits.conf 文件最后添加如下内容


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


PS:执行这个命令 #sysctl -p 使得上述修改参数生效


6、vim /etc/pam.d/login 文件最后添加如下内容


session    required     /lib/security/pam_limits.so
session    required     pam_limts.so


7、创建用户和组
      oracle 安装需要两个 unix 用户组和一个运行时的 oracle 用户。


#groupadd oinstall
#groupadd dba

#useradd -m -g oinstall -G dba -p passwd -d /home/oracle -s /bin/bash oracle

{-g表示用户所属组、-G表示用户所属附加组、-d表示用户主目录、-s表示用户默认shell类型、oracle表示用户名,-m参数表示自动创建此用户的主目录,为避免麻烦,请勿手动创建此目录、-p 表示用户密码}



PS:用户密码 passwd 一般设置为 oracle


8、进入 /home/oracle 目录,vim .bash_profile,在文件开头添加如下内容


export ORACLE_BASE=/home/oracle/database # 数据库安装路径
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=mtyxdb # 数据库SID
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
#export NLS_LANG=american
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
export umask=022
export LANG=en_US
export NLS_LANG=American_america.ZHS16GBK
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
if [ $USER = "oracle" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
     else
     ulimit -u 16384 -n 65536
  fi
fi


9、vim /etc/selinux/config 设置 SELINUX 为不可用


SELINUX=disabled


10、vim /etc/hosts 添加本机IP与hostname对应条目


11、在 root 下执行 xhost + 命令,以显示swing图形界面


12、开始安装 


以oracle用户身份执行安装程序,./runInstaller


ps:这个错误 /home/oracle/database/product/10.2.0/db_1/sysman/lib/snmccolm.o: could not read symbols: File in wrong format
可以忽略,看起来是10.2.0.1安装介质的BUG,那个snmccolm.o是IA32架构的。可以忽略,安装完成后打10.2.0.3补丁即可解决。




13、安装补丁(和安装新系统一样的过程)


以oracle用户身份执行patch中Disk1中的安装程序,./runInstaller


14、关闭和开启Oracle数据库


关闭
#su - oracle
$lsnrctl stop
$sqlplus '/as sysdba'
sql>shutdown immediate


启动
#su - oracle
$lsnrctl start
$sqlplus '/as sysdba'

sql>startup


15、其他关闭和开启Oracle数据库的方法

15.1、在 Linux 系统下安装完数据库之后,会在$ORACLE_HOME/bin 下生成 dbstart 和 dbshut 脚
本,这两个脚本可以简便地实现启动和关闭数据库。
这两个脚本运行时会读取/etc/oratab 文件,在这个文件里指定了需要启动和关闭的 SID(相应 SID 那行的最后一个字符是 Y 而不是 N)
每次生成一个新的数据库实例,都要在这里作修改

15.2、 dbstart、dbshut 中的 listener_home的路径要修改为ORACLE_HOME

15.3、这样就可以简单的使用 dbstart、dbshut 关闭和开启Oracle数据库

PS:======================================================================
# Added for Oracle  10g  RAC                  --  64bit,  64G内存的 server
kernel.shmall = 16777216
kernel.shmmax = 68719476736     
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


# Added by tonywang for Oracle 10g RAC           --  64bit,   16G内存的server  
kernel.shmall = 4194304
kernel.shmmax = 10737418240
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

 
# Added by DBA for Oracle DB                    --  32bit,   2~4 G内存的server
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

PS:======================================================================

/etc/security/limits.conf解释及应用  

limits.conf的格式如下:

username|@groupname type resource limit

username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。

resource:
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
nofile - 打开文件的最大数目
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户允许登录的最大数目

要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so

PS:======================================================================

/etc/pam.d/login 

在这个文件的后面加入 :     session    required   /lib64/security/pam_limits.so  

或着  session    required      pam_limits.so   

就可以防止本地登入一直回复到login状态的情况 。

PS:======================================================================

安装数据库时出现 ORA-27125: unable to create shared memory segment

帮客户解决一个Linux上数据库无法启动的问题。
客户的Linux 5.6 x86-64环境,安装数据库后,启动数据库报错:ORA-27125。Oracle文档上关于ORA-27125错误的描述为:

查询了一下,发现问题和linux上的hugetbl有关。

解决方法也很简单,首先检查oracle用户的组信息:

[oracle@yans1 ~]$ id oracle
uid=500(oracle) gid=502(oinstall) groups=502(oinstall),501(dba)
[oracle@yans1 ~]$ more /proc/sys/vm/hugetlb_shm_group
0

下面用root执行下面的命令,将dba组添加到系统内核中:

# echo 501 > /proc/sys/vm/hugetlb_shm_group

然后启动数据库,问题消失。 

PS:==========================================================

安装 patch升级oracle 10.2.0.1 10.2.0.4后,就遇到了 启动数据库发生这样的情况
ORA-01092: ORACLE instance terminated. Disconnection forced

解决方法如下:

原因是由于在完成升级版本后,数据字典的内容被修改了,需要使用catalog.sql和catproc.sql这两个脚本再运行一下把数据字典再更新一下。于是使用命令"startup upgrade"启动数据库,再运行catupgrd.sql这个脚本,即运行"@$ORACLE_HOME/rdbms/admin/catupgrd.sql",这条语句会执行比较久的时间,执行了20分钟左右。执行完成以后,关闭数据库,再使用 startup正常启动数据库,再运行一下"@$ORACLE_HOME/rdbms/admin/utlrp.sql"这个脚本来重新编译一下一些无效的对象。OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值