网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.用Oracle SQL实现文件访问.
.在Linux中实现流量控制.
.什么是Mandrake Linux.
.Windows XP下安装Oracle9i问题二.
.联机热备份与恢复实战.
.举一个 web 翻页 sql 调整的实例.
.Rails 上的 HR 模式.
.ORACLE9IAS在redhat linux as 2..
.每个Oracle DBA都应该遵从的调优.
.Oracle 9i的数据类型.
.oracle中SGA的设置.
.Oracle数据库技术(43).
.Oracle 9i定制数据库模板.
.用ORACLE*Forms 和ORACLE*Graphi.
.Oracle和SUN Solaris内核参数.
.建立实验数据库模型.
.Oracle Database缓冲区漏洞.
.连接oracle10g免安装客户端解决办.
.ORACLE常用傻瓜问题1000问之七.
.Oracle 9i创建数据表.

在Redhat 9上安装 Oracle 817心得

发表日期:2008-2-9



   在 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 {startstopstatus}"
        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并操作文件
上一篇:Oracle 临时表空间使用注意 人气:994
下一篇:blog的魅力,解决我一个oracle的小问题:) 人气:486
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