Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439493
  • 博文数量: 102
  • 博客积分: 4045
  • 博客等级: 上校
  • 技术积分: 2120
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-16 22:21
文章分类
文章存档

2013年(1)

2009年(24)

2008年(77)

我的朋友

分类: Oracle

2009-06-23 17:23:08

一:安装AS4操作系统,最好选完全包安装,要不安装ORACLE回提示少很多包。这些包是必须的,安装ORACLE前先检查一下:

1,查看这些开发包是否已安装;
安装需要的软件包和补丁包:
p4198954_21_linux.zip
在运行 runInstaller 之前打.
p3238244_9204_LINUX.zip
修复agent错误的补丁.
p2617419_210_GENERIC.zip
3238244补丁所需要的补丁.
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-oracle-rhel4-1.0-3
compat-libcwait-2.0-1
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
gnome-libs-1.4.1.2.90-44
gnome-libs-devel-1.4.1.2.90-44
libaio-devel-0.3.102-1
libaio-0.3.102-1
make-3.80-5
openmotif21-2.1.30-11
xorg-x11-deprecated-libs-devel-6.8.1-23.EL
xorg-x11-deprecated-libs-6.8.1-23.EL
其中compat-oracle-rhel4compat-libcwait可以在如下网站:

# rpm -qa | grep ‘compat’
注:如果包不全,大多书都在第3张系统盘上。自己找一下吧。单独安装包。也许会提示依赖关系,提示安装失败时可以是用

 Rpm  --nodeps  --force   *.rpm


二,解压缩Oracle9204的安装文件
1
Oracle 9iR2 (9.2.0.4)
(1)
简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快)
在安装LINUX时最好分一个区/bak

gunzip  ship_9204_linux_disk1.cpio.gz

cpio –idmv < ship_9204_linux_disk1.cpio

gunzip  ship_9204_linux_disk2.cpio.gz

cpio –idmv < ship_9204_linux_disk2.cpio
gunzip  ship_9204_linux_disk3.cpio.gz

cpio –idmv < ship_9204_linux_disk1.cpio
(2)
解包和解压过程中,自动创建了3个包含安装文件的目录:
Disk1
Disk2
Disk3
之后就可以安装Oracle9iR2了。
三,创建数据库安装的准备工作;
1
,创建user/group
#groupadd dba
#groupadd oinstall
#useradd oracle -g oinstall -G dba
#passwd oracle
2
,建立oracle安装文件夹;
# mkdir -p /u01/app/oracle/product/9.2.0.4
# mkdir /u01/cwdata
# chmod 777 /u01/cwdata
# chown oracle.dba /u01/cwdata
# chown oracle.dba /orasetup
# chmod 777 /orasetup
# chown -R oracle.dba /u01/app/oracle/product/9.2.0.4
# chmod -R 777 /u01/app/oracle/product/9.2.0.4
2
配置环境变量;
root用户登录,设置root用户的环境打开.bash_profile文件,将如下内容加入:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=oradb
使用Oracle用户登陆:
#su – oracle
$vi .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
#ORACLE_BASE
可以定位到盘阵上/data
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=oradb
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export NLS_LANG=”American_america.zhs16gbk”
# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export DISPLAY=:0
export LANG=en_US
export GDM_LANG= en_US
export LC= en_US
export PATH
unset USERNAME
4
设置系统参数;
#su – root
切换到root用户
a)
修改#vi /etc/sysctl.conf, 以下是配置文件的内容(其中红色字体为添加的内容):
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl( and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
kernel.shmmax = 536870912 / 268435456
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
修改后运行#sysctl –p命令使得内核改变立即生效;
译者注:一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。)
建议永久地增加 shmmax 设置。
sem 4
个参数依次为SEMMSL(每个用户拥有信号量最大数)SEMMNS(系统信号量最大数)SEMOPM(每次semopm系统调用操作数)SEMMNI(系统辛苦量集数最大数).Shmmax 最大共享内存,官方文档建议是内存的1/2,Shmmni 最小共享内存 4096KB.Shmall 所有内存大小

B)
设置oracle对文件的要求:
编辑文件:#vi /etc/security/limits.conf 加入以下语句:
oracle
   soft    nofile    65536
