今天折腾了一上午,总算搞定了,在ubuntu32位下安装oracle 11g
中间有大部分过程参考http://blog.csdn.net/idber/article/details/9039857
安装下面依赖的包如果找不到软件先在终端执行:
sudo apt-get update
sudo apt-get dist-upgrade
安装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-1 libodbcinstq4-1:i386
sudo apt-get install libpth-dev
sudo apt-get install libpthread-stubs0
sudo apt-get install libpthread-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 install sysstat
sudo apt-get install unixodbc
sudo apt-get install unixodbc-dev
sudo apt-get install unzip
sudo apt-get install x11-utils
sudo apt-get install zlibc
很多都是Ubuntu自带的了,谨慎6起见都执行一遍吧。
创建用户
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba -d /opt/oracle -s /bin/bash oracle
sudo passwd oracle
检测系统变量
/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 = 262144net.core.wmem_max = 1048586
运行一下命令更新内核参数:
sysctl –p
.添加对oracle用户的内核限制在 /etc/security/limits.conf 文件中增加以下数据
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
其中oracle是在第四步中创建的用户,跳过第四步的话就写当前用户
查看/etc/pam.d/login,增加以下行(有了就不用增加了):
session required pam_limits.so
同样检查/etc/pam.d/su,没有以下行就自己加上:
session required pam_limits.so
创建需要的文件夹(用于安装oracle)并设置其所有权:
mkdir -p /opt/oracle
mkdir -p /opt/oraInventory
chown -R oracle:oinstall /opt/oracle
chown -R oracle:oinstall /opt/oraInventory
同样,如果跳过了第四步,那就将所有权设置命令中的用户oracle和组oinstall改为自己当前用户和组(通常二者是一样的),当然这时也可以不执行这两个chown命令,本来目录创建者就是所有者了。另外,需要root权限执行这些命令(sudo,下同)
.为Oracle配置环境变量。在/etc/profile.d文件夹下建立oracle.sh文件(系统会自动查找并执行该文件)
#Oracle
#这个写刚刚创建的文件夹
export ORACLE_BASE=/opt/oracle
#这个后面可以随便填写
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#数据库的sid
export ORACLE_SID=orcl
#默认字符集
export NLS_LANG=.AL32UTF8
#环境变量
export PATH=${PATH}:${ORACLE_HOME}/bin/;
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/
下载oracle安装文件,并且解压,如果下载的是两个zip的文件解压的时候一定要主要,如果下载的是网上别人弄好的,可能没有database文件夹,则自己建一个database文件夹并且将解压后的文件全部拷入
正式安装Oracle,为database文件夹下的runInstaller文件赋予可执行权限:
chmod 777 runInstaller
先在终端输入:
export LANG=en_US
或者
export LANG=zh_CN.gbk
然后再执行:
./runInstaller
安装前进行swap空间检查时可能出现swap空间太小的问题,这一般是由于系统安装时没有创建swap分区,解决办法是创建swap文件来开辟swap空间:通过下面方法建立swap文件:
#dd if=/dev/zero of=/tmp/swapfree bs=1024 count=65515 (count是分区数量,swap大小=bs*count,增加2G)
#mkswap /swap/swapfile (格式化交换分区文件)
#swapon /swap/swapfile(启用交换分区文件)
#swapon –s (显示swap状态)
修改/etc/fstab,让系统每次启动都把/swap/swapfile作为swap使用,增加下面一行:
/swap/swapfile swap swap defaults 0 0
图形安装界面的第一步是填写电子邮件,不填
剩下的过程基本上很顺利了,只需要设置一下密码就行了,其他的设置都在启动安装程序前完成了,不要进行改动!
图形界面下进行依赖检查的时候会列出很多依赖检查失败了,无法进入下一步了,此时选中右上角的‘忽略所有’就可以进入下一步了。
安装过程中会出现
办法:打开一个新的终端,在其中输入
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
然后在图形界面点击‘Retry’就能继续安装了。
办法:在新的终端中输入
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
最后应该就顺利完成了,按照安装程序提示最后执行两个脚本:
sudo /opt/oracle/oraInventory/orainstRoot.sh
sudo /opt/oracle/Oracle11gee/product/11.2.0/dbhome_1/root.sh
进入em之后,按钮出现中文乱码,在网上下载一个simsun.ttf宋体字文件
在终端输入如下命令:
$ mkdir $ORACLE_HOME/jdk/jre/lib/fonts/fallback
$ cp simsun.ttf $ORACLE_HOME/jdk/jre/lib/fonts/fallback/
$chmod 444 $ORACLE_HOME/jdk/jre/lib/fonts/fallback/simsun.ttf
后需要清理一下Cache,重启EM即可:$ rm $ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs/*.gif
$ emctl stop dbconsole
$ emctl start dbconsole
然后进入web页面查看即可
卸载和删除oracle
1. 运行 $ORACLE_HOME/bin/localconfig delete
2. rm -rf $ORACLE_BASE/*
3. rm -f /etc/oraInst.loc /etc/oratab
4. rm -rf /etc/oracle
5. rm -f /etc/inittab.cssd
6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
7. rm -rf $ORCLE_HOME
sqlplus控制台方向键问题:
安装:readline
- apt-get install libreadline5-dev //ubuntu要安装这个
- wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
- tar zxvf readline-6.2.tar.gz
- cd readline-6.2
- wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001
- wget ftp://ftp.gnu.org/gnu/readline/readline-6.2-patches/readline62-001.sig
- patch -p0 < readline62-001 //打补丁
- ./configure
- make && make install
安装:rlwrap
- wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.37.tar.gz
- tar zxvf rlwrap-0.37.tar.gz
- cd rlwrap-0.37
- ./configure
- make && make install
修改用户根目录下的.bashrc
- # some more ls aliases
- alias ll='ls -alF'
- alias la='ls -A'
- alias l='ls -CF'
- alias sqlplus='rlwrap sqlplus' //添加这一行
修改.bashrc要重起电脑。如果没有.bashrc,修改.bash_profile或者.profile文件。