ubuntu 12安装oracle,Lubuntu 12.10 桌面版安装Oracle 11g

本文详细介绍了在Ubuntu系统上安装Oracle 11g R2的步骤,包括依赖项安装、用户权限设置、目录结构调整、内核参数修改、资源限制配置等。重点讲述了安装过程中遇到的错误处理,如链接错误、编译错误和符号引用错误的解决方法。
摘要由CSDN通过智能技术生成

1、 安装依赖项

sudo apt-get install gcc make binutils libc6 libc6-dev lesstif2 rpm libmotif3  libstdc++5  libaio1 libaio-dev

2、 创 建 ORACLE 用 户

sudo addgroup oinstall

sudo addgroup dba

sudo addgroup nobody

sudo usermod -g nobody nobody

sudo useradd -g oinstall -G dba -m -d /home/oracle -s /bin/bash oracle

sudo passwd oracle

3、 创 建 ORACLE 安装目 录

sudo mkdir  /opt/oracle

sudo mkdir /opt/oraInventory

sudo chown -R oracle:oinstall /opt/oracle

sudo chown -R oracle:oinstall /opt/oraInventory

4、修改/etc/sysctl.conf,修改linux 内核参数

sudo gedit /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

运行一下命令更新内核参数

sudo sysctl -p

5、添加对oracle用户的内核限制,

sudo gedit /etc/security/limits.conf 在文件最后添加:

oracle soft nproc 2047

oracle hard nproc 16383

oracle soft nofile 1023

oracle hard nofile 65535

6、

检查/etc/pam.d/login,增加以下行(实际已有了不用增加)

session required pam_limits.so

检查/etc/pam.d/su,增加以下行(实际已有了不用增加)

session required pam_limits.so

7、因为Oracle 默认Linux 系统是Red Hat ,模仿Red Hat

创建文件的链接,使Ubuntu 的目录结构与Red Hat 一致

sudo ln -s /usr/bin/awk /bin/awk

sudo ln -s /usr/bin/rpm /bin/rpm

sudo ln -s /usr/bin/basename /bin/basename

sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64

sudo mkdir /etc/rc.d

sudo ln -s /etc/rc0.d /etc/rc.d/rc0.d

sudo ln -s /etc/rc1.d /etc/rc.d/rc1.d

sudo ln -s /etc/rc2.d /etc/rc.d/rc2.d

sudo ln -s /etc/rc3.d /etc/rc.d/rc3.d

sudo ln -s /etc/rc4.d /etc/rc.d/rc4.d

sudo ln -s /etc/rc5.d /etc/rc.d/rc5.d

sudo ln -s /etc/rc6.d /etc/rc.d/rc6.d

sudo ln -s /etc/init.d /etc/rc.d/init.d

编辑/etc/RedHat-release。

su

echo 'Red Hat Linux release 5' > /etc/redhat-release

8. Oracle用户变量

以oracle 用 户 登 录 , 进 入主目 录 ,配置 .bashrc 文件

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=testora

export ORACLE_OWNER=oracle

export ORACLE_TERM=xterm

export ORACLE_UNQNAME=testora

export ORACLE_HOSTNAME=localhost

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export LANG=en_US

9、 开 始 安装

默认情况下安装界面是乱码的,export LANG=en_US使用英文界面安装

./runInstaller

10.链接错误处理,link进度到84%报错处理

10.1 Error in invoking target 'agent nmhs' of makefile '/opt/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'

在日志中详细错误为

/usr/bin/ld: /opt/oracle/product/11.2.0/db_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol 'B_DestroyKeyObject'

以及:

Error in invoking target 'all_no_orcl' of makefile '/opt/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk'.

INFO: pt/oracle/product/11.2.0/db_1/lib/libcommon11.a(kdxd4.o): In function `kdxd4bu':

kdxd4.c:(text.hot+0x2467): undefined reference to `lnxren'

collect2: error: ld returned 1 exit status

/opt/oracle/product/11.2.0/db_1/bin/genorasdksh: Failed to link liborasdk.so.11.1

make: *** [liborasdksh] Error 1

处理方法,参考[2]:

sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

###或者打开 ins_emagent.mk文件, 找到 $(MK_EMAGENT_NMECTL) 改成 $(MK_EMAGENT_NMECTL) -lnnz11

类似编译选项错误,这里一并处处理

sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g'  $ORACLE_HOME/bin/genorasdksh    #注意正则式中有空格

sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g'  $ORACLE_HOME/rdbms/lib/env_rdbms.mk

sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1  -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk

sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl, --no-as-needed \2/g'  $ORACLE_HOME/network/lib/env_network.mk

sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g'  $ORACLE_HOME/network/lib/env_network.mk

###补充:其后才发现:Wl,与--no-as-needed之间应没有空格,这里正确的话根本不会出现下面10.3的error: unrecognized command line option '--no-as-needed'。就一个空格费了我好多时间在这上面。

10.2. INFO: gcc: error: /lib64/libgcc_s.so.1: No such file or directory

处理方法:

sudo ln  -s /opt/oracle/product/11.2.0/db_1/lib/stubs/libgcc_s.so.1 /lib64/libgcc_s.so.1

10.3.Error in invoking target 'install' of makefile '/opt/Oracle/product/11.2.0/db_1/network/lib/ins_net_server.mk'.

日志中详细出错信息:

INFO: - Linking tnslsnr

INFO: rm -f tnslsnr

INFO: gcc -o tnslsnr -m64 -L/opt/oracle/product/11.2.0/db_1/network/lib/ -L/opt/oracle/product/11.2.0/db_1/lib/ -L/opt/oracle/product/11.2.0/db_1/lib/stubs/ /opt/oracle/product/11.2.0/db_1/network/lib/s0nsgl.o /opt/oracle/product/11.2.0/db_1/network/lib/snsglp.o -Wl, --no-as-needed -lclntsh `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -l

INFO: ztkg11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -l

INFO: nls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/product/11.2.0/db_1/lib/sysliblist` -Wl,-rpath,/opt/oracle/product/11.2.0/db_1/lib -lm `cat /opt/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm -L/opt/oracle/product/11.2.0/db_1/lib -lons -lnl11 -ln11 -lnlsnr11 -lnlsnrc11 -lnsgr11 -l

INFO: nms -lncm11 -lnmsp -lpeer -lnro11 -ln11 -lnl11 -lnlsnr11 -lnlsnrc11 -lnms -lncm11 -lnmsp -ln11 -lm

INFO: gcc: error: unrecognized command line option '--no-as-needed'

INFO: make: *** [tnslsnr] Error 1

或:

INFO: - Linking tnslsnr

rm -f tnslsnr

INFO: gcc -o tnslsnr -m64 -L/opt/oracle/product/11.2.0/db_1/network/lib/ -L/opt/oracle/product/11.2.0/db_1/lib/ -L/opt/oracle/product/11.2.0/db_1/lib/stubs/ /opt/oracle/product/11.2.0/db_1/network/lib/s0nsgl.o /opt/oracle/product/11.2.0/db_1/network/lib/snsglp.o -lclntsh `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lztkg11 -lclient11 -l

INFO: nnetd11 -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore

INFO: 11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11 -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/product/11.2.0/db_1/lib/sysliblist` -Wl,-rpath,/opt/oracle/product/11.2.0/db_1/lib -lm `cat /opt/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm -L/opt/oracle/product/11.2.0/db_1/lib -lons -lnl11 -ln11 -lnlsnr11 -lnlsnrc11 -lnsgr11 -lnms -lncm11 -lnmsp -

INFO: lpeer -lnro11 -ln11 -lnl11 -lnlsnr11 -lnlsnrc11 -lnms -lncm11 -lnmsp -ln11 -lm

INFO: /opt/oracle/product/11.2.0/db_1/network/lib//libnlsnr11.a(nsglsn.o): In function `nsglonsterm':