oracle
   hard    nofile   65536
oracle
   soft    nproc    16384
oracle
   hard    nproc    16384


C
) gcc
降级
#su – root
#mv /usr/bin/gcc /usr/bin/gcc34
#ln –s /usr/bin/gcc32 /usr/bin/gcc
#mv /usr/bin/g++ /usr/bin/g++34
#ln –s /usr/bin/g++32 /usr/bin/g++
安装完成后记得恢复后来,以防以后会用GCC
5
,安装oracle补丁

本人建议安装时先选择SOFT安装,然后用DBCANETCA建库和配置。因为as4上安装的ORACLE9204 安装同时建库用DBCA时,调用JRE有问题,你会发现建库可能一直是46%停止不动。我等了2个多小时都没有动一点,后来重新安装还是这样,后来才知道他调用JRE是用错误,应该是个BUG吧。所以建议先安装软件,以后再建立数据库。


当你从 Oracle 9iR2 光盘执行 runInstaller 时,会出现错误信息:
Error occurred during initialization of VM
Unable to load native library:
/tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386
/libjava.so symbol _libc_wait, version GLIBC_2.0 not
defined in file libc.so.6 with link time reference
为了解决 _libc_wait 符号问题,
下载补丁
compat-libcwait-2.0-2.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm.
为了应用这个补丁,可以运行:
$su – root
# cd /bak
#ls compat*.rpm
compat-libcwait-2.0-2.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm
# rpm -Uvh compat*.rpm
Preparing... ########################################### [100%]
1at-libcwait-2.0-2.i386.rpm ##################################### [ 50%]
at-oracle-rhel4-1.0-5.i386.rpm#################################### [100%]
四,开始安装oracle9iR2
(一)开始安装:
1.
oracle用户登录系统,进行Oracle的安装:
$ cd Disk1
$ ./runInstaller
过一会儿就会出现Oracle的安装界面
2.
一步一个脚印安装下去就行了!
安装过程中会提示以root用户登陆执行一些程序
3,安装完后打补丁:( 粉色情况我没有遇到)
切换到root#su – root 首先安装 opatch.
#cd /bak

#unzip p2617419_210_GENERIC.zip
Archive: p2617419_210_GENERIC.zip
creating: OPatch/
creating: OPatch/docs/
inflating: Opatch/docs/FAQ
......
inflating: README.txt
#export PATH=$PATH:/orasetup/OPatch:/sbin
(
修改PATH时要要包括解压缩出来的Opatch sbin目录)
# unzip p3238244_9204_LINUX.zip
# cd 3238244
#mkdir /var/tmp/.oracle
#chown oracle:dba /var/tmp/.oracle
# opatch apply

如果提示HOME变量错误可执行语句:
#export ORACLE_BASE=/u01/app/oracle
#export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
出现success的提示就全部安装成功.

补丁打完后,还要relinked一个.mk文件,切换到oracle用户窗口
cd $ORACLE_HOME/network/lib
make –f ins_oemagent.mk install
之后就可以启动Agent服务了.


三:因为DBCA建库是调用ORACLE本身的JRE有错误,所以本人建议自己安装一个JRE上去。

1:下载j2sdk-1_4_2_04-linux-i586-rpm.bin到服务器

2chmod +x j2sdk-1_4_2_04-linux-i586-rpm.bin

3sh j2sdk-1_4_2_04-linux-i586-rpm.bin

4:rpm  -ivh j2sdk-1_4_2_04-linux-i586.rpm

5: mv $ORACLE_HOME/JRE $ORACLE_HOME/JRE_ORIG

ln -s /usr/java/jdk1.4.2/jre     $ORACLE_HOME/JRE

su - root

ln -s /usr/java/jdk1.4.2 /jre/bin/java   /usr/java/jdk1.4.2/jre/bin/jre

ln -s /usr/java/jdk1.4.2/jre/bin/i386/native_threads/java /usr/java/jdk1.4.2/jre/bin/i386/native_threads/jre

6:su – oracle

Export  JRE_LOCATION=/usr/java/jdk1.4.2

7:dbca开始顺利建立数据库了。。。。。。。。。。。。。一切好运

 

四:配置自启动吧

