Redhat7.2(7.1)下oracle8.17的安装手册

80酷酷网    80kuku.com

  oracle
Redhat7.2(7.1)下oracle8.17的安装手册
 
一. 软件配置过程
1. 安装glibc 2.1包
glibc2.1版本(GNU C Library,18M)下载地址:
ftp://ftp.kernel.org/pub/software/libs/glibc/hjl/sdk/2.1/i386-glibc-2.1-linux.tar.gz
下载后都放到了/backup目录
从RedHat7.0以后的版本,安装的是glibc2.2。Oracle 8I不能使用glibc 2.2进行编译,而需要glibc2.1的SDK。
#su - root
#cd /
#tar zxvf /backup/i386-glibc-2.1-linux.tar.gz
隐藏/usr/bin 目录下的gcc,cc,ld,避免被Oracle installer使用
#cd /usr/bin
#mkdir saved
#mv gcc cc ld saved
#ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
#ln -s gcc cc
#ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld
隐藏/usr/lib目录下的libc.so,libdl.so,libm.so和libpthread.so文件,避免被Oracle installer使用
#cd ../lib
#mkdir saved
#mv libc.so libdl.so libm.so libpthread.so saved
#mv libc.a libdl.a libm.a libpthread.a saved
不要忘了安装完成后把文件恢复回来。(不恢复也可以)。

2. 创建用户和组
 以root用户进入系统
 #groupadd sysdba
#groupadd sysoper
#groupadd oinstall
#useradd oracle –d /usr/oracle –g oinstall –G sysdba,sysoper
#passwd oracle
输入oracle用户口令,输入二次。
#chmod 755 /usr/oracle
#cd /usr
#mkdir oraInventory
#chown oracle.oinstall oraInventory
 
3. 配置环境变量
以oracle用户进入系统
 编辑注册文件:
vi .bash_profile
在该文件最后添加:
DISPLAY=local:0.0
export DISPLAY
ORACLE_BASE=/usr/oraInventory
export ORACLE_BASE
ORACLE_HOME=/usr/oracle
export ORACLE_HOME
ORACLE_SID=testdb
注意:ORACLE_SID在每个工程点都使用当地的地名,再加上序号。例如,上面就是为杭州建立第一个系统使用的SID:hangzhou1。
export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
export PATH
 export LD_ASSUME_KERNEL=2.2.5
 注意:只要小于2.4即可
编辑好文件后存储,退出系统。
4. 拷贝介质:
以oracle用户进入系统,将包含Oracle V8.17的光盘放到光驱中,键入命令:
$mount /mnt/cdrom
$cp /mnt/cdrom/oracle.tar ./
注意:这里假定Oracle V8.17的文件名是oracle.tar
$tar xvf ./oracle.tar

5. 安装数据库
在XWindows以oracle用户进入系统,如果Xwindows没有启动,输入命令:$startx以启动Xwindows.
在Xwindows中开出一个终端,输入命令:
$cd Disk1
$./runInstaller
进入安装程序。
 
二、安装过程

1、runInstaller启动安装界面
有的时候runInstaller,安装界面不出来,这主要还是因为Oracle的字符集设为了简体中文,但OS是英文的,所以有时候出不来,用Java写的程序经常出现字符集的问题。此时临时销毁$NLS_LANG变量,Java会用默认的字符集,就好了。所以:

unset $NLS_LANG

也可以试试

unset $LANG
× 其实dbassist也是有时候出不来的,这样做就可以出来了,但是netasst始终出不了,不清楚为什么,不过可以自己修改lisener.ora和tnsnames.ora,所以netasst也不是必须的。

另一个可能的原因就是glibc没有替换好,我发现直到JDK1.3.1_01,才支持glibc2.2,之前的版本,包括JDK1.3.0都不支持glibc2.2,只要在glibc2.2下运行,就会出现没有任何反应,进程好像死亡了一样的毛病,Oracle安装程序用的还是JRE1.1.8,所以只要glibc用的还是2.2版的,安装窗口总不会出来的。
 