nsglsn.c:(.text+0xc29): undefined reference to `ons_subscriber_close'

nsglsn.c:(.text+0xc3b): undefined reference to `ons_shutdown_nowait'

/opt/oracle/product/11.2.0/db_1/network/lib//libnlsnr11.a(nsglsn.o): In function `nsglma':

nsglsn.c:(.text+0x1ffb): undefined reference to `ons_subscriber_receive'

nsglsn.c:(.text+0x251d): undefined reference to `ons_notification_body'

nsglsn.c:(.text+0x2a4b): undefined refere

INFO: nce to `ons_subscriber_relinquish'

nsglsn.c:(.text+0x2a62): undefined reference to `ons_subscriber_receive'

/opt/oracle/product/11.2.0/db_1/network/lib//libnlsnr11.a(nsglsn.o): In function `nsglonsinit':

nsglsn.c:(.text+0x2d43c): undefined reference to `ons_init'

nsglsn.c:(.text+0x2d457): undefined reference to `ons_subscriber_create_async'

nsglsn.c:(.text+0x2d473): undefined reference to `ons_subscriber_status'

nsglsn.c:(.text+0x2dc94): undefined reference to `ons_shutdown_nowait'

nsglsn.c:(.text+0x2e1d8):

INFO: undefined reference to `ons_init_woraclehome'

/opt/oracle/product/11.2.0/db_1/network/lib//libnlsnr11.a(nsgcs.o): In function `nsgcsss':

nsgcs.c:(.text+0x58c): undefined reference to `ons_subscriber_status'

collect2: error: ld returned 1 exit status

INFO: make: *** [tnslsnr] Error 1

--****************

处理方法:

1.手工编译上面出错的gcc命令,修改了编译选项如下

gcc -o tnslsnr -m64 -L/opt/Oracle/product/11.2.0/db_1/network/lib/ -L/opt/oracle/product/11.2.0/db_1/lib/ -L/opt/oracle/product/11.2.0/db_1/lib/stubs/  /opt/oracle/product/11.2.0/db_1/network/lib/s0nsgl.o /opt/oracle/product/11.2.0/db_1/network/lib/snsglp.o -lclntsh  `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags`  -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lztkg11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /opt/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11  -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11 -lsnls11 -lnls11  -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11  `cat /opt/oracle/product/11.2.0/db_1/lib/sysliblist` -Wl,-rpath,/opt/oracle/product/11.2.0/db_1/lib,-rpath,/opt/oracle/product/11.2.0/db_1/network/lib/ -lm    `cat /opt/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm  -L/opt/oracle/product/11.2.0/db_1/lib -lnl11  -ln11 -lnlsnr11 -lnlsnrc11 -lnsgr11 -lnms -lncm11 -lnmsp -lpeer -lnro11 -ln11  -lnl11 -lnlsnr11 -lnlsnrc11 -lnms -lncm11 -lnmsp -ln11    -lm -leons

如果上面通过,会以所在目录生成tnslsnr可执行文件,以后拷到$ORACLE_HOME/bin/

2.修改ins_net_server.mk文件,注释掉tnslsnr的生成以及itnslsnr: tnslsnr改为itnslsnr:

gedit /opt/oracle/product/11.2.0/db_1/network/lib/ins_net_server.mk

#tnslsnr: $(S0NSGL) $(SNSGLP) $(NSGLPNP)

#      $(SILENT)$(ECHO) " - Linking $(TNSLSNR)"

#      $(RMF) $@

#      $(TNSLSNR_LINKLINE)

#itnslsnr: tnslsnr

itnslsnr:

重试继续后[3]中说又有错误INFO: /database/app/oracle/product/11.2.0/dbhome_1/lib//libocrutl11.so: undefined reference to `lfifcp'

但实际我未出现。

31238650_1.jpg

附:常用工具

dbca

netca,netmgr

lsnrctl

sqlplus

emctl start|stop dbconsole

重新配置dbconsole的步骤

emca -repos drop

emca -repos create

emca -config dbcontrol db

emctl start dbconsole

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值