LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 空心菜

Installing Oracle 9i on RedHat Linux 7., 8.0, 9 and on Red Hat Advanced Server

[复制链接]
发表于 2003-12-26 14:44:05 | 显示全部楼层
ORA-27123:无法挂接共享内存段.

我通过执行下面的命令来临时增加内核的 shmmax设置:
$ su - root
# cat /proc/sys/kernel/shmmax
33554432
# echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
# cat /proc/sys/kernel/shmmax
1073741824

强烈建议为Oracle增加永久的shnmax设置.要得到更多的信息,请看Oracle安装错误.

要得到更多的关于优化linux上的Oracle数据库共享内存设置,请看设置共享内存.这一参数所有的Red Hat linux版本都接受.但是注意除了shnmax参数之外,这些参数在安装Oracle到linux上的时候并不需要改变.只是你或许接着想调整所有的共享内存设置来为Oracle优化服务器.

/tmp Space

Oracle Universal Installer安装程序需要最多400MB的空余空间在/tmp目录.如果你没有足够的空间在/tmp目录下,你可以临时创建一个tmp目录在别的文件系统上.这是你怎么做的方法:
su - root
mkdir /<AnotherFilesystem>/tmp
chown root.root /<AnotherFilesystem>/tmp
chmod 1777 /<AnotherFilesystem>/tmp
export TEMP=/<AnotherFilesystem> # used by Oracle
export TMPDIR=/<AnotherFilesystem> # used by Linux programs like the
linker "ld"

当你完成了你的Oracle安装之后,关闭Oracle并且移除临时目录:
su - root
rmdir /<AnotherFilesystem>/tmp
unset TEMP
unset TMPDIR

Oracle磁盘空间

你会需要大约2.5GB给数据库软件.如果你执行典型的数据库安装但是不是一个个性化的数据库安装的话,你会需要大概3.5GB的磁盘空间.

"binutils"发布
对于Oracle9iR2 你可以跳过这一步

我对于Oracle 9i (9.2.0)没有体验到这个问题,但是在Oracle 9i (9.0.1)上有这个问题.
发表于 2003-12-26 15:06:33 | 显示全部楼层
跟随 Red Hat 7.1, 7.2, 7.3, 和RedHat 2.1 Advanced Server 发行的binutils包无法与Oracle 9i (9.0.1) Universal Installer工作.这里是对于9.0.1你必须做的选项:

我建议下面的尝试:
等待下面的Oracle安装错误:
"Error invoking target install of makefile
/opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk"
并且像Oracle安装错误中描述的修复这个问题.

我建议这个尝试是因为它派出了修改 binutils的需要.我不建议下面的尝试:

下载下面的 binutilRPM版本并且降级Oracle服务器上的 binutil:
ftp://ftp.redhat.com/pub/redhat/lin...0.18-1.i386.rpm
<ftp://ftp.redhat.com/pub/redhat/ ... .10.0.18-1.i386.rpm>


su - root
rpm -Uvh --force --nodeps binutils-2.10.0.18-1.i386.rpm

当你完成Oracle安装候,你升级你的binutilRPM包回降级之前的版本.例如:在 Red Hat 7.2服务器上我这样做:
rpm -Uvh --force --nodeps binutils-2.11.90.0.8-9.i386.rpm

这里是 Oracle官方的Oracle 9iR1 或者9iR1 iAS 在 RedHat 2.1 Advanced Server上的解决方案,我并不喜欢:
http://otn.oracle.com/software/prod...ils_readme.html
<http://otn.oracle.com/software/p ... inutils_readme.html>


开发包(RPM)
你需要下面的RPM开发包让Oracle安装程序可以编译Oracle模块,例如:
gcc
cpp
glibc-devel
compat-libstdc++
kernel-headers (for RH 7.1, 7.2, 2.1AS)
glibc-kernheaders (for RH 7.3, 8.0, 9)
binutils

如果你安装了这些RPM,你会得到一些像这个例子的错误消息:
Error in invoking target ntcontab.o of makefile
/opt/oracle/product/9.2.0/network/lib/ins_net_client.mk

套看这些开发包在你的服务器上有没有安装,在RH7.1 7.2, 和 2.1AS 上运行下面的命令:
rpm -q gcc cpp compat-libstdc++ glibc-devel kernel-headers binutils

在RH 7.3, 8.0, 和 9上运行下面的命令:
rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils

例如,大多数的这些包在你安装 RedHat 2.1 Advanced Server时可能漏了,如果你没有选择”软件开发”包的话. 对于RedHat 2.1 Advanced Server我执行下面的命令来从两个CD上安装漏了的的RPM:
su - root
rpm -ivh cpp-2.96-108.1.i386.rpm \
glibc-devel-2.2.4-26.i386.rpm \
kernel-headers-2.4.9-e.3.i386.rpm \
gcc-2.96-108.1.i386.rpm \
binutils-2.11.90.0.8-12.i386.rpm1

