跳至主要内容

RedHat Linux AS3.0 下安装 ORACLE9.2.0.4

首先,准备安装需要的软件包和补丁包:
所有的补丁说明如下: p3006854_9204_LINUX.zip 在运行 runInstaller 之前打. p3119415_9204_LINUX.zip 在升级到9.2.0.4.0之后打. p2617419_210_GENERIC.zip 打3119415补丁所需要的补丁.
1.用rpm -qa│grep compat 查看系统中是否安有以下几个软件包:
compat-libstdc++-7.3-2.96.122
compat-gcc-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122 compat-gcc-c++-7.3-2.96.122 compat-db-4.0.14-5
2. rpm -qa │ grep openmotif查看下列软件包
openmotif21-2.1.30-8
3. rpm -qa │ grep setarch查看:
setarch-1.3-1

以上文件如果没有的话,在RHEL3的CD3和CD4上有相关的RPM包,使用: # rpm -i compat...i386.rpm 命令来安装相应的包.

下载如下三个Oracle9i的安装文件:  
lnx_920_disk1.cpio.gz  
lnx_920_disk2.cpio.gz  
lnx_920_disk3.cpio.gz  
在你硬盘的/opt/目录
现在建立Oracle9i  命令如下:
#mkdir /opt/Oracle9i  
将如下三个文件拷贝到/opt/Oracle9i目录下  
执行如下命令将文件解压:  
gunzip lnx_920_disk1.cpio.gz  
gunzip lnx_920_disk2.cpio.gz  
gunzip lnx_920_disk3.cpio.gz  
在硬盘的/opt/Oracle9i/的目录下将生成如下文件:  
lnx_920_disk1.cpio  
lnx_920_disk2.cpio  
lnx_920_disk3.cpio  
执行如下命令将文件解包:  
cpio -idmv < lnx_920_disk1.cpio  
cpio -idmv < lnx_920_disk2.cpio  
cpio -idmv < lnx_920_disk3.cpio  
将在硬盘的/opt/Oracle9i的目录下生成如下三个文件夹;  
Disk1  Disk2  Disk3

准备安装过程中需要的用户和用户组
在安装的过程中我们使用两个用户同时进行,其中一个是root用户,另外一个是你新建立的oracle用户。
1、打开一个终端,以root用户登录或者是:su - root
2、建立oracle 用户和密码
# groupadd oinstall (在安装oracle时UNIX Group name:oinstall)
# groupadd dba # useradd -g oinstall -G dba oracle
# passwd oracle

安装准备步骤.
1、准备文件目录:
# mkdir -p /opt/ora9/product/9.2
# mkdir /var/opt/oracle
# chown oracle.dba /var/opt/oracle
# chown -R oracle.dba /opt/ora9
注:如果提示参数太少,可以在目录属性-权限直接设置成 oracle 权限 dba
2、设置内核参数,调节信号灯及共享内存:
修改 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
sem 4个参数依次为
SEMMSL(每个用户拥有信号量最大数);
SEMMNS(系统信号量最大数);
SEMOPM(每次semopm系统调用操作数);
SEMMNI(系统辛苦量集数最大数).
Shmmax最大共享内存2GB 物理内存如果小的话可以设置成 536870912.
Shmmni 最小共享内存 4096KB.
Shmall 所有内存大小. 设置完成后用命令more /etc/sysctl.conf grep kernel.s 检查.
3、设置oracle对文件的要求:
编辑文件:/etc/security/limits.conf 加入以下语句:
oracle    soft    nofile    65536
oracle    hard    nofile   65536
oracle    soft    nproc    16384
oracle    hard    nproc    16384

4、设置系统环境: 注销系统,使环境变量生效 首先设置root用户这个终端的。
#export ORACLE_BASE=/opt/ora9
#export ORACLE_HOME=/opt/ora9/product/9.2 (Oracle被安装在这些位置) ***这个步骤用来最后打补丁时使用,注意这个终端要保持不要关掉它.***

5.设置oracle用户的环境, 新开一个终端, su - oracle ***注意一定要新开一个 *** 打开.bash_profile文件,将如下内容加入: (命令vi $HOME/.bash_profile 编辑用VI使用可查手册 I 进入edit ;w 存盘)
#oracle 9i
export DISPLAY=”192.168.1.13:0.0” (192.168.1.13本机IP,不能使用127.0.0.1)
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i (需要建立的数据库全局SID)
export ORACLE_TERM=xterm (xterm窗口模式 vt100 终端调试模式)
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN (设置语言AMERICAN英文)
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

保存后退出. 执行:source .bash_profile 查看 set more 退出登录,再次进入,使oracle的环境就已经生效.

6、解压文件,安装前打补丁,切换到root用户的控制台:(注:打补丁前执行以下语句)
#su – root #mv /usr/bin/gcc /usr/bin/gcc323
#ln –s /usr/bin/gcc296 /usr/bin/gcc
#mv /usr/bin/g++ /usr/bin/g++323
#ln –s /usr/bin/g++296 /usr/bin/g++

