成功在Linux9.0上安装了Oracle9iR2
作者:黄骏捷 | 来源:互联网 | 2023-01-27 18:20
今天成功在Linux9.0上安装了Oracle9iR2,下面的步骤是我在网上搜索的,针对自己安装出现的问题进行了部分修改。一、硬件软件环境:硬盘120GB
今天成功在Linux9.0上安装了Oracle9iR2,下面的步骤是我在网上搜索的,针对自己安装出现的问题进行了部分修改。
一、 硬件软件环境:
硬盘 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 //tmp
# chown root.root //tmp
# chmod 1777 //tmp
# export TEMP=//tmp #used by Oracle
# export TMPDIR=/ #used by Linux programs
当安装完Oracle之后,关闭Oracle并删除临时目录:
# rmdir //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/
推荐阅读
-
本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ...
[详细]
蜡笔小新 2023-12-14 17:08:34
-
本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ...
[详细]
蜡笔小新 2023-12-14 15:39:51
-
-
转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎 ...
[详细]
蜡笔小新 2023-12-13 16:11:00
-
本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ...
[详细]
蜡笔小新 2023-12-13 12:14:55
-
本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ...
[详细]
蜡笔小新 2023-12-13 11:47:24
-
本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ...
[详细]
蜡笔小新 2023-12-13 10:34:21
-
本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ...
[详细]
蜡笔小新 2023-12-12 21:54:15
-
本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ...
[详细]
蜡笔小新 2023-12-12 20:02:41
-
本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ...
[详细]
蜡笔小新 2023-12-12 17:47:48
-
本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ...
[详细]
蜡笔小新 2023-12-12 17:37:32
-
怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ...
[详细]
蜡笔小新 2023-12-12 17:17:29
-
intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ...
[详细]
蜡笔小新 2023-12-12 14:29:57
-
本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ...
[详细]
蜡笔小新 2023-12-11 19:55:40
-
本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ...
[详细]
蜡笔小新 2023-12-10 13:54:46
-
node.jsrequire和ES6导入导出的区别原 ...
[详细]
蜡笔小新 2023-12-10 11:12:31
-