最近在ubuntu上安装oracle,google了不少资料,安装的方法很多,但适合自己的很少,所以在这分享一下自己的安装经验,以后方便自己参考。
大体安装思路:先安装oralce的依赖包----->创建oracle的用户组(以后使用起来会很方便)------>配置系统变量(配置多个地方)------->安装oracle软件包
1> 安装依赖项:
$
sudo apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio libstdc++5
很多的资料中安装依赖包很多,个人认为以自己的情况而定,不要按部就班,可参考一下资料
http://blog.csdn.net/idber/article/details/9039857
2> 创建用户组:(如果你只想使用当前用户管理oracle那么可以跳过此步骤)
$ sudo addgroup oinstall
$ sudo addgroup dba
$ sudo addgroup nobody
$ sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
$ sudo passwd oracle
$ sudo usermod -g nobody nobody
3> 建立一个oracle安装目录,这里以opt/oracle为例;(我安装在了/home/xxx/app下,因为oracle的安装文件有5.5G,我的opt空间不足)
$ sudo mkdir -p /opt/oracle
$ sudo chown -R oracle:oinstall /opt/oracle (注:为创建oracle用户可跳过此句)
$ sudo chmod -R 775 /opt/oracle
4> 配置系统变量
1)
$ 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
2)
$ sudo gedit /etc/security/limits.conf
在该文件最后添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535
3) $ sudo gedit /etc/pam.d/login
在该文件最后添加以下内容:
session required /lib/security/pam_limits.so
session required pam_limits.so
4) $ sudo gedit /etc/redhat-release
在该文件最后添加以下内容:
Red Hat Linux release 4.1
5) $ sudo sysctl -p 使上面配置生效
6) 创建文件的链接,使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 mkdir /etc/rc.d
$ sudo ln -s /etc/rc0.d /etc/rc.d/rc0.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
7) 为oracle配置环境变量(vim .bashrc)
export ORACLE_BASE=/opt/oracle # 我的配置为/home/xxxx/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #unicode编码 无论配置成什么编码,格式一定要写对(language_territory.charset 语言_地域和字符集),否则会安装失败,或者不做配置(没试过)
export PATH=${PATH}:${ORACLE_HOME}/bin/;
5> 开始安装
下载安装包
先到oracle的官方网站http://www.oracle.com/technology/software/products/database/index.html下载oracle安装文件,
这里我下载的是Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86,一共有2个压缩包共计2G
用unzip命令解压两个压缩包
打开terminal
执行下面一句确保安装界面不会显示乱码
$ export LANG=en_US
或者
export LANG=zh_CN.gbk
乱码如下图:
进入解压后的database目录中,然后再执行:
./runInstaller
就可以在全英/中文界面下进行安装了.
图形安装界面的第一步是填写电子邮件,但是填完可能会出错:Unexpected error occurred while validating inputs at state 'getOCMDetails'。这是由于缺少pdksh依赖包,简单的解决办法是不填写邮件地址,不勾选下面的复选框,直接下一步,弹出提示后点‘Yes’就能直接进入下一步了.
此处的密码为oracle推荐密码,必须有大小写字母和数据,并且不少与8位
打开一个terminal,运行一个命令就ok了
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
然后在图形界面点击‘Retry’就能继续安装了
成功安装后就能通过sqlplus来访问oracle了.
$ su oracle # 切换到oracle用户
$ sqlplus /nolog
如果报没有sqlplus命令 就将sqlplus文件拷贝到/bin中
sudo cp app/oracle/product/11.2.0/dbhome_1/bin/sqlplus /bin/
然后再次执行
$ sqlplus /nolog
就能成功进入
SQL>.................