热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Redhat9上安装Oracle817心得_oracle

在Linux上安装oracle8i(注:引用http://vip.6to23.com/ha

在 Linux 上安装 oracle 8i
(注:引用http://vip.6to23.com/hanson/htdocs/oracle.htm,在安装过程中作一些更正)

关于 Oracle 安装的讨论已经有很多了,可是在实践中你还是总会遇到某些麻烦,因此我就留下我的两分钱吧。本文讨论的环境基于 Redhat Linux 9.0.93,

Oracle 的版本号为 8.1.7.0.1。

下载软件
假设你已经有了一台跑着 Redhat 的机器,并且它满足 Oracle 8i 对硬件的相关要求,并且具有网络连接,下面就下载其他所需的软件。首先在 OTN 下载 linux

81701.tar 和 glibc-2.1.3-stubs.tar.gz,另外还需要:

i386-glibc-2.1-linux.tar.gz(下载位置:http://ftp.valinux.com/pub/suppo … c-2.1-linux.tar.gz)
binutils-2.10.91.0.2-3.i386.rpm(下载位置:http://mirrors.usc.edu/pub/linux … s/i386/RedHat/RPMS/

binutils-2.10.91.0.2-3.i386.rpm)
(Redhat 自带的是 binutils-2.13.90.0.18-9.i386.rpm,用于恢复,下载位置:http://mirrors.usc.edu/pub/linux … t/redhat/linux/9/en

/os/i386/RedHat/RPMS/compat-gcc-7.3-2.96.118.i386.rpm)
jdk118_v3-glibc-2.1.3.tar.bz2(下载位置:http://ftp.dk.xemacs.org/pub/lan … libc-2.1.3.tar.bz2)

因为 Oracle 自带了 JRE 1.1.8,所以不用单独安装,假设以上所述软件都放在 /tmp 目录。

(注:还需要从java官方网站下载JDK 1.4.2用以恢复,我安装的Redhat9没有发现JDK 1.4.2,下载位置:http://java.sun

.com/j2se/1.4.2/download.html)

安装glibc、JDK、和 binutils
su
cd /
tar zxvf /tmp/i386-glibc-2.1-linux.tar.gz

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
(注:安装oracle过程中发现/usr/bin/ld变为非链接,需要重新设置,否则会出现连接出错!)

cd /usr/lib
mkdir saved
mv libc.so libdl.so libm.so libpthread.so saved
mv libc.a libdl.a libm.a libpthread.a saved

(注:没有安装过java的话就没有这个目录,需要先mkdir /usr/java)
cd /usr/java
tar jxvf /tmp/jdk118_v3-glibc-2.1.3.tar.bz2
ln -s /usr/java/jdk118_v3 /usr/local/java
(注:原来是ln -s jdk118_v3 /usr/local/java,后来发现链接不正确)

(注:安装前先转到软件放置目录cd /tmp)
rpm -Uvh –force –nodeps binutils-2.10.91.0.2-3.i386.rpm
(注:执行这一命令后/usr/bin/ld变为非链接,需要重新设置,否则会出现连接出错!)

创建用户和组
groupadd oinstall
groupadd dba
groupadd oper(注:此组还象没有用到,可以去掉,下面的useradd也要相应的去掉)
useradd -d /oracle -g oinstall -G dba,oper oracle(注:此处为给oracle用户设定/oracle目录,默认是/home/oracle)
passwd oracle
chown -R oracle.dba /oracle
chmod 750 /oracle

准备安装
vi /oracle/.bash_profile(注:由于前面给oracle设置/oracle目录,默认是/home/oracle/.bash_profile)

修改为如下内容:
(注:内容开始,可以在非Linux环境修改这个文件,不过该文件中换行只能是0A,要去掉所有的0D)
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
unset USERNAME
umask 022
export EDITOR=vi
export TERM=xterm
export TMPDIR=/tmp

# Setup installation environment
export ORACLE_SID=orcl
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/i386-glibc-2.1-linux/i386-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib(注:恢复时这一行要删i

386-glibc-2.1的路径)
export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
export LD_ASSUME_KERNEL=2.4
export JAVA_HOME=/usr/local/java
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.
(注:内容结束,注意export的内容在同一行上,CLASSPATH后面的classesxxx.zip建议自己去查一下,我这里xxx是111,路径用冒号分隔而不是分号)

su oracle
. .bash_profile
export LANG=en
cd /tmp
tar xvf linux81701.tar

其中 export LANG=en 是为了防止界面黑做一团。

(注:此时最好去检查一下/usr/bin/ld的链接是否正确:ls -l /usr/bin/ld,应该链接到/usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld才对,否则重

复前面的做法,先rm /usr/bin/ld,再ln。另外建议对前面设定的各个链接都检查一下:/usr/bin/gcc,/usr/bin/cc,/usr/local/java,深红色的表示链接不正确)

开始安装
./Disk1/runInstaller

点击 Next;在 UNIX Group Name 里输入 oinstall;出现一个提示框要求执行 orainstRoot.sh,这时另外打开一个终端:

su
cd $ORACLE_HOME
./orainstRoot.sh

回到 GUI,按 Retry;选择安装 Enterprise Edition;选择典型安装;选择使用一个已经存在的 repository;选择 JDK 的位置(注:应是/usr/local/java);问

是否要新建一个数据库,不用;继续,等待一段时间;出现一个提示框要求执行 root.sh;回到终端:
(注:建议选择自定义安装,这样可以添加支持的语言,比如简体中文等,连接过程如果出错的话请按后面的“处理错误”执行,我没有碰到错误)

vi root.sh

按下列要求修改:第98行,把 SED=/usr/local/bin/sed 改为 SED=/bin/sed;第102行,把 RMF=/bin/rm –f 改为 RMF=”/bin/rm -f”;第156行,把 RUID=`/usr

/bin/id|$AWK -F/( ‘{print $2}’|$AWK -F/) ‘{print $1}` 改为 RUID=`/usr/bin/id|$AWK -F/( ‘{print $2}’|$AWK -F/) ‘{print $1}’`。

./root.sh

回一次车;回到 GUI,按 OK。

处理错误
(注:出错的可能性是/usr/bin/ld的链接被更改,记住在安装binutils-2.10.91.0.2-3.i386.rpm之后要去更改)
出现一个提示框,说 Error in invoking target relink of makefile /oracle/product/8.1.7/precomp/lib/ins_precomp.mk 或者 Error in invoking target

relink of makefile /oracle/product/8.1.7/rdbms/lib/ins_rdbms.mk,回到终端:

exit
cd $ORACLE_HOME
tar zxvf /tmp/glibc-2.1.3-stubs.tar.gz
./setup_stubs.sh

链接工作完成后,回到 GUI,按 Retry;等待,直到安装完成;完成后自动启动的 Net8 配置向导没有反应,kill 之。

恢复其他软件
su
rpm -e –nodeps bintutils-2.10.91.0.2-3
rpm -ivh /mnt/cdrom/Redhat/RPMS/binutils-2.13.90.0.18-9.i386.rpm(注:如果是下载的,位置可能不一样)
cd /usr/local
rm java

(注:补充开始)
安装JAVA
1、#cp j2sdk-1_4_2_05-linux-i586-rpm.bin 到/usr/local
2、#chmod 755 j2sdk-1_4_2_05-linux-i586-rpm.bin
3、#./j2sdk-1_4_2_05-linux-i586-rpm.bin (解出j2sdk-1_4_2_05-linux-i586.rpm)
4、#rpm -ivh j2sdk-1_4_2_05-linux-i586.rpm
rpm安装很方便,不用保佑了。
(注:补充结束)

ln -s /usr/java/j2sdk1.4.2_05 java
(注:原来是j2sdk1.4.2_01,我现在从网下载到的是j2sdk1.4.2_05,建议安装完后自己去检查一下。我用的是“ln -s /usr/java/j2sdk1.4.2_05 /usr/local/

java”,担心又出来链接不对的情况)
cd /usr/bin
rm gcc cc ld
mv ./saved/* .
rmdir saved
cd /usr/lib
mv ./saved/* .
rmdir saved

然后把 oracle 用户环境变量 LD_LIBRARY_PATH 中的 glibc 的部分删去。

创建数据库
exit
cd $ORACLE_HOME/bin
unset LANG
unset NLS_LANG
./dbassist

选择创建数据库;定制;多用途;下一步;共享服务器模式;去掉所有选项(创建 jserver 的时间巨长);设置全局数据库名和 SID,假设全局数据库名为 testdb

,SID 为 orcl;更改字符集:字符集为 UTF8、国家字符集为 ZHS16GBK;六次下一步;完成。

配置 Net8
./netca

使用 netca 是因为 netasst 总是没有反应,让我们鄙视它吧。选择监听程序配置;添加;监听程序名使用默认的 LISTENER;三次下一步。

上面步骤即是对 $ORACLE_HOME/network/admin/listener.ora 的编辑:

# copyright (c) 1997 by the Oracle Corporation
#
LISTENER =
  (ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))

SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=testdb)
      (SID_NAME=orcl)
      (ORACLE_HOME=/oracle/product/8.1.7)
    )
  )

其中 GLOBAL_DBNAME、SID_NAME、和 ORACLE_HOME 随实际情况不同而不同。

手工启动数据库和监听
vi /etc/oratab

把最后的 N 改成 Y。

./dbstart
./lsnrctl start

设置服务
su
cd /etc/init.d
vi oracle
(注:内容开始,可以在非Linux环境下生成然后复制过去,注意要去掉0D字符)
#!/bin/bash
#
# Startup script for Oracle and listener
#
# chkconfig: 35 99 1
# description: Oracle 8.1.7.0.1

# Setup environment for script execution.
. /oracle/.bash_profile(注:给oracle用户设置的目录有变时需要更改此处)

case “$1” in
  start)
        echo “Starting Oracle database(s) listed in /etc/oratab …”
        sleep 2
        su – oracle -c “$ORACLE_HOME/bin/dbstart”
        echo “Starting TNS listener…”
        sleep 2
        su – oracle -c “$ORACLE_HOME/bin/lsnrctl start”
        touch /var/lock/subsys/oracle
        ;;
  stop)
        echo “Stopping TNS listener…”
        sleep 2
        su – oracle -c “$ORACLE_HOME/bin/lsnrctl stop”
        echo “Stopping Oracle databases(s) listed in /etc/oratab …”
        sleep 2
        su – oracle -c “$ORACLE_HOME/bin/dbshut”
        rm -f /var/lock/subsys/oracle
        ;;
  status)
        ps -ax | grep -e ora_ -e tnslsnr
        ;;
  *)
        echo “Usage: oracle {start|stop|status}”
        exit 1
esac

exit 0
(注:内容结束)

chmod 700 /etc/init.d/oracle
/sbin/chkconfig –add oracle

使用启动脚本启动和关闭
/etc/init.d/oracle start
/etc/init.d/oracle stop

(注:到此安装配置完成,以后每次启动/关闭系统时oracle服务都会自动启动/停止)

(注:有些情况会提示权限不够,就改用root操作,至于哪一步该用oracle哪一步该用root,操作过程中看情况而定,建议优先使用oracle)
参考工具:winscp366setup.exe – Setup for WinSCP 3.6.6 (SCP/SFTP client for Windows),用于在Windows下连接到Linux并操作文件

欢迎大家阅读《在Redhat 9上安装 Oracle 817心得_oracle》,跪求各位点评,若觉得好的话请收藏本文,by



推荐阅读
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 在Linux环境下编译安装Heartbeat时,常遇到依赖库缺失的问题。为确保顺利安装,建议预先通过yum安装必要的开发库,如glib2-devel、libtool-ltdl-devel、net-snmp-devel、bzip2-devel和ncurses-devel等。这些库是编译过程中不可或缺的组件,能够有效避免编译错误,确保Heartbeat的稳定运行。 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 本文详细介绍了在Ubuntu操作系统中使用GDB调试工具深入分析和调试标准库函数`printf`的源代码过程。通过具体步骤和实例,展示了如何设置断点、查看变量值及跟踪函数调用栈,帮助开发者更好地理解`printf`函数的工作原理及其内部实现细节。 ... [详细]
  • 为了深入了解某些测试框架的工作原理,并在培训中构建一个简单的测试框架,我系统地研究了 should.js 的源代码。本文将分享我的学习过程和分析结果,帮助读者更好地掌握 should.js 的核心机制。 ... [详细]
  • 在操作系统中,阻塞状态与挂起状态有着显著的区别。阻塞状态通常是指进程因等待某一事件(如I/O操作完成)而暂时停止执行,而挂起状态则是指进程被系统暂时移出内存,以释放资源或降低系统负载。此外,本文还深入分析了`sleep()`函数的实现机制,探讨了其在不同操作系统中的具体实现方式及其对进程调度的影响。通过这些分析,读者可以更好地理解操作系统如何管理进程的不同状态以及`sleep()`函数在其中的作用。 ... [详细]
  • 优化Oracle数据库日志功能的关闭方法与实践
    在优化Oracle数据库日志功能的过程中,关闭不必要的日志记录是一项重要任务。本文探讨了Oracle 11g中日志路径的配置和管理,特别是针对常用的警报日志(alert log)。通过合理配置 `alert_$ORACLE_SID.log` 文件,可以有效减少日志文件的大小和提高系统性能。此外,文章还介绍了如何通过调整参数和使用脚本自动化日志管理,进一步提升数据库的稳定性和维护效率。 ... [详细]
  • 在Linux环境下使用Oracle数据库时,常见的操作指令包括创建表空间。具体命令为:`CREATE TABLESPACE jxc DATAFILE '/path/to/nmxynmxy.dt' SIZE 10G AUTOEXTEND ON NEXT 1M EXTENT MANAGEMENT LOCAL;` 该命令用于定义一个新的表空间,并指定其数据文件的位置、大小以及自动扩展的设置,确保数据库能够高效地管理存储资源。 ... [详细]
  • 本文将深入探讨Java编程语言中顶级类`Object`的源码实现,旨在为Java新手提供进阶指导。`Object`类是所有Java类的基类,了解其内部机制对于提升编程技能至关重要。文章首先介绍了API文档的使用方法,这对于有开发经验的Java程序员来说是不可或缺的工具。通过详细解析`Object`类的关键方法和属性,读者可以更好地理解Java的核心原理和设计思想。此外,文章还提供了实际代码示例,帮助读者在实践中掌握这些知识。 ... [详细]
author-avatar
手机用户2502863963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有