在RedHat Advance Server 3下安装Oracle9i不用将gcc降级,有些文档里说需要将gcc降为2.96,其实是不需要的
第四:开始正式安装
1. 打安装前的补丁 新开一个控制终端(用root用户开) p3006854_9204_LINUX.zip补丁安装:(已经将补丁解压到光盘) 用root身份运行,
#unzip p3006854_9204_LINUX.zip – d /home/ora9i
#cd /home/ora9i /3006854
#sh rhe13_pre_install.sh Applying patch... Patch successfully applied 2.
#xhost +192.168.1.13 (本地IP地址) (xhost disable访问控制,客户端可以从任何主机进行连接) 这个命令用来保证oracle用户调用X11,否则无法安装
#su - oracle 在登录终端中切换到oracle用户:
在oracle主目录里运行:#/home/ora9i/Disk1/runInstaller 安装过程中的注意事项: 1.在安装中让你输入 UNIX group name:oinstall (#groupadd oinstall) 如果提示orainstRoot.sh 权限问题,在root终端下执行: #sh ./tmp/orainstRoot.sh 然后继续
2.在安装中选择software only不要建数据库
3. 安装过程中提示/opt/ora9/product/9.2 权限问题,可另开窗口修改权限为oracle-dba 在结束的时候还会提示权限问题,另开窗口修改权限为root-root #chown oracle /opt/ora9/product/9.2 #chgrp dba /opt/ora9/product/9.2

注意的是以下几点: 第一,在部分文档里,要求oracle用户的bash_profile文件中降LD_ASSUME_KERNEL设置为2.4.19,千万不要这样设置,否则会在Rlink时会有一大堆报错
第二,安装Oracle不需要额外安装JDK,Oracle自己带
第三,如果有NLS的错误提示,可以#unset LANG命令,把语言默认成英文.

3.开始升级oracle 安装结束后,HTTPD会自动运行.在升级之前,需要将它停下来.
$ cd $ORACLE_HOME/Apache/Apache/bin $ apachectl stop ./apachectl stop: httpd stopped LISTENER也需要停下来. $ lsnrctl stop LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 07-NOV-2003 16:25:41 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521)) The command completed successfully 注意: 如果不停的话,oracle会提示不能覆盖文件.这个时候再去将服务停下来也可以,点Retry就可以了. 开始打补丁升级. 注意打补丁时使用root用户,切换到root用户控制台: 切换到root的终端。注意这个最好是原来那个保持了ORACLE_HOME, ORACLE_BASE的环境变量那个终端: 首先安装opatch. # unzip p2617419_210_GENERIC.zip –d /home/ora9i #export PATH=$PATH:/home/ora9i/OPatch (/home/ora9i/OPatch是解压缩目录) # unzip p3119415_9204_LINUX.zip Archive: p3119415_9204_LINUX.zip creating: 3119415/ inflating: 3119415/README.txt # cd 3119415 # opatch apply 如果提示HOME变量错误可执行语句: #export ORACLE_BASE=/opt/ora9 #export ORACLE_HOME=/opt/ora9/product/9.2 出现success的提示就全部安装成功. #cd /opt/ora9/product/9.2/install/utl #sh root.sh 否则可能会出现错误提示: /etc/oratab file doesn’t exist 最后切换到oracle终端: #su - oracle #dbca (如果有乱码执行:#unset LANG) 建oracle数据库,全局SID是前面定义的SID (查看安装完成后的检查和测试内容) 可能会出现错误提示: /etc/oratab file doesn’t exist 可执行下面语句: 3. 修改/opt/ora9/product/9.2/network/admin/ tnsnames.ora文件 删除(CONNECT_DATA =下面的内容, 添加(SERVICE_NAME = ora92) (ora92为前面的SID) 否则本机执行#oemapp dbastudio 连接不上数据库 数据库建立完成后挂起oracle 启动oracle监听 $lsnrctl lsnrctl>status (查状态)
lsnrctl>start

检查oracle服务是否挂起
$ps –ef grep ora

连接数据库
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup mount
检查是否连接oracle
SQL>select sysdate from dual;
Sp2-0640:Not connected
挂起
SQL>startup
如果出现错误信息:
ORA-01078:failucr in processing system parameters
LRM-00109:could not open parametet file/opt/ora9/product/9.2/dbs/initora9i.or
执行:
#cp /opt/ora9/admin/orcl/pfile/init.ora.613200412101 /opt/ora9/product/9.2/dbs/initora9.ora
安装过程错误信息和解决方法

安装补丁后出现一下错误信息:
error while loading shared libraries: /etc/libcwait.so: cannot open shared object file:
No such file or directory
Linux 系统不能正常启动提示信息:
error while loading shared libraries: /etc/libcwait.so: cannot open shared object file:
No such file or directory
Kernel panic: Attempted to kill inint!
没有正确解决此问题,重新安装Linux系统。
*************************************************************

安装oracle前执行 xhost +命令,出现提示信息:
access control disablad.clients can connect form any host.
不能正常安装oracle
xhost命令: #xhost +192.168.0.2(本地IP地址)
执行:#unset LANG 将语言默认为英文,可安装oracle,使用简体中文问题未解决。
不能正常安装oracle可尝试执行下面语句:
#su – oracle
$echo $LD_ASSUME_KERNEL
*************************************************************

