bigfrog的空间

64位gentoo,oracle 10g的安装

64位gentoo,oracle 10g的安装{{{1

1.安装环境{{{2
gentoo x86_64
kernel 2.6.32_r2
oracle 10g 10.2.0.1 x86_64

2.解压缩oracle cpio文件{{{2
emerge cpio
执行 cpio -idmv < *.cpio

3.系统准备步骤{{{2

3.1硬件要求{{{3
physical memery 512m
swap space 1g 如果内存够大,这个不是必要的,我的内存是2g,swap只是512m
disk space in /tmp 400m+
disk space for software 2.5G
disk space for database files 1G 看你自己的需要

3.2系统参数调整{{{3
调整内核参数,修改/etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

执行sysctl -p

修改/etc/security/limits.conf
添加
oracle soft nofile 4096
oracle hard nofile 65536

3.3安装oracle需要的包{{{3
emerge libaio
确认你系统的gcc在3.4以上

4.建立oracle用户和组{{{2
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba -d /opt/oracle oracle
如果你的oracle安装在/opt/oracle下,首先用root建立这个目录,并修改所属用户。
chown oracle:oinstall /opt/oracle

5.配置环境{{{2
在gentoo中,可以把ORACLE_HOME之类的放到env.d中,也可以放到/etc/profile中
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/10.1.0.3
ORACLE_SID='YOURSID' 这个是你的sid
ORACLE_TERM=xterm
ORACLE_OWNER=oracle
TNS_ADMIN=/opt/oracle/product/10.1.0.3/network/admin
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
ORA_NLS10=/opt/oracle/product/10.1.0.3/nls/data
CLASSPATH=/opt/oracle/product/10.1.0.3/jdbc/lib/classes12.zip
LD_LIBRARY_PATH=/opt/oracle/product/10.1.0.3/lib:/opt/oracle/product/10.1.0.3/lib32
DISABLE_HUGETLBFS=1
PATH=/opt/oracle/product/10.1.0.3/bin
ROOTPATH=/opt/oracle/product/10.1.0.3/bin
LDPATH=/opt/oracle/product/10.1.0.3/lib:/opt/oracle/product/10.1.0.3/lib32
TZ=GMT
这个需要根据你自己的环境修改
执行env-update ; source /etc/profile

6.安装oracle{{{2
xhost +
export DISPLAY=:0.0
./runInstaller -ignoreSysPrereqs
我没有成功,只要用oracle用户登录进去后执行。
安装过程中,记住不要create database,如果link有错误,全部ignore。我们在后面会重新relink他们的。

7.给你安装的oracle打补丁。{{{2
$ORACLE_HOME/bin/relink的补丁
---这个补丁的前面,if [ x$...这个部分,视oracle 10g的版本而定。我用的版本是内容是if [ x${ORACLE_HOME} = x -o ${ORACLE_HOME} = "" ];我就没有改。
--- relink.org 2005-01-12 18:05:59.061221392 -0500
+++ relink 2005-01-12 18:11:58.346601712 -0500
@@ -56,7 +56,7 @@
#-----------------------------
# make sure ORACLE_HOME is set

-if [ x${ORACLE_HOME} = x ] -o [ ${ORACLE_HOME} = "" ];
+if [ x${ORACLE_HOME} = "x" ];
then
echo "ORACLE_HOME is either unset or empty."
exit 1
@@ -75,7 +75,7 @@
ARGUMENTS=""
USAGE="usage:"n"t$SCRIPTNAME $ARGUMENTS"
HELPMESG=""nparameters: all, oracle, network, client, client_sharedlib,"
- interMedia,"n"tctx, precomp, utilities, oemagent, ldap"
+ interMedia,"n"tctx, precomp, utilities, sqlplus, ldap"

if [ $# -ne 1 ];
then
@@ -89,10 +89,10 @@
#---------------------------
# check for valid parameter

-if [ $1 != "all" -a $1 != "oracle" -a $1 != "client" -a"
+if [ $1 != "all" -a $1 != "oracle" -a $1 != "sqlplus" -a $1 != "client" -a"
$1 != "client_sharedlib" -a $1 != "network" -a $1 != "interMedia" -a"
$1 != "ctx" -a $1 != "precomp" -a $1 != "utilities" -a"
- $1 != "oemagent" -a $1 != "ldap" ] ; then
+ $1 != "ldap" ] ; then
echo "No valid parameter"
echo $HELPMESG
exit 1
@@ -196,8 +196,6 @@
files="$ORACLE_HOME/rdbms/lib/ins_rdbms.mk" ;;
sqlplus)
files="$ORACLE_HOME/sqlplus/lib/ins_sqlplus.mk" ;;
- oemagent)
- files="$ORACLE_HOME/sysman/lib/ins_sysman.mk" ;;
ldap)
files="$ORACLE_HOME/ldap/lib/ins_ldap.mk" ;;
all)
@@ -291,9 +289,9 @@
cleanup
}

-oemagent () {
- call_make $param "install"
- cleanup
+sqlplus () {
+ call_make $param "install"
+ cleanup
}

all () {
----

$ORACLE_HOME/rdbms/lib/env_rdbms.mk的补丁
这个补丁也是视版本而定,主要是去掉$(IEXTPROC32) 这句就行,其他的内容不同的10g中,有些出入。
--- env_rdbms.mk.org 2005-01-13 18:41:23.000000000 -0500
+++ env_rdbms.mk 2005-01-13 18:43:41.000000000 -0500
@@ -2412,10 +2412,10 @@
KSMS=$(ORACLE_HOME)/rdbms/lib/ksms.o

INSTALL_TARGS=clean idbv itstshm imaxmem iorapwd idbfsize idumpsga"
- imapsga icursize iextproc $(IEXTPROC32) iagtctl ihsalloci ihsots ihsdepxa isbttest"
+ imapsga icursize iextproc ihsalloci ihsots ihsdepxa isbttest"
ikgmgr iloadpsp idgmgrl $(IHSO) inid iextjobo iextjob ikfod
ITEST=ioracle idbv itstshm imaxmem iorapwd idbfsize icursize "
- iextproc $(IEXTPROC32) ihsalloci ihsots ihsdepxa iosh isbttest iexp iimp isqlldr "
+ iextproc ihsalloci ihsots ihsdepxa iosh isbttest iexp iimp isqlldr "
irman iexpst iimpst isqlldrst ikgmgr iloadpsp idgmgrl $(IHSO) $(ITG4) "
inid iexpdp iimpdp iextjobo iextjob ikfod
IUTILITIES=iimp iexp isqlldr itkprof irman ikgmgr iloadpsp iimpdp iexpdp igenezi

$ORACLE_HOME/rdbms/lib/ins_rdbms.mk的补丁
去掉-iextproc32:这几行
--- ins_rdbms.mk.org 2005-01-13 18:38:24.000000000 -0500
+++ ins_rdbms.mk 2005-01-13 18:40:33.000000000 -0500
@@ -125,11 +125,6 @@
-mv $(ORACLE_HOME)/rdbms/lib/extproc $(ORACLE_HOME)/bin/extproc
-chmod 751 $(ORACLE_HOME)/bin/extproc

-iextproc32: extproc32
- -mv -f $(ORACLE_HOME)/bin/extproc32 $(ORACLE_HOME)/bin/extproc32O
- -mv $(ORACLE_HOME)/rdbms/lib/extproc32 $(ORACLE_HOME)/bin/extproc32
- -chmod 751 $(ORACLE_HOME)/bin/extproc32
-
iagtctl: $(AGTCTL)
-mv -f $(ORACLE_HOME)/bin/agtctl $(ORACLE_HOME)/bin/agtctlO
-mv $(ORACLE_HOME)/rdbms/lib/agtctl $(ORACLE_HOME)/bin/agtctl

8.relink oracle{{{2
到$ORACLE_HOME/bin下,执行relink,可以看到可以relink的所有。
重新relink oracle sqlplus ......
执行root.sh

9.使用dbca创建数据库{{{2
图形界面,就不说了吧。说说可能碰到的两个错误。
error1 cannot found /etc/oratab,这个错误是你没有执行root.sh发生的。
error2 connot open share memery.这个错误是DISABLE_HUGETLBFS=1(2.6内核下)没有启作用。
可以这样解决,将bin下oracle mv成oracle.bin,touch oracle ;echo "#!/bin/sh export DISABLE_HUGETLBFS=1 oracle.bin",chomd +x oracle,再次执行dbca即可。

10.参考资料{{{2
http://en.gentoo-wiki.com/wiki/Oracle_10g

posted on 2010-01-29 11:33 bigfrog 阅读(778) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: