Chinaunix首页 | 论坛 | 博客
  • 博客访问: 877814
  • 博文数量: 206
  • 博客积分: 10276
  • 博客等级: 上将
  • 技术积分: 2358
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-01 02:41
文章分类

全部博文(206)

文章存档

2014年(1)

2013年(1)

2012年(2)

2011年(10)

2010年(14)

2009年(15)

2008年(33)

2007年(90)

2006年(40)

我的朋友

分类: Oracle

2007-01-31 11:56:09

Oracle是世界上使用最广泛的数据库,它可以运行在各种计算机上;也是当前最优秀的关系型数据库。以前,一至无缘接触。这两天,正好有空。就在自己的计算机上装了一遍,领略了一番她的魅力!

一、准备工作

1.
下载oracle9iforlinux的源码包(一共有三个cpio.gz的文件lnx_920_disk1.cpio.gz,lnx_920_disk2.cpio.gz,lnx_920_disk3.cpio.gz)

 2.下载补丁。至少需要四个补丁文件:

QUOTE:

p3095277_9204_LINUX.zip9.2.0.4.0的升级补丁包.
p3006854_9204_LINUX.zip
在运行runInstaller之前打
.
p3119415_9204_LINUX.zip
在升级到9.2.0.4.0之后打
.
p2617419_210_GENERIC.zip
3119415补丁所需要的.

这几个补丁文件都可以在google上搜索到,其中p3095277_9204_LINUX.zip这个补丁有300M,我在网上搜到了一个国内的下载站,速度有30K/秒。另外三个,在itpub有人打包上传了。http://www.itpub.net/showthread.php?s=&threadid=171693&perpage=15&pagenumber=1

 3.修改内核参数

QUOTE:

#echo"kernel.sem=\"25032000100128\"">;>;/etc/sysctl.conf
#echo"kernel.shmmax=2147483648">;>;/etc/sysctl.conf

第一条命令中的25032000100128分别对应SEMMSLSEMMNSSEMOPMSEMMNI这四个核心参数。
上面是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动.

 4.检查设置

QUOTE:

#more/etc/sysctl.conf|grepkernel.s
kernel.sysrq=0
kernel.shmmax=2147483648
kernel.sem="25032000100128"

5.检查安装所需的rpm包是否齐全,确认以下rpm包都已经安装(如果你安装时选择了软件开发,那么基本上下面所列的包都已经安装了,如果没有安装,大部分在第三张光盘上,安装时注意一下顺序)

QUOTE:

#rpm-qa|grepcompat
compat-gcc-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
#rpm-qa|grepopenmotif
openmotif-2.2.2-16
openmotif-devel-2.2.2-16
#rpm-qa|grepsetarch
setarch-1.3-1

6.gcc,g++更换为2.96的版本。

QUOTE:

#mv/usr/bin/gcc/usr/bin/gcc323
#ln-s/usr/bin/gcc296/usr/bin/gcc
#mv/usr/bin/g++/usr/bin/g++323
#ln-s/usr/bin/gcc296/usr/bin/gcc

7.设置用户及环境变量、安装目标路径

a.
增加用户和组

QUOTE:

groupadddba#创建数据库管理员组
groupaddoinstall#
创建oracle文件的所有组
useradd-c"Oraclesoftwareowner"-goinstall-Gdbaoracle#
创建oracle用户
passwdoracle#
设置oracle用户的密码

b.创建安装目标路径

QUOTE:

mkdir/opt/oracle
mkdir/opt/oracle/product
mkdir/opt/oracle/product/9.2.0
chown-Roracle.oinstall/opt/oracle

mkdir/var/opt/oracle
chownoracle.dba/var/opt/oracle
chmod755/var/opt/oracle

c.设置环境变量

QUOTE:

su-oracle
vi.bash_profile
加入下面的内容

exportLD_ASSUME_KERNEL=2.4.1#
这个参数必须指定,否则Java安装界面无法启动,这个参数实际上是为了避免Linux上的NPTL(NativePOSIXThreadLibrary)Oracle应用不兼容的问题.
#OracleEnvironment
exportORACLE_BASE=/opt/oracle
exportORACLE_HOME=/opt/oracle/product/9.2.0
exportORACLE_SID=test
exportORACLE_TERM=xterm
#exportTNS_ADMIN=Setifsqlnet.ora,tnsnames.ora,etc.arenotin$ORACLE_HOME/network/admin
exportNLS_LANG=AMERICAN;
exportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
exportLD_LIBRARY_PATH

#Setshellsearchpaths
exportPATH=$PATH
:$
ORACLE_HOME/bin
然后执行

$source.bash_profe#
让配置文件生效

8.设置swap和临时文件夹

 oracle对内存和swap要求比较高,Oracle建议Oracle9i服务器至少需要512M内存,两倍内存或不少于400M的交换(swap)空间。如果你没有足够的交换空间或内存,在数据库创建过程中,你的Oracle服务器将变得非常迟钝。我的内存只有256M512Mswap。在此,我新增了1000Mswap