2、下面一路点击下一步,
在Unix Group Name: oinstall
提示在root用户下运行/usr/oracle/orainstRoot.sh,使用ALT-F1(或F2,F3等)进入其他终端,以root用户登入系统,运行该文件。然后使用ALT-F7返回安装界面。
在Available Products: 选择Oracle 8i Enterpise Edition 8.1.7.0.1

3. 到填写安装oracle软件的属组的时候,
Database Administaor Group: 填写sysdba
Database Operator Group: 填写sysoper
在Database Identification:
Global Database Name: TestDB就好了
SID:testdb,
在Database File Locations文件位置处:目的地址:/usr/oracle
开始拷贝文件。
然后提示用root运行/usr/oracle/root.sh,以root登录运行。

4、还是选择安装组件的列表这个界面,有个选择语言的按钮,增加“简体中文”

5、询问是否创建数据库,“是”,添上安装数据库的SID。数据库数据文件的存放目录,是“/usr/oracle“。

6、开始安装Oracle,安装程序拷贝文件。
有很多人说,拷贝文件完后,联接系统库函数的时候,出现make错误,我想这多半还是替换glibc不成功导致的吧,我安装的时候确实没有出现过这样的问题。我想按照我写的步骤来,应该不会出现这样的问题的。

7、自动启动netasst,配置监聽器,一般如果为了省事,选典型配置就可以了,只不过典型配置打开了一个2481端口,是JServer用的,如果不用JServer的话,也可以不要它,现在可以不用管它,回头再改listener.ora好了。

8、自动启动dbassist,安装数据库,按照提示做就是了,根据自己的情况可以适当的调整安装数据库时的参数,最后开始创建数据库,此时也可以选择先保存创建的脚本,再退出dbassist,单独运行创建脚本,这样更灵活一些,可以自己改创建脚本,也可以自己研究一下脚本,会有收获的。

三、安装后配置

1、以root登录,修改/etc/oratab,将最后的:
orcl:/u01/app/oracle/product/8.1.7:N
改为:
orcl:/u01/app/oracle/product/8.1.7:Y
这样就可以用dbstart和dbshut来启动和关闭数据库了,不用自己写脚本调svrmgrl。

2、将数据库启动命令和修改内核命令放在系统启动脚本中(这一不可以不做)

修改/etc/rc.d/rc.local,加入:

#modify kernel parameter
echo 134217728 > /proc/sys/kernel/shmmax
echo -e "250 32000 100 128" > /proc/sys/kernel/sem

#start Oracle8.1.7
su - oracle -c 'lsnrctl start'
su - oracle -c 'dbstart'

我比较懒,没有另外写脚本联接进rc3.d,rc0.d.rc5.d,rc6.d了,而是直接放在rc.local中了,呵呵
注意的是修改内核参数必须在启动数据库实例之前,启动数据库后,用ipcs 命令看看共享内存的使用情况,如果没有分段就行了。

另外一个特别要说明的事情是一定要注意,凡是读写数据库的进程,必须取得oracle的环境变量,否则无法联接数据库。
上面的脚本中su - 中的这个"-"非常讲究,它的意思是切换到oracle用户,并取得oracle的环境变量。
再例如,如果还要启动apache来读写数据库的话,rc.local加入的命令就一定要这样写:
#start apache httpd server
. /etc/profile
/usr/local/apache/bin/apachectl start

因为我把oracle的环境变量放在/etc/profile里了,在启动apache之前要先强制它读/etc/profile,取得oracle的环境变量,这样apache的ServerAPI程序就可以读写数据库了。

3、修改Net8配置,可以用netca,或者自己修改$ORACLE_HOME/network/admin下的listener.ora和tnsnames.ora,netasst好像出不来。

4、如果创建第二个实例,用dbassist就好了,如果dbassist出不来的话,临时销毁$LANG,$NLS_LANG
unset $NLS_LANG
unset $LANG
就可以出来了。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: