Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92177881
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-08 22:52:55

作者: 瞌睡虫出自:

近日,在笔记本上安装了一个Red Hat Linux,安装过程很顺利,随后打算安装一个oracle数据库,原本以为很简单,谁知一装才知道这个安装里面学问大了,到处在网上找帖子,查问题,足足花了两天时间才完全装好,特将相关的帖子收集整理一下,在加上自己安装中的一些体会,编辑成文以备后查。

安装环境:
OS:Red Hat Linux release 9 (Shrike)
数据库:oracle10.2.0.1 for linux32

1、首先,必要的硬件信息检查(摘抄网上资料):

检查内容 最小值 检查命令参考
物理内存 512M # grep MemTotal /proc/meminfo
交换空间 max{1.0 GB,2倍内存} # grep SwapTotal /proc/meminfo
/tmp 空间 400 MB # df -k /tmp
软件所需空间 2.5 GB # df -k
数据库文件 1.2 GB # df -k

注:个人理解,除了最后两项为安装中硬性要求外,其他几项均可以适当放宽限制,并不影响安装进程;

2、建用户组、用户脚本

使用root用户登录
# groupadd oracle
# useradd -g oracle -d /oracle -m oracle
# passwd oracle

注:值得一提的是最后一条命令,通过useradd命令所建立的用户,没有指定密码(即便运行useradd时使用了-p参数),无法进行登录,故需用passwd进行指定密码,这 是经历多次失败尝试后的经验;

3.设置oracle环境变量

$ vi $ORACLE_BASE/.bash_profile

---在原有内容后面添加如下设置

export DISPALY="localhost:0.0" #此句尤为重要,直接影响后续安装进程,其中localhost可以使用IP或主机名替代
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle
export ORACLE_SID=orclx #此参数应根据安装节点进行修改
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:$ORACLE_HOME/bin:/sbin
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" #此句设置oracle字符集 ,影响到安装后字符显示问题
umask 022

4.修改核心参数(编辑/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
编辑完之后,保存,执行 # /sbin/sysctl -p 命令操作来使我们所做的变更生效。
注意:核心参数配置可能需要根据实际环境进行适当的变动.

5.检查linux 的安装组件(在安装oracle期间,需要使用到GCC组件包,故须检查是否安装完整)
直接在linux图形界面中,选择主菜单->系统设置->添加/删除应用程序,选中"开发"部分的"开发工具",然后默认"更新"即可。
注:安装这部分程序需用到linux9的第二张光盘(这部分程序是linux9默认安装未包含的)。
如果没有安装这部分,在后面的oracle安装过程中,将出现一系列的调用错误。
另外,还需检查libaio的安装:在linux9的第二张光盘中有
ls -l libaio*.rpm
rpm - i libaio*.rpm

6.接下来,开始安装oracle

运行runInstaller,错误提示如下:
Checking requirements...
Checking operating system version: must be redhat-2.1,redhat-3,SuSE-9,SuSE-8,UnitedLinux-1.0
Failed<<<<

这是因为oracle10g所认可的linux发行套件没有包括linux9,所以需要降低linux核心
流行的解决方法有三种:
方法一:
在/etc下创建UnitedLinux-release文件
#cat > /etc/UnitedLinux-release << EOF
>UnitedLinux 1.0 (i586)
>VERSION=1.0
>EOF
然后就可以正常启动安装程序。注意不要使用vi编辑该文件,否则可能会引起ORA-12547: TNS: lost contact的错误。

方法二:
运行runInstaller -ignoreSysPrereqs,这样会跳过检查(呵呵,相信百分之99.9999999的人都会选择这种方法)

方法三:
修改Oracle 的/.../disk1/install/linux/oraparam.ini这个参数文件

7.如果接下来,安装遇到如下错误:
Xlib: connection to "localhost:0.0" refused by server
Xlib: No protocol specified

呵呵,你的oracle用户没有X window权限,解决办法:
使用root用户登录(必要时重新启动os),然后输入:
# xhost +localhost

如果x window设置成功,可以用oracle用户登录后,输入: $ xclock
是不是看到一个小闹钟,呵呵,恭喜你又解决一个问题!

8.当程序进行到,创建数据库时,建议先不要创建,等安装完系统后,通过dbca命令来创建,不要问我为什么,反正这样子会顺利不少。
否则下面这些问题,不幸的话,可能你都会遇到:

数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ORA-00371: not enougsh shared pool memory, should be atleast 52132659 bytes.

解决方法:
这个错误并非是内核参数设置的问题,也和系统的物理内存大小无关。编辑$ORACLE_HOME/dbs/init$GID.ora文件:
shared_pool_size = 52132659

数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ora-01102: cannot mount database in EXCLUSIVE mode

解决方法:
完全关闭数据库,更改$ORACLE_HOME/dbs/init.ora文件里的db_name为建库时定义的“全局数据库名”,然后再重新启动数据库

数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ora-00205:error in identifying conrolfile, check alert log for more info

解决方法:
SQL>show parameter control_files
SQL>CREATE CONTROLFILE
将$ORACLE_BASE/admin/$GID/pfile/init$SID.ora***************拷贝到$ORACLE_HOME/dbs下,命名为init$SID.ora,即可解决。

数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ORA-01990:error opening password file '$ORACLE_NAME/dbs/orapw'
ORA-27037:unable to obtain file status
Linux Error:2: No such file or directory
Additional information: 3

解决方法:
将$ORACLE_HOME/dbs下的orapw$db_name文件拷贝生成一个orapw文件。

建库的过程中或者连接数据库的时候提示:
ORA-12547: TNS: lost contact
引起该错误的环境比较复杂,原因可能是:
1、用vi编辑的/etc/UnitedLinux-release文件
2、内核参数设置不正确
3、察看一下listener是否正常启动: lsnrct1 status
4、机器负载过大

9、系统安装完毕,在oracle用户下,打开终端,运行dbca命令,后有一个向导出现,你可以按照提示创建数据库,至此安装大功告成!
阅读(201) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~