QUOTE:

su–root
ddif=/dev/zeroof=tmpswapbs=100Mcount=10
chmod600tmpswap
mkswaptmpswap
swapontmpswap

另外,oracle的安装至少需要400M/tmp临时空间。如果你/tmp下的空间不够,可以可以临时在另一个文件系统中建立一个/tmp目录。

QUOTE:

su–root
mkdir/;/tmp
chownroot.root/;/tmp
chmod1777/;/tmp
exportTEMP=/;#usedbyOracle
exportTMPDIR=/;#usedbyLinuxprograms

当安装完Oracle之后,关闭Oracle并删除临时目录:

QUOTE:

su–root
rmdir/;/tmp
unsetTEMP
unsetTMPDIR

Oracle磁盘空间(SizingOracleDiskSpace)仅安装数据库软件,大约需要2.5G的磁盘空间。如果执行一个标准的数据库安装而不是自定义安装,则大约需要3.5G空间。

 9.解包安装文件。把下载的文件拷贝到/tmp中。最好以root身份来解压,否则可能会报错。

a.
解压gunziplnx_920_disk1.cpio.gzlnx_920_disk2.cpio.gzlnx_920_disk3.cpio.gz

b.
解包

QUOTE:

cpio-idmvcpio-idmvcpio-idmv

会生成Disk1,Disk2,Disk3三个文件夹,好了,准备工作告一段落。万事俱备,只久安装了!

二、安装

1.
打第一个补丁。运行runInstaller之前,需要打补丁3006854:注意,必须以root身份运行.

QUOTE:

#unzipp3006854_9204_LINUX.zip

会在当前目录下创建一个目录,进入到该目录中

QUOTE:

#cd3006854
#chmod+x*.sh
#./rhel3_pre_install.sh

2.root身份执行xhost+如果以oracle身份执行,会出现提示不能连接到display0.0之类的错误。

 3.运行runinstall(激动人心的时刻到了!)

 
su-oracle
 /tmp/Disk1/runInstaller(有文章说不要进入到Disk1的文件夹中再执行./runInstaller,否则会找不到其它的盘。我没有实验那样是否不行。
)

根据提示往下面安装,中间会提示你,有一个地方要组名,输入oinstall,另一个地方添数据库名和SID,请均填入orcl。还会提示你用root身份执行一个脚本,按ctrl+shift+n新开一个终端窗口,然后执行/tmp/的一个.sh文件。


另外,relink阶段,会报告两个错误:ins_oemagent.mkins_ctx.mk.Ignore忽略,安装后升级到9.2.0.4的版本来消除这个bug.

4.
升级


解包:unzipp3095277_9204_LINUX.zipcpio-icvd<9204_lnx32_release.cpio这个地方最好还以root身份解包,否则可能还会提示你权限不够。

现在可以再次运行runInstaller,要先升级oui(最后一个选项)否则不让升级到9.2.0.4.而且,升级完oui以后,要退出oui然后再重新运行oui,再升级到9.2.0.4.不退出继续升级会报告错误.升级过程中,仍然会出现ins_oemagent.mk错误,Ignore忽略(可以通过下面的补丁解决)。然后还会提示你用root身份来执行一个/opt中的一个脚本,你同样开一个终端,用root身份来执行就可以了。

5.
打补丁

QUOTE:

su-oracle
$unzipp3119415_9204_LINUX.zip
$cd3119415
$exportPATH=$PATH:/tmp/OPatch
$exportPATH=$PATH:/sbin#thepatchneeds"fuser"whichislocatedin/sbin
$whichopatch
/tmp/OPatch/opatch
$opatchapply

这个地方有一个问题需要注意,直接用oracle身份解压可能提示权限不够,用root身份解压,然后用oracle身份来执行还会提示你权限不够,你用root解压然后执行chmod7773119415,然后su-oracle;/tmp/Opatch/opatchapplyok了。
好了,大功告成了!运行dbca命令来创建数据库,还有文档上说这个时候可能会出错,要修改dbca文件来解决,我没有遇到这个问题,如果你遇到了可以上google上找相关文档,来解决这个问题。

三、清扫战场及实验

1.
删除临时文件(这些临时文件将近3G,不用我再说删除的意义了吧?)

QUOTE:

cd/tmp
rm-rf*

2.改回gcc,g++的版本,否则在以后编译安装其他软件时可能会有问题

QUOTE:

#mv/usr/bin/gcc323/usr/bin/gcc
#mv/usr/bin/g++323/usr/bin/g++

3.连接一下数据库,检查一下自己的劳动成果吧!

QUOTE:

su-oracle
oracle$sqlplus/nolog
SQL>;connect/assysdba
SQL>;startup

SQL>;这时你可以用createtable来创建数据库了,和mysql提示符下的操作一样。

如果你现在只是测试服务器,不是生产服务器,关机时别忘了在sql>;提示符下执行一下shutdown来关闭数据库,不然的话,关机的过程将变得非常漫长。

 

阅读(1754) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~