oracle安装完成,打开终端,在oracle用户下:
#sqlplus
name:#system
pass:#manager
在试图启动数据库的时候 ,Oracle报告下列错误: ERROR: ORA-27101 Shared memory realm does not exist ORA-01034 ORACLE not available
基本解释
Error:ORA-27101
Text:shared memory realm does not exist
Cause:Unable to locate shared memory realm
Action:Verify that the realm is accessible
ORACLE_SID和ORACLE_HOME设置不正确

尝试命令:
查看数据库是否启动:$ps –ef grep ora
SQL>sqlplus internal
SQL>startup error:insufficient privileges


$sqlplus /nolog
SQL>connect / as sysdba error:ORA-12705:inralid or unknown NLS parameter ralue specified.
SQL>connect
name-pass: system/manager@huiheng as sysdba
error:ORA-12154:INS:could not resdve service name

SQL>startup
ORA-01078:failucr in processing system parameters
LRM-00109:could not open parametet file/opt/ora9/product/9.2/dbs/initora9i.or
执行命令:
$cp /opt/ora9/admin/orcl/pfile/init.ora /opt/ora9/product/9.2/dbs/initora9.ora

SQL>startup
ORA-00209:control file blocksize mismatch,check alert log for more info
最初安装dbca数据库没关,数据建了一半终止,数据不能吻合
错误信息.log文件存放在:/opt/ora9/admin/orcl/create
*************************************************************
# cd 3006854 # sh rhel3_pre_install.sh Applying patch... Patch successfully applied 注意:如果运行 rhel3_pre_install.sh出现下面的错误 rhel3_pre_install.sh: line 36: gcc: command not found 是因为你忘了安装gcc,同样要是出现下面的错误: # ls ls: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory # rm /etc/ld.so.preload rm: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory # 请不要退出bash,用下面的方法来修复(我开始遇到,后来没有遇到了,可能是因为我把gcc降级到了296吧) # echo "" > /etc/ld.so.preload rm /etc/ld.so.preload And start over again.

*************************************************************
在安装到 Datebase configuration Assistant 数据库小助手的第3步 Creating and starting oracle instanle 出现错误:/etc/oratab file doesn't exist
#cd /opt/ora9/product/9.2/install/utl
#sh root.sh
自动生成 oratab 文档

*************************************************************
在创建oracle数据时出现一下错误直接忽略
ORA-29807:specified operator does not exist
ORA-01430:clumn being added already exists in table

*************************************************************

export LANG=zh_CN [erpprod@oracle 9.2.0]$ pwd /home/erpprod/proddb/9.2.0 [erpprod@oracle 9.2.0]$ ll grep jdk lrwxrwxrwx 1 erpprod dba 21 7月 2 22:27 jdk -> /usr/local/j2sdk1.3.1 [erpprod@oracle 9.2.0]$ ll /usr/local/j2sdk1.3.1/jre/lib/font.propertiesfont.properties font.properties.en font.properties.ja font.properties.zh [erpprod@oracle 9.2.0]$ ll /usr/local/j2sdk1.3.1/jre/lib/font.properties* lrwxrwxrwx 1 root root 18 6月 30 10:23 /usr/local/j2sdk1.3.1/jre/lib/font.properties -> font.properties.zh -rw-r--r-- 1 1000 1000 7942 3月 21 2002 /usr/local/j2sdk1.3.1/jre/lib/font.properties.en -rw-r--r-- 1 1000 1000 11884 3月 21 2002 /usr/local/j2sdk1.3.1/jre/lib/font.properties.ja -rw-r--r-- 1 1000 1000 8054 3月 21 2002 /usr/local/j2sdk1.3.1/jre/lib/font.properties.zh



安装完成后的检查和测试

1. 打开一个终端,启动oracle agentctl代理服务
$su – oracle
$agentctl start
2. 启动oracle监听
$lsnrctl
lsnrctl>status (查状态)
lsnrctl>start
lsnrctl>exit
3. 检查oracle服务是否挂起
$ps –ef grep ora
4. 连接数据库
$sqlplus /nolog
SQL>connect / as sysdba
Error:ORA-12705:invalid or unknown NLS parameter value spectfied.
SQL>startup mount
5. 检查是否连接oracle
SQL>select sysdate from dual;
Sp2-0640:Not connected
6. 启动
SQL>startup
Error:
ORA-01078:FAILURE IN PROCESSING SYSTEM PARAMETERS
LRM-00109:could not open parameter file /opt/ora9/product/9.2/dbs/initora9i.or

开机自动启服务
打开root终端
#vi /etc/oratab
将ora9i:/home/oracle/product/:N (N该成Y)
#vi /ect/rc.local 加入
su – oracle –c “lsnrctl start”
su – oracle –c “startora”
在/bin目录下建startora文档,内容如下
sqlplus /nolog << EOF
connect sys/huiheng as sysdba
startup
EOF
****stopora****
sqlplus /nolog << EOF
connect sys/huiheng as sysdba
shutdown immediate
EOF

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.