搜索
首页数据库mysql教程Ubuntu12.04(32位)安装Oracle 11g(32位)全过程

Ubuntu12.04 ( 32 位)安装 Oracle11g ( 32 位)全过程 1. 将系统更新到最新: sudo apt-get update sudo apt-get dist-upgrade 2. 安装 Oracle 所需的依赖包: sudo apt-get install automake sudo apt-get install autotools-dev sudo apt-get install b

Ubuntu12.0432位)安装Oracle11g32位)全过程


1.将系统更新到最新:

sudo apt-get update
sudo apt-get dist-upgrade


2.安装Oracle所需的依赖包:

sudo apt-get install automake

sudo apt-get install autotools-dev
sudo apt-get install binutils
sudo apt-get install bzip2
sudo apt-get install elfutils
sudo apt-get install expat
sudo apt-get install gawk
sudo apt-get install gcc
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
sudo apt-get install ia32-libs
sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install lesstif2
sudo apt-get install lesstif2-dev
sudo apt-get install lib32z1
sudo apt-get install libaio1
sudo apt-get install libaio-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6-dev-i386
sudo apt-get install libc6-i386
sudo apt-get install libelf-dev
sudo apt-get install libltdl-dev
sudo apt-get install libmotif4
sudo apt-get install libodbcinstq4-1libodbcinstq4-1:i386
sudo apt-get install libpth-dev
sudo apt-get install libpthread-stubs0
sudo apt-get installlibpthread-stubs0-dev
sudo apt-get install libstdc++5
sudo apt-get install lsb-cxx
sudo apt-get install make
sudo apt-get install openssh-server
sudo apt-get install pdksh
sudo apt-get install rlwrap
sudo apt-get install rpm
sudo apt-get installsysstat
sudo apt-get install unixodbc
sudo apt-get installunixodbc-dev
sudo apt-get install unzip
sudo apt-get installx11-utils
sudo apt-get install zlibc

很多都是Ubuntu已经自带的了,谨慎起见都执行一遍吧。


3.检查系统变量

/sbin/sysctl-a | grep sem

/sbin/sysctl-a | grep shm

/sbin/sysctl-a | grep file-max

/sbin/sysctl-a | grep aio-max

/sbin/sysctl-a | grep ip_local_port_range

/sbin/sysctl-a | grep rmem_default

/sbin/sysctl-a | grep rmem_max

/sbin/sysctl-a | grep wmem_default

/sbin/sysctl-a | grep wmem_max


然后根据上面命令中得到的参数值在/etc/sysctl.conf中增加对应数据,比如:
fs.aio-max-nr= 1048576
fs.file-max = 6815744
kernel.shmall =2097152kernel.shmmax = 536870912
kernel.shmmni = 4096kernel.sem =250 32000 100 128

net.ipv4.ip_local_port_range= 9000 65500

net.core.rmem_default= 262144

net.core.rmem_max= 4194304

net.core.wmem_default= 262144
net.core.wmem_max = 1048586


运行一下命令更新内核参数:
sysctl –p


4.添加对当前用户(假如用户名是zhs)用户的内核限制在/etc/security/limits.conf文件中增加以下数据
zhs soft nproc 2047

zhs hard nproc 16384

zhs soft nofile 1024

zhs hard nofile 65536

zhs soft stack 10240


5.查看/etc/pam.d/login,增加以下行(有了就不用增加了):

session required pam_limits.so
同样检查/etc/pam.d/su,没有以下行就自己加上:

session required pam_limits.so


6.创建需要的文件夹(用于安装oracle)并设置其所有权:
sudo mkdir -p /opt/oracle
sudo mkdir -p /opt/oraInventory

sudo chown -R zhs:zhs /opt/oracle

sudo chown -R zhs:zhs /opt/oraInventory

后两步中,第一个zhs代表当前用户,第二个zhs代表当前用户所在的组,linux用户通常属于好几个组,其中有一个组名和用户名相同。这两步可能可以不用执行,因为那两个目录本身就是zhs创建的。


