Installing Oracle 11gR2 Enterprise Edition on Ubuntu 10.04 (Lucid Lynx)


最近因为工作的原因,需要在笔记本电脑上安装Oracle
数据库。由于Oracle并没有提供针对Ubuntu的安装软件或者手册,所以在Ubuntu上安装Oracle并不是很方便,用Ubuntu
9.04的时候安装成功过,不过从那以后一直没有关注这个问题了。今天花了一个下午的时候,总算数据库正常安装了。

Oracle版本:11gr2
Ubuntu版本:

[leo@leo-laptop:~]$ uname -a
Linux leo-laptop 2.6.32-24-generic#39-Ubuntu SMP Wed Jul 28 05:14:15 UTC 2010 x86_64 GNU/Linux

首先下载11g的两个压缩文件并且解压缩,然后合并解压缩之后的两个目录

在安装之前我们还要准备一些必要的软件包
sudo apt-get install unzip build-essential x11-utils rpm ksh lsb-rpm libaio1

由于Oracle 11g需要libstdc++5的库,而Ubuntu 10.04已经升级到了libstdc++6,所以我们还要准备libstdc++5的库。
$ wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_amd64.deb
$ dpkg-deb -x libstdc++5_3.3.6-17ubuntu1_amd64.deb ia64-libs
$ sudo cp ia64-libs/usr/lib/libstdc++.so.5.0.7 /usr/lib64/
$ cd /usr/lib64/
$ sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

$ wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.7ubuntu6.1_amd64.deb
$ dpkg-deb -x ia32-libs_2.7ubuntu6.1_amd64.deb ia32-libs
$ sudo cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib32/
$ cd /usr/lib32
$ sudo ln -s libstdc++.so.5.0.7 libstdc++.so.5

然后在/etc/sysctl.conf文件中添加以下行,调整系统参数。

# Oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.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
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

然后执行sudo sysctl -p命令,使刚刚的修改生效。

再在/etc/security/limits.conf文件中添加以下行

# Oracle
leo soft nproc 2047
leo hard nproc 16383
leo soft nofile 1023
leo hard nofile 65535

这里需要注意的是,leo是你要用来安装和运行Oracle的帐户名称,我决定不创建新的用户,使用当前登录系统的账户,所以写成了leo。现在可以进入解压缩之后的目录,然后开始安装了。

cd database
./runInstaller

在安装的过程中需要指定ORACLE_BASE以及ORACLE_HOME等参数,将ORACLE_BASE设置为/opt/Oracle 并且保证Oracle的owner是leo:leo,另外还需要在创建一个/opt/oraInventory/并且属于leo:leo
在安装的过程中,会提示系统环境check不能通过,直接忽略所有的错误继续;在我的电脑上还出现了在安装的过程中,从安装主窗口弹出来的窗口没有文字显示的问题,通过使用alt+n触发下一步解决。导致后来需要通过alter user sys

identified by “password”来修改密码。

安装完成了之后,在~/.bashrc中添加以下设置参数,为命令行方式管理数据库提供环境。

# Oracle
export ORACLE_HOME=/opt/Oracle/product/11.2.0/dbhome_1
export ORACLE_BASE=/opt/Oracle
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
export EDITOR=/usr/bin/vim

在使用emctl的时候碰到了ulimit: 25: bad number.的错误
这是因为Ubuntu默认把/bin/sh指向了dash,通过修改emctl脚本的头部,将/bin/sh改成/bin/bash即解决问题。
其次还有/bin/awk无法找到的问题。Ubuntu也有安装awk,不过默认路径是/usr/bin/awk,通过ln /usr/bin/awk /bin/awk命令解决问题。wfti .
然后cp $ORACLE_HOME/install/oratab /etc/
再执行$ORACLE_HOME/root.sh
解决这些问题之后,我们就可以通过emctl stop dbconsole停止Oracle管理平台以及通过emctl start dbconsole启动Oracle管理平台了。
另外,关于监听器也碰到了一些问题,安装完成之后,监听器默认的状态是READY状态,在设置完成ORACLE_HOME等参数之后,通过lsnrctl stop listener停止监听器,然后lsnrctl start listener解决问题。
大功告成之后,可以通过https://localhost:1158/em登录管理控制台了。
登录之后是不是发现按钮是方框?
这个是因为Oracle自带的JDK没有能够显示中文的字体有关系
创建$ORACLE_HOME/jdk/jre/lib/fonts/fallback
然后复制一个simsun.ttc字体到该目录并改名为simsun.ttf,重启em,一切就OK了。

期间在em启动和停止的时候还碰到了一些其他的提醒,比如找不到$ORACLE_HOME/leo-laptop_orcl但其实在$ORACLE_HOME下有localhost_orcl,这个可能和em默认使用了主机名有关系,使用cp -r命令复制一下localhost_orcl就可以解决问题了。

关于创建数据库时弹出的确认窗口没有内容的问题,在关闭特效之后,确认窗口即能正常显示。

参考:
http://www.pythian.com/news/13291/installing-oracle-11gr2-enterprise-edition-on-ubuntu-10-04-lucid-lynx/
http://cn.forums.oracle.com/forums/thread.jspa?threadID=697814

About these ads

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s