linux下oracle安装过程笔记

本文档详细记录了在Linux系统中安装Oracle数据库的过程,包括创建用户和组、准备文件目录、调整系统内核参数、安装必备软件包、设置Oracle系统环境、解压安装文件、解决安装过程中遇到的错误以及编写启动脚本。安装步骤严谨,适合初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照从网上摘得的文档的指示,经历种种艰难困苦,终于装上了。

以下为文档内容:

在安装之前有几个地方需要注意的:

你的交换分区最好有一个G左右那么大,第二你的硬盘分区最好也要有足够大的空间。

 

下面我那个转贴的中译本:

 

1、创建用户和组:

[roko@miniroko] su -

 

[root@miniroko]# groupadd oinstall

[root@miniroko]# groupadd dba

[root@miniroko]# useradd -g oinstall -G dba oracle

[root@miniroko]# passwd oracle

 

 

2、准备文件目录:

 

[root@miniroko]# mkdir -p /opt/ora9/product/9.2

[root@miniroko]# mkdir /var/opt/oracle

[root@miniroko]# chown oracle.dba /var/opt/oracle

[root@miniroko]# chown -R oracle.dba /opt/ora9

 

3、调节系统内核参数及安装支持软件包:

3.1、首先用命令rpm -qa|grep compat 查看系统中是否安有以下几个软件包:

 

compat-gcc-7.3-2.96.118.i386.rpm

compat-libgcj-7.3-2.96.118.i386.rpm

compat-libgcj-devel-7.3-2.96.118.i386.rpm

nss_db-compat-2.2-20.i386.rpm

 

rpm –Uvh compat-gcc-7.3-2.96.118.i386.rpm

 

如果没有,请拿出你的安装盘,安装以上的包。不要用原文给的那个APT的东东,不熟的人遇上没有解决的依赖性问题的话,就特别讨厌。

 

3.2、设置内核参数,调节信号灯及共享内存:

