linux上安装oracle(有完善)

一、硬件软件环境:
硬盘       120GB
内存       2G
系统环境      WindosXp Pro
Linux运行环境   VMWareWorkStation4.5.2

二、准备工作:

1. 创建Oracle用户账号:
# groupadd dba           #group of users to be granted with SYSDBA system priviliege
# groupadd oinstall             #group owner of Oracle files
# useradd -c "Oracle software owner" -g oinstall -G dba oracle
# passwd oracle

2. 创建Oracle目录:
本人是把Oracle安装在/opt目录下面。如果你的/opt不是一个单一的文件系统,请确保根文件系统"/"有足够的空间。
# mkdir /opt/oracle
# mkdir /opt/oracle/product
# mkdir /opt/oracle/product/9.2.0
# chown -R oracle.oinstall /opt/oracle

# mkdir /var/opt/oracle
# chown oracle.dba /var/opt/oracle
# chmod 755 /var/opt/oracle

3. 设置Oracle环境(不要复制,最好直接输入,不然会产生非法字符)
编辑Oracle家目录下面的.bash_profile文件,注意:RedHat Linux9.0下要设置LD_ASSUME_KERNEL=2.4.1。.bash_profile文件内容可以如下:

# .bash_profile

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

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
# +------------------------------------------------------------+
# | FILE : .bash_profile |
# +------------------------------------------------------------+

umask 022
TERM=xterm; export TERM
TMPDIR=/tmp; export TMPDIR
export ORACLE_SID=ORCL
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm

#export LDEMULATION=elf_i386_glibc21
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
export LD_ASSUME_KERNEL=2.4.1
PATH=$PATH:$ORACLE_HOME/bin:/opt/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/usr/java/j2sdk1.4.2_04/bin:.
export PATH
export JAVA_HOME=/usr/java/j2sdk1.4.2_04
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes12.zip:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.
echo ".bash_profile executed"
其实不设置CLASSPATH环境变量,也可以成功安装Oracle9iR2。
4.设置交换空间

为了执行Oracle9i标准安装和创建原形数据库,Oracle建议服务器至少需要512M内存的交换空间。
       查看内存大小,可以用以下命令:
# grep MemTotal /proc/meminfo
查看交换空间大小,可以用以下命令:
# cat /proc/swaps
不过可以通过建立临时交换文件来增加交换空间,代替使用原始设备。
# dd if=/dev/zero of=tmpwap bs=1k count=900000
# chmod 600 tmpswp
# mkswap tmpswap
# swapon tmpswap
取消临时交换空间,可以这样:
# swapoff tmpswap
# rm -rf tmpswap

5. 设置Linux内核参数:
修改 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 2147483648 (机器内存2G,如果你的没这么大可相应设置小些)
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

6. 检查/tmp空间

Oracle通用安装程序需要400M以上的临时空间
检查/tmp临时空间,可以用:
# df /tmp
如果没有足够的/tmp空间,可以临时在另一个文件系统中建立一个tmp目录。
# mkdir /<AnotherFileSystem>/tmp
# chown root.root /<AnotherFileSystem>/tmp
# chmod 1777 /<AnotherFileSystem>/tmp
# export TEMP=/<AnotherFileSystem>/tmp                  #used by Oracle
# export TMPDIR=/<AnotherFileSystem>                    #used by Linux programs
当安装完Oracle之后,关闭Oracle并删除临时目录:
# rmdir /<AnotherFileSystem>/tmp
# unset TEMP
# unset TMPDIR

7. 检查开发包:

运行以下命令,看看这些软件包有没有被安装:
# rpm -q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils
如果没有被安装,可以这样安装软件包:
# rpm -ivh gcc-3.2.2-5.i386.rpm

8. 安装JDK

# sh j2sdk-1_4_2_04-linux-i586.bin
# rpm j2sdk-1_4_2_04-linux-i586.rpm
有资料说Oracle9iR2可以跳过这部分内容,不在系统中安装JDK,也可以成功安装Oracle9iR2。意味着Oracle现在能够使用自己的java。
下载j2sdk-1_4_2_04或Blackdown1.1.8_v3:(我使用的是j2sdk-1_4_2_04)
       http://www.blackdown.org/
http://java.sun.com/
       根据JDK文档,安装到/usr/local目录下,同时还要建立一个链接JDK到/usr/local/java,但是我在使用rpm -ivh j2sdk-1_4_2_04-linux-i586.rpm时,默认的安装路径却不象RedHat Linux8.0那样安装到/usr/local/目录下,而是安装到了/usr/java目录下,这在我使用dbca建库的时候才发现:),不过没有关系,知道她藏在哪儿就可以驾驭了,呵呵。所以在初始环境中我已经改了,大家不必担心。在RedHat Linux8.0下可以这样链接:
       # ln -s /uar/local/ j2sdk1.4.2_04 /usr/local/java

9. 解压Oralce9iR2 for Linux的安装软件包:

把安装文件拷贝到系统中,以免因光驱或盘片等原因造成意想不到的结果:)。
可以一步到位的把文件解压开来:
              # zcat ship_9204_linux_disk1.cpio.gz | cpio -idmv
              # zcat ship_9204_linux_disk2.cpio.gz | cpio -idmv
              # zcat ship_9204_linux_disk3.cpio.gz | cpio -idmv
              解包和解压过程中,自动创建了3个包含安装文件的目录:
              Disk1
              Disk2
              Disk3
              之后就可以安装Oracle9iR2了,注:要在英文语言环境下安装Oracle9iR2。否则会出现由于系统与Oracle字库不同而造成的乱码现象。
      
三、开始安装:
1.以oracle用户登录系统,进行Oracle的安装:
              $ cd Disk1
              $ ./runInstaller
              过一会儿就会出现Oracle的安装界面,如下图所示:

              2.点击"Next"进行下一步:


              3.选择默认,点击"OK"继续:


              4.输入组名"oinstall",点击"Next"进行下一步:


              5.按照提示,另开一个终端,以root用户执行/tpm/orainstRoot.sh命令:


              6.等命令瞬间执行完毕后,点击"Continue"进行下一步:


              7.选择默认,点击"Next"继续:


              8."Loading product"后,进入下图所示的安装界面:


9.选择"Oracle9i Database 9.2.0.4.0"并选择"Product Languages"进行语言的设
置:

              10.选择支持国语的"Simplified Chinese"、"Traditional Chinese",点击"OK":


              11.这里选择"Enterprise Edition(2.56GB)"进行安装,点击"Next":


              12.等候安装进程的执行,进入下一个安装界面:


              13.选择"Software Only",以后我们可以用dbca工具来建库:


              14.点击"Install",来开始安装数据库了:


              15.安装等候"link pending……",继续:


              16.经过漫长的等待,我终于见到了期待已久的界面。


17.安装过程比我预料的好很多,居然没有一个错误提示:)。按照提示,以root用户在终端执行/opt/oracle/product/9.2.0/root.sh。如下图所示:

              18.执行语句后,回车,使用默认的路径,一定要等待语句执行完毕后,才返回安装界面,点击"OK":


              19.恭喜恭喜!看到这个画面,就证明数据库已经安装成功了:)。点击"Exit"退出界面。

四、             创建数据库:

我在执行dbca这个工具时,界面都可以正常的进行下去,但是到了最后建库的时候,总是关闭窗口返回终端,并提示dbca文件内第120多行有错误。不过这可能就是Oracle使用本身自带java造成的问题。按照下面的修改,结果终于可以成功的建库了。
       修改$ORACLE_HOME/bin目录下面的dbca文件:
改JRE_DIR=/usr/java/ j2sdk1.4.2_04/jre
$JRE_DIR/bin/java -native -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
else
$JRE_DIR/bin/java -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
fi
后保存就可以了。


****************************************************************************
最后建库的时候出现的错误:
1、
可能会出现错误提示: /etc/oratab file doesn't exist
可执行下面语句:
#cd /opt/ora9/product/9.2/install/utl
#sh root.sh
2、
可能出现ORA-29807:specified operator does not exist错误
在安装完成后,在$ORACLE_HOME/rdbms/admin目录下运行utlrp.sql,用于修补ORA-29807错误。
****************************************************************************
1.以oracle用户在终端执行dbca,就可以建立数据库了,呵呵!如下图所示:





                   2.等待一下,弹出dbca的欢迎界面:



                   3.点击"Next"进行下一步:


                   4.选择"Create a database"来创建数据库,点击"Next",继续:


                   5.选择"New Database",点击"Next"来创建新的数据库:


                   6.输入数据库的全局名称和SID名称,Global Database Name可以输入如:"ora9204.oracle.com,SID:ora9204.也可以输入一同个名称。完成后点击"Next"继续:

                   7.默认选择,点击"Next"继续:


                   8.这里同样也是默认选择,点击"Next"继续:


                   9.设定Oracle9iR2数据库初始参数,初始参数设定的优劣直接影响数据库的执行性能,
这里你也可以选择"Archive"标签,把数据库设成为"存档模式":


                   10.选择"Character Sets"进行数据库字符集设定,点击"Next"前往下一步:

10.    直接点击"Next"进行下一步:

              11.你可以钩选"Save as a Database Template"和"Generate Databse Creation Scripts",然后点击"Browse"按钮将DBCA所做的设定储存为一个新数据库模版和创建数据库时的脚本保存到一个目录下,以便将来建立数据库时可以直接使用。然后点击"Finish"继续。

              12."数据库配置助理"最后会将所有配置设定值整理出一张清单,按下"OK"后就会开始创建数据库。


              13.要有耐心的等待特别漫长的一段时间后就会进入数据库建库完成的阶段:)。

              14.出现上面的窗口时就大功告成了!请您自行指定SYS与SYSTEM这两个系统管理员的密码。设定完毕后按下"OK",就会回到安装成功的画面。


              15.恭喜恭喜了!点击"Next"退出安装程序,后会跳出OEM的画面。

              16.好不容易将Oracle9i数据库系统安装完毕,接着来验收一下成果吧!


              17.在终端输入ps - ef | grep ora_ 命令来确认Oracle9i数据库的后台进程已经正常启动。继续:

              18.接着利用Oracle9i数据库的客户端工具SQL*Plus登录数据库,并利用scott(密码为tiger)登录数据库,试着执行指令查询emp表。就象你看见到上图emp表的数据,就表示Oracle9i数据库运作无误!好了,现在检查一下实际安装Oracle9i数据库后硬盘使用的情况.

如果出现
$sqlplus
bash:sqlplus:command not found

1、检查ORACLE_HOME和PATH设置是否正确
2、LN -S $ORACLE_HOME/BIN/SQLPLUS /USR/BIN/