例如,当我安装 Red Hat 9.0时我使用缺省的包选择安装类型"Server".然后我需要安装下面的rpm:
su – root
rpm -ivh binutils-2.13.90.0.18-9.i386.rpm \
cpp-3.2.2-5.i386.rpm \
gcc-3.2.2-5.i386.rpm \
glibc-devel-2.3.2-5.i386.rpm \
glibc-kernheaders-2.4-8.10.i386.rpm

注意:在你安装 Oracle9iR2前,确定你也阅读了在Oracle安装错误一节的关于"Error in invoking target install of make file /opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk"的信息
发表于 2003-12-26 15:31:36 | 显示全部楼层
JDK
对于Oracle9iR2 你可以跳过这一步.
我成功的在没有安装JDK的系统上安装了 Oracle9iR2. Oracle现在有它自己的Java.这意味着你不需要执行下面的在老的Oracle版本上需要的步骤

下载JDK 1.3.1或者Blackdown 1.1.8_v3(我经常使用 Blackdown)
http://www.blackdown.org
http://java.sun.com

按照JDK文档,在/usr/local上安装JDK.然后创建JDK符号链接到/usr/local/java下
su - root
bzip2 -dc jdk118_v3-glibc-2.1.3.tar.bz2 | tar xf - -C /usr/local
ln -s /usr/local/jdk118_v3 /usr/local/java

创建Oracle用户帐号
su - root
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba oracle
passwd oracle

要得到更多的关于"oinstall"组帐号的信息,请看在oracle安装过过程中什么时候使用"OINSTALL"组

创建oracle目录

在这个例子里确信/opt文件系统足够大,请看Oracle磁盘空间得到更多的信息.如果/opt不是在一个分立的文件系统上的话,接着确定根文件系统”/”有足够的空间.
su - root
mkdir /opt/oracle
mkdir /opt/oracle/product
mkdir /opt/oracle/product/9.2.0
chown -R oracle.oinstall /opt/oracle

mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle

设置oracle环境

开始runInstaller 前设置下面的oracle环境变量值.作为oracle用户执行下面的命令:


#!!!设置下面的环境变量值仅仅在Red Hat 9 上!!!

#使用”带浮点堆栈的linux线程实现来代替 NPTL
export LD_ASSUME_KERNEL=2.4.1

#oracle环境
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=test
export ORACLE_TERM=xterm

#如果 sqlnet.ora, tnsnames.ora之类的文件不在$ORACLE_HOME/network/admin上的话设置 export TNS_ADMIN= Set

export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

#设置shell搜索路径
export PATH=$PATHORACLE_HOME/bin

我成功的安装了 Oracle9iR2没有设置下面的 CLASSPATH环境变量值
# CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlibORACLE_HOME/rdbms/jlib
# CLASSPATH=$CLASSPATHORACLE_HOME/network/jlib
# export CLASSPATH

你可以把这些环境设置放在~oracle/.bash_profile的文件尾如果你使用bash的话.这样下一次你用”oracle”登陆的时候,或者当你通过执行"su – oracle"转换为”oracle”用户时不需要设置环境变量

开启runInstaller

在继续前,确定你设置了oracle环境变量值,请看上文.
发表于 2003-12-27 11:32:36 | 显示全部楼层
Oracle不再支持字符模式安装程序.这样,为了直接在你登陆的机器上的一个控制台上执行 runInstaller(在这个例子里Oracle运行所在的node节点名叫做"oracleserver"),你需要设置显示环境变量.在你做那件事之前,确定你也允许在"oracleserver"上的 runInstaller在你的linux桌面机器上显示X信息(在这个例子里,你运行像KDE或者GNOME之类X windows的 Pc名叫做"yourdesktop"),因为在远程机器上运行的程序无法显示信息到你的屏幕除非你给他们权力这样做.注意到X显示重链接机理对NT桌面机器不支持除非你使用Exceed.

在你运行runInstaller前,执行像'xterm'之类的软件看一下你的X设置是不是正常工作!如果你安装Oracle在你的桌面PC上使用远程节点模式的话,你可以跳过1和3步.

第一步:允许"oracleserver"给你的桌面PC"yourdesktop"显示X信息:
yourdesktop:user$ xhost +oracleserver

第二步:打开一个新的窗口,作为根用户登陆到Oracle服务器"oracleserver".这个窗口会用来加载和卸载Oracle CD.
oracleserver su - root
oracleserver:root# mount /mnt/cdrom

第三步:从你的运行 runInstaller 的oracle服务器"oracleserver"执行下面的命令:
oracleserver su - oracle
oracleserverracle$ export DISPLAY=yourdesktop:0.0
Step 4: Now execute runInstaller as "oracle". Do not cd to /mnt/cdrom !!
oracleserverracle$ /mnt/cdrom/runInstaller


运行Oracle安装

记住在Oracle的安装中你会得到一个或者更多的错误!请看Oracle安装错误得到更多的信息.

-你想把哪个目录作为基本目录(软件清单位置):
/opt/oracle/oraInventory

-UNIX组名(升级Oracle软件的许可)
oinstall

你也可以使用处于安全原因我并不推荐的用户"dba".要得到更多关于"oinstall"组权限的信息,请看安装Oracle时何时使用"OINSTALL"组

-Oracle根目录的路径名:
/opt/oracle/product/9.2.0
等等

开始和关闭Oracle 9i 数据库
发表于 2003-12-30 07:49:57 | 显示全部楼层
sqlplus:
svrmgrl不再被支持了.你现在可以使用 sqlplus做任何事.例如,要启动数据库,运行下面的命令:

oracle$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup

斜线把你连到属于SYS的模式.这样在这个例子里你会被连接到由有SYSDBA特权的SYS拥有的模式.SYSDBA会给你以下的特权:
- sysoper privileges WITH ADMIN OPTION
- create database
- recover database until

$ORACLE_HOME/bin/dbstart and $ORACLE_HOME/bin/dbshut

你也可以使用$ORACLE_HOME/bin/dbstart启动数据库,$ORACLE_HOME/bin/dbshut关闭数据库.你可以把$ORACLE_HOME/bin/dbstart 放到 etc/rc.d/rc.local 启动脚本在系统启动时自动启动服务.为了让$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut有效,你需要在/etc/oratab里吧第三个域从”N”改为”Y”.
例如,对于Oracle SID”test”我改变/etc/oratab由
test:/opt/oracle/product/9.2.0:N
变为:
test:/opt/oracle/product/9.2.0:Y
对于9.2.0,我也需要为我的SID”test”从opt/oracle/admin/test/pfile 复制初始化文件为$ORACLE_HOME/dbs来使得dbstart和dbshut正常工作:
cp /opt/oracle/admin/test/pfile/inittest.ora.642002224936
$ORACLE_HOME/dbs/inittest.ora

但是首先确定你的初始化文件是否已经存在$ORACLE_HOME/dbs中!
如果你想适当的集成Oracle 9i到 Red Hat Linux 7 SysV初始化进程中,检查 http://www.gurulabs.com/downloads.html"Oracle9i RHL Run Package"是基于一个由SuSe提供的GPLd RPM的,但是已经被大幅度修改来无缝集成进Red Hat Linux.

Oracle安装问题,技巧与提示

这些问题中的一些仅仅适用于9.0.1!不要cd到/mnt/cdrom运行./runInstaller!如果你这样做,安装会失败因为你无法换CD.

如果你忘记了设置 DISPLAY环境变量(例如 Export DISPLAY=oracleserver:0.0),或者你忘记给远程控制台-你的Oracle服务器-权力在你的桌面PC(例如xhost +oracleserver)上显示X信息,你会得到下面的错误:
Xlib: connection to ":0.0" refused by server
Xlib: Client is not authorized to connect to Server

在这种情况下,在Oracle9iR1 (9.0.1)中我经常需要杀死还在后台运行的runInstaller.如果我在9.0.1上不这样做, runInstaller不会没有任何错误信息的完全启动.你也许还想清理一下/tmpOraInstall

当 runInstaller启动到配置工具("Configuration Tools"),"Oracle Net Configuration Assistant"有时会挂起.只需停止 Assistant并且重启它,或者继续安装.当余下的安装完成时,重做一次"Oracle Net Configuration Assistant".这样做对我来说常常很有效.当在Oracle 安装过程中,尤其是数据库创建过程中系统停止响应,这最有可能是因为你没有足够的RAM或者足够的交换空间.在我没有足够的交换空间的时候我看到了整个系统没有回应或者”挂起”好几分钟.如果发生这样的事情,只能等待系统再一次响应. Oracle安装在一些没有安装编译器和别的开发包的系统里也会运行make.因此确定你有这些临时的包文件已经安装:gcc, cpp, glibc-devel, compat-libstdc++, kernel-headers (对于 RH 7.1, 7.2, 2.1AS), glibc-kernheaders (对于 RH 7.3, 8.0, 9.0), binutils.请看开发包得到更多的信息.

如果因为任何原因Oracle9i安装没有成功完成,你也许在再一次启动前想清理下面的文件和目录:
/etc/oraInst.loc /etc/oratab
/tmp/<OtherOracleOwnedFiles> $ORACLE_BASE/*

别的问题:

你也许想要在Linux讨论组上查找 Oracle
发表于 2005-1-3 00:59:01 | 显示全部楼层
谢谢!!学习中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表