[root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem

[root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax

[root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni

[root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall

[root@miniroko]# echo 65536 > /proc/sys/fs/file-max

[root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

 

当然为了一开机系统就能自动帮你设好这些参数,也可改动 /etc/sysctl.conf 这个文件,加入以下的语句:

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

 

保存后,即可。建议关于net.ipv4.ip_local_port_range不要改动,可以用cat /proc/sys/net/ipv4/ip_local_port_range 看到红帽子对这个所定义的范围已经符合,而且端口范围比这个小。

 

3.3、设置oracle对文件的要求:

编辑文件:/etc/security/limits.conf 加入以下语句:

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

 

这个需要重启后才能生效的。但是安装的时候无所谓了。

 

4、设置oracle的系统环境:

oracle用户的身份登录:

su oracle

cd ~

编辑它的.bashrc文件加入以的东东:

#oracle 9i

export ORACLE_BASE=/opt/ora9

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export ORACLE_OWNER=oracle

export ORACLE_SID=ora9i

export ORACLE_TERM=vt100

export LD_ASSUME_KERNEL=2.4.8(对linux9)

export THREADS_FLAG=native

export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH

export PATH=/opt/ora9/product/9.2/bin:$PATH

#

# change this NLS settings to suit your country:

# example:

# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.

#

export NLS_LANG= AMERICAN_AMERICA.zhs16gbk; (注意这个东东把它注释掉,因为我们用的是中文系统。然而为了能够显示中文加入以下一行:

export LC=en_US

 

退出,将你下载的三个iso文件准备好。

5、解压你下载的文件:

5.1、新建一个目录:mkdir /mnt/Oracle

5.2、将三个文件拷入新建的目录:cp ln_* /mnt/Oracle

5.3、解压三个文件: cd /mnt/Oracle

gunzip gunzip lnx_920_disk1.cpio.gz

gunzip lnx_920_disk2.cpio.gz

gunzip lnx_920_disk3.cpio.gz

cpio -idmv < lnx_920_disk1.cpio

cpio -idmv < lnx_920_disk2.cpio

cpio -idmv < lnx_920_disk3.cpio

5.4、这个将生成三个文件夹:DISK1, DISK2, DISK3

6、开始安装:

 

Root>xhost +

 

oracle的用户身份进入:

su oracle

cd ~

/mnt/Oracle/DSIK1/runInstall.sh

 

在安装的过程中会遇到几个错误:

第一个错误提示关于这个文件ins_oemagent.mk的,不要去管它,选择忽略,我们将在下面的步骤中修复它。

第二错误提示:Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk

这个时候就先不要选择忽略了,这个时候你要先打开一个终端:以oracle用户的身份登录进去,运行以下的命令:

[oracle@miniroko oracle]$ cd $ORACLE_HOME/install

[oracle@miniroko install]$ tail make.log

 

可以看到这个,然后在其下有错误提示:

gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/

-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o

-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut

-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9

-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9

我们运行以下的命令来修改它:

[oracle@miniroko]$ cd $ORACLE_HOME/bin

[oracle@miniroko bin]$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/

-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/

/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/

-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc

-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9

-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl

也就重新在这个地方编译一下上面出错的地方。然后再回到安装界面,对那个错误对话框选择忽略。继续安装就行了。

 

第三个错误会在启动和配置助手程序的时候出错,不要管它,选择忽略就行了。我们在下面的步骤将会对第一个错误和第三个错误进宪修补。

 

7、修改系统:

oracle用户的身份登入,执行以下命令:

[oracle@miniroko oracle]$ cd $ORACLE_HOME/network/lib

[oracle@miniroko lib]$ make -f ins_net_client.mk install

 

然后编辑这个文件:

oracle@miniroko lib]$vi $ORACLE_HOME/ctx/lib/ins_ctx.mk找到第13行、第14行由ctxhx: $(CTXHXOBJ)

$(LINK) $(CTXHXOBJ) $(INSO_LINK)

 

改为:

ctxhx: $(CTXHXOBJ)

$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)

存盘退出,执行以下命令:

[oracle@miniroko lib]$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

 

 

运行dbca出错时:

Vi $ORACLE_HOME/bin/dbca

 

#将下面列出的除第3 行外的其余行注释掉。

#if [ -f /etc/rac_on ]; then

#Run DBCA

$JRE_DIR/bin/jre –native –DORACLE_HOME=$OH……

#else

#Run DBCA

#$JRE_DIR/bin/jre –DORACLE_HOME=$OH……

#fi

 

现在可以重新启动agents了。

[oracle@miniroko lib]$ /opt/ora9/product/9.2/bin/agentctl start

 

8、为了方便管理,可以写一个启动脚本:

ROOt身份进入,编写以下脚本:

#!/bin/bash

#

# (c) denis.klaric@in2.hr

#

# name: /etc/rc.d/init.d/ora9

# description: starts and stops oracle 9i database, TNS listener

# http server, and fixes kernel parameters for oracle

 

#oracle environment

export ORACLE_HOME=/opt/ora9/product/9.2

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

export NLS_LANG='croatian_croatia.ee8iso8859p2'

export ORACLE_SID=tis

 

export DISPLAY=:0

oracle_user=oracle

 

# see how we're called

 

case $1 in

start)

# fix kernel parameters

echo 250 32000 100 128 > /proc/sys/kernel/sem

echo 536870912 > /proc/sys/kernel/shmmax

echo 4096 > /proc/sys/kernel/shmmni

echo 2097152 > /proc/sys/kernel/shmall

echo 65536 > /proc/sys/kernel/fs/file-max

echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

 

# start listener, apache and database

su - "$oracle_user"<<EOO

lsnrctl start

apachectl start

sqlplus /nolog<<EOS

connect / as sysdba

startup

EOS

EOO

;;

 

stop)

# stop listener, apache and database

su - "$oracle_user"<<EOO

lsnrctl stop

apachectl stop

sqlplus /nolog<<EOS

connect / as sysdba

shutdown immediate

EOS

EOO

;;

 

*)

echo "Usage: ora9 [start|stop]"

;;

esac

存为ora9后,然后用chmod a+x ora9,即可在以后以root身份运行/etc/rc.d/init.d/ora9 start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:

chkconfig --level 3(或者是5) --add ora9

即可。

解决中文的问题可以设定

export LC_ALL=en_US

export LANG=en_US

就好

 

 

三 设置服务自动启动

 

设置相应数据库实例允许用系统服务自动启动:修改oratab文件

root# vi /etc/oratab

将最后的:

orcl:/home/oracle/product/8.1.7:N

改为:

orcl:/home/oracle/product/8.1.7:Y

 

 

简单的服务自动启动脚本

root# vi /etc/rc.local

#start oracle8i listener first

su - oracle -c 'lsnrctl start'

#start oracle8i

su - oracle -c 'dbstart'

 

四 表空间创建和用户创建

 

表空间/用户一一对应,命名规则:username ==> USERNAME.dbf 比如:demo? ==> DEMO.dbf

 

创建表空间:

create tablespace DEMO datafile '$ORACLE_BASE/oradata/$ORACLE_SID/DEMO.dbf' size 200m;

 

创建用户:

create user demo identified by demo default tablespace DEMO quota 200m on DEMO;

grant connect to demo;

 

删除用户:

drop user demo CASCADE;

 

修改用户密码:

alter user demo identified by new_password;

 

安装后Oracle系统需要修改的缺省用户名和密码有:

??? sys/change_on_install??? ??? (比system的权限更高,经常用来设置系统的参数,或者特殊系统视图)

??? system/manager??? ??? ??? ??? (可以管理大部分的工作:表空间、用户、授权、数据文件等)

??? internal/oracle??? ??? ??? ??? (经常用在通过svrmgrl来启动关闭数据库,因为缺省是os认证,所以不需要密码)

 

数据导出:

exp username/password@TNS file=user.dmp

 

按星期定期备份:

exp username/password@TNS file=$ORACLE_BASE/backup/ user_`date +%y%m%d`.dmp

注意:在crontab中需要将“%”转义:/%w

24 17 * * * (source /home/oracle/.bash_profile; exp newdemo/newdemo file=$ORACLE_BASE/backup/user_`date +/%w`.dmp  1>log.out 2>log.err)

 

数据导入:

imp username/password file=name_of_backup.dmp fromuser=thatuser touser=thisuser

其中有几步注意事项:
1,第一次安装JDK时,配置不正确,linux下并存着两个版本的JDK,导致oracle安装界面全是乱码。重新安装一遍后,设置了PATH,HOME,CLASSPATH,将系统环境指向新安装的JDK,进入oracle安装界面后,问题解决,显示为英文。
2,硬盘空间太小,安装过程极长,有可能是交换分区太小的原因。希望能通过加挂硬盘来解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值