前两天受同学之托,要在linux上面装oracle 9i,开始用的是redhat 9.0无奈没有metadata的帐号,关键的一个补丁包始终下不到,只能放弃安装。而后转战AS4,同样需要好几个补丁包,经过苦苦寻找,在互联网分享精神的保佑下,终于搜集到了几个必要的补丁包,开始安装。
避免麻烦,系统选择完全安装。以后不需要的包可以再删嘛。
1、去oracle的网站把三个镜像下载下来,然后解压。
#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
2. 新建oracle 用户和用户组
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
cd /opt
mkdir app
cd app
mkdir oracle
cd oracle
mkdir product
cd product
mkdir 9.2.0
cd /opt
chown -R oracle.dba /opt
chown -R oracle.dba /ora_data
chmod 755 /opt
3、安装补丁包
解压p4198954_21_linux.zip得到两个rpm文件
安装
rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm
rpm -ivh compat-libcwait-2.0-2.i386.rpm
4、设置共享内存(Shared Memory)
# echo 250 32000 100 128 > /proc/sys/kernel/sem
# echo 2147483648 > /proc/sys/kernel/shmmax
修改配置文件# vi /etc/sysctl.conf,添加
# Set oracle environment variable
net.core.rmem_max=262144
net.core.wmem_max=262144
kernel.shmmax=2147483648
kernel.sem=250 32000 100 128
#vm.pagecache=1 15 15
#fs.aio-max-size=2147483648
net.ipv4.ip_local_port_range=1024 65000
退出后运行# /sbin/sysctl -p
5、修改#vi /home/oracle/.bash_profile文件,添加
# +————————————————————+
# | FILE : .bash_profile |
# +————————————————————+
umask 022
# +————————–+
# | SETUP ORACLE ENVIRONMENT |
# +————————–+
# Set the LD_ASSUME_KERNEL environment variable only for Red Hat 9 and
# for Red Hat Enterprise Linux Advanced Server 3 (RHEL AS 3) !!
# Use the “Linuxthreads with floating stacks” implementation instead of NPTL:
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_SID=test
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/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
# +————————–+
# | LINUX STUFF |
# +————————–+
# +————————–+
# | SETUP SEARCH PATH |
# +————————–+
export PATH=$PATH:$ORACLE_HOME/bin
# +————————–+
# | SETUP JAVA ENVIRONMENT |
# +————————–+
# +————-+
# | “GREETINGS” |
# +————-+
#./lowermap
#ulimit -n 63536
#ulimit -u 16384
echo “.bash_profile executed”
最后一行将在启动期间显示。
6、修改#vi /etc/security/limits.conf文件,添加:
oracle soft nofile 4096
oracle hard nofile 63536
oracle soft nproc 2047
oracle hard nproc 16384
着急要开始安装了?别急,还有一步。
7、安装ncurses4-5.0-11.i386.rpm
在网上的安装文档中没有这一步,但如果不装的话,安装过程中会出现错误,导致安装失败。
8、下面是安装数据库的主要几个步骤(用oracle用户登陆图形界面):
su - oracle
$ source .bash_profile
.bash_profile executed
$ cd /tmp
$ cd Disk1/
$ ./runInstaller
出现了图形界面的话就成功了大半了,接下来按提示点鼠标进行选择即可。
9、安装完成后退出安装程序,打Agent补丁. 包括安装p3238244_9204_LINUX.zip补丁和opatch软件包:p2617419_220_GENERIC.zip。
没有metadata的帐号,找到这两个包可不容易啊。
#su - oracle
$ cp p2617419_210_GENERIC.zip /tmp
$ cd /tmp
$ unzip p2617419_210_GENERIC.zip
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin # the patch needs “fuser” which is located in /sbin
$ chmod 777 /tmp/OPatch/opatch
$ unzip p3238244_9204_LINUX.zip
$ cd 3238244
$ opatch apply
$ cd $ORACLE_HOME/network/lib
$ make -f ins_oemagent.mk install
9、 配置开机后自启动脚本。Oralce不建议开机后自动启动皱眉
修改#vi /etc/rc.local文件添加
touch /var/lock/subsys/local
umount /dev/shm
mount -t ramfs ramfs /dev/shm
chown oracle:dba /dev/shm
/sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
#start Oracle9i
su - oracle -c ‘dbstart’
su - oracle -c ‘lsnrctl start’
修改 #vi /etc/oratab文件,N修改为Y
test:/opt/app/oracle/product/9.2.0:Y
拷贝pfile文件到$ORACLE_HOME/dbs目录,pfile文件生产spfile.
#cp $ORACLE_BASE/admin/jcd/pfile/inittest.ora* $ORACLE_HOME/dbs/inittest.ora
注意,这里$ORACLE_BASE/admin/jcd/pfile/inittest.ora*可能变化,必要时手动找一下
修改#vi /etc/cron.daily/slocate.cron文件。屏蔽nightly slocate cron job
#!/bin/sh
#. /etc/updatedb.conf
#[ “$DAILY_UPDATE” != “yes” ] && exit 0
#renice +19 -p $$ >/dev/null 2>&1
#/usr/bin/updatedb
按文档上说的话还需要装一个补丁包,300多兆,可惜google我都翻到后20多页了都没找到,估计是没希望了。好在装到这一步的话就可以用起来了。万幸万幸。
敲sqlplus便可在命令行下对oracle进行操作,敲oemconsole就可以进入类似于SQLServer的企业管理器的图形界面。
抱怨一下,sqlplus真的很难用,竟然不支持历史命令,一个命令敲错一个的话字就得全部重敲。
OVER。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/443058/viewspace-906484/ ,如需转载,请注明出处,否则将追究法律责任。