1, 数据库创建完成后,修改/etc/oratab,把boss那一行最后的N改成Y,然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件:
cp /u01/app/oracle/admin/oradb/pfile/init.ora.* /u01/app/oracle/product/9.2.0/dbs/initoradb.ora
重新执行dbstart就可以了。
为了方便管理,可以写一个启动脚本ora9i
root身份进入,编写以下脚本:

#!/bin/bash
#start and stop the oracle instance
# chkconfig –level 5 --add ora9i
#chkconfig: 345 91 19
# description: starts the oracle listener and instance

export ORACLE_HOME="/u01/app/oracle/product/9.2.0.4"
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER="oracle"
export ORACLE_SID=oradb

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "oracle startup:cannot start"
exit 1
fi

case "$1" in
start)
#startup the listener and instance
echo -n "oracle startup: "
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart
touch /var/lock/subsys/oracle
echo "finished"
;;
stop)
# stop listener, apache and database
echo -n "oracle shutdown:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle
echo "finished"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: ora9i [start|stop|reload|restart]"
exit 1

esac
exit 0

存为ora9i后,然后用chmod a+x ora9,即可在以后以root身份运行/etc/rc.d/init.d/ora9i start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:chkconfig --level 3(或者是5) --add ora9i
或者以root用户执行如下命令:
#cp /orasetup/ora9i /etc/rc.d/init.d/
#chmod a+x /etc/rc.d/init.d /ora9
#cd /etc/rc.d/rc5.d
#ln -s /etc/rc.d/init.d/ora9i S99ora9i
#cd /etc/rc.d/rc0.d
#ln -s /etc/rc.d/init.d/ora9i K99ora9i
也可自启动oracle9i!
或者可在/etc/rc.d/rc.local中加入如下:
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/lsnrctl start"
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/dbstart start"

2
关于数据库删除重新安装的问题:
ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f /etc/ora*.*

 

 

 Oracle 安装出错解决方法

ORA-29807: specified operator does not exist

   在建立新的DB时会出现的错误。


    这是Oracle 的bug , 可以忽略掉,安装完成后,在$ORACLE_HOME/rdbms/admin 目录下运
行utlrp.sql ,用于修补ORA-29807 错误。


    解释

     ORA-29807: specified operator does not exist
This is a known issue (bug 2925665). You can click on the "Ignore" button to continue.
Once DBCA has completed database creation, remember to run the 'prvtxml.plb' scrīpt
from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised
to run the 'utlrp.sql' scrīpt to ensure that there are no invalid objects in the database at this time.

 

Oracle/PLSQL: ORA-01430 Error


Error:

ORA-01430: column being added already exists in table

Cause:

You tried to add a column to a table, but the column name already exists in that table.

Action:

The options to resolve this Oracle error are:

  1. Rewrite yourcommand to create a column with a unique name. Each column name must be unique within a table.


 

For example, if you had a table calledsuppliersdefined as follows:

CREATE TABLE suppliers

(

supplier_id

number

not null,

 

supplier_name

varchar2(50)

not null,

 

city

varchar2(30),

 

 

state

varchar2(2),

 

 

zip_code

varchar2(10)

);


 

And you executed the following ALTER TABLE command:

ALTER TABLE suppliers
 ADD supplier_name varchar2(50);


 

You would receive the following error message:

 


 

The column called supplier_name already exists. Each column name in your table must be unique.

8netca配置数据库 监听如果当你输入dbca命令之后在最后一步会莫名其妙的发生界面消失,并在命令行出现如下错误消息:    /oracle/product/9.2.0.1/bin/dbca: line 124: 27348 Killed $JRE_DIR/bin/jre -DORACLE_HOME=$OH -DJDBC_PROTOCOL=thin -mx64m -classpath $CLASSPATH
    oracle.sysman.assistants.dbca.Dbca $ARGUMENTS
  时,要解决这个问题,只需要执行下面命令修改dbca脚本:

    vi $ORACLE_HOME/bin/dbca
   
    从第118行开始,将第118、119、121、122、123、124共6行都用"#"符号注释掉,结果如下:
    #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
   
    修改完成之后再运行dbca重建数据库。如果这一步没有做处理,将会导致创建的数据库没有init配置文件,无法启动

 

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