第一部分: Red Hat Enterprise Advanced Server 3.0 安装
一. 软件准备
1、 Red Hat Enterprise Linux Advanced Server 3.0的四个安装文件。
2、 如果everything 安装,那么不用另外安装其他的包,如果使用Server Assistant
CD来安装系统 , 可能有些服务或应用没有被安装到Linux系统中,需要手动重新安装,比如我们使用DELL 安装引导CD8.3 安装后telnet 没有被安装到服务中,需要安装第三张CD中的telnet-server-0.17-26.i386.rpm包和第二张CD中的telnet-0.17-26.i386.rpm 。
# rpm –ivh telnet-server-0.17-26.i386.rpm
# rpm –ivh telnet-0.17-26.i386.rpm 如果缺其他包,可以使用类似方法。
3、 安装时swap分区设置为内存的二倍。不要采用DHCP设置主机名和IP地址,而是“手工设置"。否则会在安装oracle的时候出现如下错误: Thrown when the IP address of a host cannot be determined 出现这个错误将使Oracle不能安装成功。安装RHAS3,可以刻录到光盘安装,也可以从硬盘安装,从硬盘安装RHAS3, 请参考: http://bbs.chinaunix.net/forum/viewtopic.php?p=2416942#2416942 . 注意: Server上两块网卡设置同一个网段的ip地址可能需要调整才能使用 。
二.Linux安装设置 1、系统要求:内存最低256(我们基本是2G或4G),建议大于512M,硬盘空间至少4G,如果Oracle安装文件存在硬盘,建议5G(在安装操作系统后的剩余空间)。 可以查看内存的大小,用到的命令是:grep MemTotal /proc/meminfo swap分区在安装操作系统的时候就设定好了,为内存的2倍,当内存达到1G以上时,和内存大小相同就可以了啊。 看交换分区命令是: /sbin/swapon -s
2.其他系统盘大小分配按照具体的server的磁盘大小定义。一般设置:
/ (root) 2048M
/boot 256M
swap 内存的两倍,这里我们设置 2047 M .
/usr 5120M , 如果安装9i RAC,可能需要扩大一些 。
/home 2048M
/tmp 2048M
/u01 RAID1中的其他部分给/u01, 用于oracle软件的安装和部分数据文件的
存放 .
3、检查是否安装以下包: [quote:864939f94a]#su - root #rpm -qa|grep compat compat-db-4.0.14-5.i386 compat-gcc-7.3-2.96.122.i386 compat-gcc-c++-7.3-2.96.122.i386 compat-libstdc++-7.3-2.96.122.i386 compat-libstdc++-devel-7.3-2.96.122.i386 #rpm -qa|grep openmotif21 openmotif21-2.1.30-8.i386 #rpm -qa|grep setarch setarch-1.3-1.i386 #rpm -qa|grep tcl tcl-8.3.5-92.i386 [/quote:864939f94a] 上面显示的内容是已经安装了具体的RPM包之后的结果。它们对应的软件包是:[quote:864939f94a] , 注意包的依赖关系及安装顺序 。 #rpm –ivh compat-db-4.0.14-5.i386.rpm #rpm –ivh compat-gcc-7.3-2.96.122.i386.rpm
#rpm –ivh compat-libstdc++-devel-7.3-2.96.122.i386.rpm #rpm –ivh compat-gcc-c++-7.3-2.96.122.i386.rpm #rpm –ivh compat-libstdc++-7.3-2.96.122.i386.rpm #rpm –ivh openmotif21-2.1.30-8.i386.rpm #rpm –ivh setarch-1.3-1.i386.rpm #rpm –ivh tcl-8.3.5-92.i386.rpm 一般情况下,你的系统上的输出结果和这个不同。如果个别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包: # rpm -ivh compat.....rpm 当然也可以用命令来挂载iso文件 。 mount -o loop /mnt/e/rhas3/rhel-3-i386-as-disc3.iso /mnt/cdrom 还需要将gcc、g++更换为2.96的版本. 方法如下:
#su - root mv /usr/bin/gcc /usr/bin/gcc323 ln -s /usr/bin/gcc296 /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g++323 # if g++ doesn't exist, then gcc-c++ was not installed ln -s /usr/bin/g++296 /usr/bin/g++
4、设置内核参数: 这个版本的默认的glibc 很合适,免去了不少麻烦。 用grep MemTotal /proc/meminfo查看内存总量 出现 MemTotal XXXXXKB,其中的XXXXX就是内存总量。 修改两个文件,如下: #vi /etc/sysctl.conf 加入: kernel.shmmax = 1024000000 ,一般为物理内存的一半,切换到字节。要是超过这个值,在运行dbca时会出现Ora-27123:Unable to attach to shared memeroy segment) 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 命令使得内核改变立即生效。 #vi /etc/security/limits.conf 加入: oracle hard nofile 65536 oracle soft nofile 65536 oracle hard nproc 16384 oracle soft nproc 16384
第二部分: Linux AS3.0 上安装Oracle9.2.0.4
1、建立用户、设置环境变量
建立用户的命令是以root用户运行的。 #groupadd oper
#groupadd dba #useradd -g dba –G oper oracle #passwd oracle 设置环境变量: 以oracle用户登录, $ vi $HOME/.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:/bin:/sbin:/usr/bin:/usr/sbin:.
BASH_ENV=$HOME/.bashrc
export BASH_ENV PATH
unset USERNAME
# Set Oracle Environment
ORACLE_HOME=/u01/product/oracle;export ORACLE_HOME
ORACLE_SID=tpc;export ORACLE_SID
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_BASE=/u01/product;export ORACLE_BASE
ORACLE_TERM=vt100;export ORACLE_TERM
#NLS_LANG='traditional chinese_taiwan'.ZHT16BIG5;export NLS_LANG
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
set -u
PS1=`hostname`'$';export PS1
EDITOR=/bin/vi; export EDITOR
JAVA_HOME=/usr/local/java;export JAVA_HOME
ORA_NLS33=/u01/product/oracle/ocommon/nls/admin/data;export ORA_NLS33
CLASSPATH=/u01/product/oracle/jdbc/lib/classesl11.zip:/usr/local/java;
export DISPLAY=127.0.0.1:0.0
export LD_ASSUME_KERNEL=2.4.1
PATH=$ORACLE_HOME/bin:$JAVA_HOME/bin:$PATH:.;export PATH
alias ll='ls -l';
alias ls='ls --color';
alias his='history';
#. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
#rq=`date`
#echo "please enter your name:"
#read name
# echo "hello $name, now time is $rq, welcome to linux AS3.0 system, please EXIT the system when you left,thank you. PCEG-IT-SYS.DBA TEL: 21686 "
#echo "#"
echo "please choose a oracle sid: 1):tpc default:tpc"
read ans
case $ans in
1)
ORACLE_SID=tpc; export ORACLE_SID;;
*)
ORACLE_SID=tpc; export ORACLE_SID;;
Esac
然后注销重新登录,用set|more查看环境变量是否生效。
#chown -R oracle.dba /u01 #chmod 755 /u01
这时ORACLE_BASE的值就是/u01/product 。
2、开始安装 从 http://www.oracle.com 下载三个安装文件, ship_9204_linux_disk1.cpio.gz ship_9204_linux_disk2.cpio.gz ship_9204_linux_disk3.cpio.gz 用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 生成三个文件夹Disk1,Disk2,Disk3; 你也可以用gunzip ship_9204_linux_disk1.cpio.gz
cpio -idmv 进入Disk1目录运行runInstaller之前,注意两点: a、安装p3006854_9204_LINUX.zip补丁,否则会出现如下错误: 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 从 http://metalink.oracle.com 下载p3006854_9204_LINUX.zip补丁。安装此补丁的方法:
su - root # unzip p3006854_9204_LINUX.zip Archive: p3006854_9204_LINUX.zip creating: 3006854/ inflating: 3006854/rhel3_pre_install.sh inflating: 3006854/README.txt # cd 3006854 # sh rhel3_pre_install.sh Applying patch... Patch successfully applied
注意:如果运行 rhel3_pre_install.sh出现下面的错误 rhel3_pre_install.sh: line 36: gcc: command not found 是因为你忘了安装gcc,同样要是出现下面的错误: # ls
s: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory # rm /etc/ld.so.preload
rm: error while loading shared libraries: /etc/libcwait.so: cannot open shared object file: No such file or directory # 请不要退出bash,用下面的方法来修复(我开始遇到,后来没有遇到了,可能是因为我把gcc降级到了296吧)
# echo "" > /etc/ld.so.preload rm /etc/ld.so.preload And start over again. 现在运行./runInstaller &(必须进入到Disk1目录,或者从光盘运行,从光盘安装不要进入/mnt/cdrom后运行runInstaller,而是这样运行./mnt/cdrom/runInstaller) 呵呵,高兴了吧,期待以久的GUI界面终于出来了啊。这是欢迎界面。显示了Oracle安装的源文件所在目录,还有要安装到的产品目录。我们点“Next”; 接着出现的下一个界面是Inventory路径,我们点“Next”; 现在要求用户输入UNIX组名,我们用Oracle用户所在的组“dba” ,点“Next”,如果你是第一次安装Oracle产品,则要你运行一个sh文件。文件是/tmp/orainstRoot.sh,我们打开一个shell窗口,切换到root用户,如下: su root sh /tmp/orainstRoot.sh 运行完毕我们返回Oracle安装界面,点“Continue”; 选择文件存放的目录,我们选择默认值。然后“Next”; 安装的产品是“Oracle9i Database 9.2.0.4.0”,点“Next”; 一般使用custom 安装,选取所需要的组件,安装。
不需要建立数据库 。
出现安装组件的选择结果,这时点“Install”,开始安装,复制文件,进度条在一点一点的增加,当安装并link完后,出现配置工具界面,agent服务不能配置成功,忽略不用管,在下面修复。DBCA,NETCA,HTTP都正确配置完毕哦。呵呵。下面开始修复错误。其实要是把各个界面抓取下来就更好了。
7、安装p3238244_9204_LINUX.zip补丁 此补丁也是从http://metalink.oracle.com 下下载,同时要下载一个opatch软件包:p2617419_220_GENERIC.zip,它主要是用来修复agent服务不能启动的错误。 过程如下:
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 $ unzip p3238244_9204_LINUX.zip
$ cd 3238244 $ opatch apply 补丁修复完成,需要relinked一个.mk文件。 $ cd $ORACLE_HOME/network/lib $ make -f ins_oemagent.mk install 现在在运行agentctl start,看是不是可以成功运行agent服务了啊,可以用stop、status来停止此服务或者检查服务的状态。 在这个成功之后,居然不能启动Oracle,说是不能找到初始化文件,没办法,我用dbca先删除了原来安装时建立的库,再重新建立了数据库。
第三部分: Oracle9.2.0.4 升级到Oracle9.2.0.5 (如果觉得没有必要,这一步可以忽略)
升级前需要认真考虑是否需要升级,因为不同版本的数据库做Standby可能存在问题 。
1. 检查oracle用户下的环境变量,ORACLE_HOME, ORACLE_SID等 。
2. 在 http://metalink.oracle.com 下载9205 patch set , 文件名称:p3501955_9205_LINUX.zip 。
3. 解压文件 # gunzip p3501955_9205_LINUX.zip
4. cpio -idmv <9205_lnx32_release.cpio
5. 关闭存在的实例及监听器,agent (如:agentctl stop) 及其它的process .
6. 使用Oracle Universal Installer Release 10.1.0.2安装patch set,如果Oracle Universal Installer was installed with the base release of Oracle9i,那么需要建立以下的链接(我们直接安装oracle9204,需要有这个链接):
$ cd $ORACLE_BASE/oui/bin/linux
$ ln –s libclntsh.so.9.0 libclntsh.so ,
然后到 patchset 的解压目录查找runInstaller , $ cd /u01/packages/Disk1/ 下,如果是安装9205 cluster manager patch set , 那么需要运行/u01/packages/Disk1/oracm/runInstaller .
7. 开始安装: $./runInstaller 开始看到欢迎界面,显示File Locations screen 。 注意查看是否是Oracle Universal Installer Release 10.1.0.2,点击 about Oracle Universal Installer 就可以看到了。
8. 还有file location 的page第一项是安装产品的全路径: /u01/packages/Disk1/stage/products.xml , 第二个空格填入oracle主目录的名称( OUIHome ) , 第三个空格填入oracle主目录的全路径 : /u01/product/oracle (按照 .bash_profile 中设置的)。
9. Next,如果是Oracle Universal Installer was installed with the base release of Oracle9i ,那么我们需要首先安装Oralce9.2.0.5 组件中的Oracle Universal Installer 10.1.0.2 , 然后再安装oracle9205 database 组件 。安装过程没有任何错误出现,如果有,一定是前面做的有问题 。
第四部分: 利用DBCA建立数据库
建立资料库的时候在最后安装部分可能报一些错,比如 ORA-29807 , 这是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' script. from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised to run the 'utlrp.sql' script. to ensure that there are no invalid objects in the database at this time.
参考文章 :
http://www.chinaunix.net/jh/19/363433.html
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-561541/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-561541/