使用ubuntu 10.10已经有一段时间了,除了office,sqlserver外基本都使用系统自带的软件了。
由于项目需要,系统运行需要使用ORACLE数据库,在测试中发现一些小问题,由于开发时已经考虑了数据库兼容性,所以很快解决了。
这次下决心把日常开发也用ORACLE数据库了,但用虚拟机太影响性能了,所以在ubuntu上安装oracle10g.由于ubuntu不在oracle支持列表中,网上搜索了相关资料并偿试后安装成功。主要是参考李阳的安装说明, http://www.linuxidc.com/Linux/2011-01/31445.htm ,但实际过程有一些小区别。
一、安装oracle
1.使用 sudo apt-get install alien安装rpm功能
2.建立软连接的位置不同
ln -s /etc/alternatives/awk /bin/awk
3.建立用户使用System/Administration/users and Groups来创建oracle用户,方便后面GUI登录
4.配置好oracle用户的组和权限后,使用oracle登录号图形界面
5.创建/opt/ora10g目录,再运行runInstaller
6.使用自定义安装,后续可以配置数据库的语言ZHS16GBK(我安装ubuntu使用的是en,但测试数据库是windows,编码为ZHS16GBK,数据imp后乱码)
二、数据库安装完成后,修改/etc/bash.bashrc
export NLS_LANG="AMERICAN_AMERICA.UTF8"
export ORACLE_BASE="/opt/ora10g"
export ORACLE_HOME="/opt/ora10g/dbms"
export ORACLE_SID=GEOSUN
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
注:如果配置ZHS16GBK,在sqlplus总是乱码
三、对于em乱码问题,其实是由于jdk默认没有支持中文引起的(ubuntu安装选择的是en)
1.安装wqy字体 sudo apt-get install ttf-wqy-zenhei
2.将fonts.properties文件拷贝到 $ORACLE_HOME/jdk/jre/lib,$ORACLE_HOME/jre/1.4.2/lib
3.删除缓存图片 sudo rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
四、修改$ORACLE_HOME/dbstart,避免启动时报错误信息
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$ORACLE_HOME
if [ ! $ORACLE_HOME_LISTNER ] ; then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
五、配置/etc/init.d/oracledb启动脚本
#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_HOME="/opt/ora10g/dbms"
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE_SID=GEOSUN
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
rm -f /var/lock/oracle
su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
如果需要自动启动,执行下面的脚本 chmod 755 /etc/init.d/oracledb update-rc.d oracledb defaults 99
六、修改/etc/oratab,启动时自动mount
GEOSUN:/opt/ora10g/dbms:Y
提示:如果数据库语言或者其他配置有问题,可以使用$ORACLE_HOME/bin/dbca来删除和创建数据库,就是稍微花一点时间,在不熟悉各种配置项时的最傻瓜方法。
2011-04-30: install oracle10g at Ubuntu 11.04
sudo ln /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1