7.安装JRE环境

如果Ubuntu上没安装JRE的话,需要安装JRE(我这里直接安装了JDK,以JDK为例):

Oracle官网下载JDK6(考虑到兼容性问题,安装6):

下载jdk-6u45-linux-i586.bin这个文件。放到主文件夹(home目录)下,进入终端:

$sudo chmod 777 jdk-6u37-linux-x64.bin //将文件赋予运行权限

$sudo -s ./jdk-6u37-linux-x64.bin /usr/lib/jdk //JDK安装到/usr/lib/jdk目录下。

注意:最后安装完成后可能安装到了主文件夹下了,这是使用命令将其全部复制到/usr/lib/jdk目录下即可。(如果没有权限,就使用sudochmod 777获取权限再复制)

配置JDK的环境变量,使用编辑器打开主文件夹下的.bashrc配置文件(隐藏),向其中加入如下内容:

#JDK
JAVA_HOME=/usr/lib/jdk/jdk1.6.0_45
JRE_HOME=${JAVA_HOME}/jre
export ANDROID_JAVA_HOME=$JAVA_HOME
export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export JAVA_HOME;
export JRE_HOME;
export CLASSPATH;
HOME_BIN=~/bin/
export PATH=${PATH}:${JAVA_PATH}:${HOME_BIN};

注意核对一下目录结构是不是正确的。

接着使新设的环境变量生效,在终端执行命令:source.bashrc

最后验证JDK是否安装正确:

java -version

出现了JDK版本信息就表示正确了。


8.Oracle配置环境变量。同样在主文件夹下的.bashrc配置文件中加入如下内容:

#Oracle
#
这个写刚刚创建的文件夹
export ORACLE_BASE=/opt/oracle 
#
这个后面可以随便填写
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#
数据库的sid
export ORACLE_SID=orcl

export ORACLE_UNQNAME=orcl
#
默认字符集
export NLS_LANG=.AL32UTF8
#
环境变量
export PATH=${PATH}:${ORACLE_HOME}/bin/;


接着使新设的环境变量生效,在终端执行命令:source.bashrc


9.oracle本身并不支持ubuntu来安装,所以要进行欺骗oracle的安装程序(sudo执行):

ln -s /etc /etc/rc.d

ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/

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

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

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

ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a/usr/lib/libpthread_nonshared.a

ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a/usr/lib/libc_nonshared.a
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /lib/

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /lib/

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib/


sudo touch /etc/redhat-release
sudo echo ‘Red Hat Linux release 5’> /etc/redhat-release


因为Ubuntu将某些库文件根据32位系统和64位系统分别存放了,但Oracle只认/usr/lib/lib目录,所以需要进行上面的软链接。


10.下载32(x86)Oraclefor Linux安装程序,解压后得到database文件夹


11.在终端设置语言环境

export LANG=en_US或者exportLANG=zh_CN.gbk

这一步如果不设的话,Oracle安装程序的启动界面可能会出现乱码。


12.database文件夹下的runInstaller文件赋予可执行权限:

sudo chmod 777 runInstaller

跳转到database目录,在终端下执行:

./runInstaller


13.出现填写电邮地址的界面,电邮地址不要填写且复选框不要勾选,点击“下一步”按钮。弹出带叉号标志的提示点击“YES”按钮后就可进入下一步。


14.剩下的过程基本上很顺利了,只需要设置一下密码就行了,其他的设置都在启动安装程序前完成了,不要进行改动!


15.图形界面下进行依赖检查的时候会列出很多依赖检查失败了,无法进入下一步了,此时选中右上角的“忽略所有”就可以进入下一步了。


16.安装的过程会出现两个错误(接近70%的时候)

第一个错误:

Errorin invoking target 'agent nmhs' of makefile'opt/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. See'/opt/oraInventory/logs/installActions2014-08-09_03-15-56AM.log' fordetails.


解决方法:

打开一个新的终端,输入如下命令:

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

然后在图形界面点击‘Retry’就能继续安装了。


第二个错误:

Errorin invoking target 'all_no_orcl' of makefile'/opt/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk'. See'/opt/oraInventory/logs/installActions2014-08-09_03-16-32AM.log' fordetails.


解决方法:

在新终端中输入如下四个命令:

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/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1-Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk

sed-i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g'$ORACLE_HOME/bin/genorasdksh

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

然后在图形界面点击‘Retry’就能继续安装了。

下面的安装过程就没有什么问题了。


17.最后应该就顺利完成了,按照安装程序提示最后执行两个脚本:

sudo /opt/oraInventory/orainstRoot.sh
sudo /opt/oracle/product/11.2.0/dbhome_1/root.sh

就完成了全部的安装。




注:本人用ubuntu12.0412.10,按照此方法装oracle都成功了

参考资料:http://blog.csdn.net/idber/article/details/9039857



声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL的许可与其他数据库系统相比如何?MySQL的许可与其他数据库系统相比如何?Apr 25, 2025 am 12:26 AM

MySQL使用的是GPL许可证。1)GPL许可证允许自由使用、修改和分发MySQL,但修改后的分发需遵循GPL。2)商业许可证可避免公开修改,适合需要保密的商业应用。

您什么时候选择InnoDB而不是Myisam,反之亦然?您什么时候选择InnoDB而不是Myisam,反之亦然?Apr 25, 2025 am 12:22 AM

选择InnoDB而不是MyISAM的情况包括:1)需要事务支持,2)高并发环境,3)需要高数据一致性;反之,选择MyISAM的情况包括:1)主要是读操作,2)不需要事务支持。InnoDB适合需要高数据一致性和事务处理的应用,如电商平台,而MyISAM适合读密集型且无需事务的应用,如博客系统。

在MySQL中解释外键的目的。在MySQL中解释外键的目的。Apr 25, 2025 am 12:17 AM

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

MySQL中有哪些不同类型的索引?MySQL中有哪些不同类型的索引?Apr 25, 2025 am 12:12 AM

MySQL中有四种主要的索引类型:B-Tree索引、哈希索引、全文索引和空间索引。1.B-Tree索引适用于范围查询、排序和分组,适合在employees表的name列上创建。2.哈希索引适用于等值查询,适合在MEMORY存储引擎的hash_table表的id列上创建。3.全文索引用于文本搜索,适合在articles表的content列上创建。4.空间索引用于地理空间查询,适合在locations表的geom列上创建。

您如何在MySQL中创建索引?您如何在MySQL中创建索引?Apr 25, 2025 am 12:06 AM

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL与Sqlite有何不同?MySQL与Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要区别在于设计理念和使用场景:1.MySQL适用于大型应用和企业级解决方案,支持高性能和高并发;2.SQLite适合移动应用和桌面软件,轻量级且易于嵌入。

MySQL中的索引是什么?它们如何提高性能?MySQL中的索引是什么?它们如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是数据库表中一列或多列的有序结构,用于加速数据检索。1)索引通过减少扫描数据量提升查询速度。2)B-Tree索引利用平衡树结构,适合范围查询和排序。3)创建索引使用CREATEINDEX语句,如CREATEINDEXidx_customer_idONorders(customer_id)。4)复合索引可优化多列查询,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。5)使用EXPLAIN分析查询计划,避

说明如何使用MySQL中的交易来确保数据一致性。说明如何使用MySQL中的交易来确保数据一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事务可以确保数据一致性。1)通过STARTTRANSACTION开始事务,执行SQL操作后用COMMIT提交或ROLLBACK回滚。2)使用SAVEPOINT可以设置保存点,允许部分回滚。3)性能优化建议包括缩短事务时间、避免大规模查询和合理使用隔离级别。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境