因为用win7下VMware安装了oracle 11g,oracle10g,可能是笔记本的硬盘不行了,在win下吱吱叫,实在是心烦,就装了个以前下载的ubuntu12.04桌面系统,与win7形成双系统,而不是虚拟机上安装了。然后在ubuntu上安装oracle 10g。
安装过程需要的大部分知识都是在网上查看各种技术文章,不过有些与我使用的环境还是有区别的。
1.安装好ubuntu 12.04桌面操作系统,下载oracle 10.2.0.1.0安装介质。
2.更新操作系统软件:
为了省去使用sudo、然后还得再输入口令的麻烦,我是使用root用户做的环境准备操作。
su - root
输入口令切换到root用户。
atp-get update
apt-get dist-upgrade
3. 安装Oracle所需的依赖包:
apt-get install automake
apt-get install autotools-dev
apt-get install binutils
apt-get install bzip2
apt-get install elfutils
apt-get install expat
apt-get install gawk
apt-get install gcc
apt-get install gcc-multilib
apt-get install g++-multilib
apt-get install ia32-libs
apt-get install ksh
apt-get install less
apt-get install lesstif2
apt-get install lesstif2-dev
apt-get install lib32z1
apt-get install libaio1
apt-get install libaio-dev
apt-get install libc6-dev
apt-get install libc6-dev-i386
apt-get install libc6-i386
apt-get install libelf-dev
apt-get install libltdl-dev
apt-get install libmotif4
apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
apt-get install libpth-dev
apt-get install libpthread-stubs0
apt-get install libpthread-stubs0-dev
apt-get install libstdc++5
apt-get install lsb-cxx
apt-get install make
apt-get install openssh-server
apt-get install pdksh
apt-get install rlwrap
apt-get install rpm
apt-get install sysstat
apt-get install unixodbc
apt-get install unixodbc-dev
apt-get install unzip
apt-get install x11-utils
apt-get install zlibc
以上包有的ubuntu已经装了,偷懒的方式都执行一遍,安装了的系统会提示
Reading package lists... Done
Building dependency tree
Reading state information... Done
zlibc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
,没安装的会自动安装,如果系统没有连Internet的话,只能找到相关包再安装了。这里用的也是root用户,我找到相关资料,在/etc/sudoers文件中把使用的普通用户加入到
oracle ALL=(ALL:ALL) ALL NOPASSWD ALL,就可以在sudo后不用输入口令了,但是没有成功,本人重点不是ubuntu系统问题,所以不过多讨论;我对ubuntu系统还是菜鸟,刚用了10分钟。呵呵。
4.创建用户
因为我刚开始安装ubuntu系统的时候就是准备安装oracle,所以开始用户命名就是oracle。
这里只需要创建相关的组。
groupadd oinstall
groupadd dba
groupadd oper
改变oracle用户的主、辅组为oinstall,dba,oper。
usermod -g oinstall -G dba,oper oracle
5.检查系统变量
/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
运行/sbin/sysctl -p更新配置文件。
6.添加对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
7.查看/etc/pam.d/login,和/etc/pam.d/su两个文件中增加以下行
session required pam_limits.so
8.创建需要的文件夹,也就是为oracle的ORACLE_BASE,ORACLE_HOME创建文件夹。
/bin/mkdir -p /u01/app/oracle/product/10.2.0/dbhome_1/
chown oracle /u01 -R
chgrp oinstall /u01 -R
9.安装JDK,在oracle官网上找到JDK套件下载linux_x86平台的tar.gz形式的压缩包。此例中实在
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
下载的jdk-7u25-linux-i586.tar.gz.将包放在/usr/lib/jdk目录下解压。如果没有jdk目录,先创建一个。解压后就可以把压缩包删除了。
10.为oracle设置环境变量
oracle用户的home目录,本例子中是在/home/oracle下,编辑 .bashrc文件
export ORACLE_BASH=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASH/product/10.2.0/dbhome_1
export ORACLE_SID=oral
export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/
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}
这里已经把java的环境变量也设置了,使用java -version测试一下,如果出现了JDK版本信息就表示正确了。
11.伪装成redhat欺骗oracle,因为oracle本身不支持在ubuntu平台。
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/
echo Red Hat Linux release 4 >/etc/redhat-release
12.安装oracle
将oracle安装介质放在/u01/app/oracle下,解压后的目录为database,将此目录修改属性为:
chown oracle database/ -R
chgrp oinstall database/ -R
cd database
./ runInstaller
具体设置请参考oracle 10g相关安装文章或oracle联机文档。
13.在安装过成中报错信息和处理方法:
(1)Error in invoking target 'install' of makefile '/u01/app/oracle/product/10.2.0/dbhome_1/sqlplus/lib/ins_sqlplus.mk'
在/u01/app/oracle/product/10.2.0/dbhome_1/sqlplus/lib中,将EXPDLIBS=-lclntsh添加到env_sqlplus.mk文件中。
(2)Error in invoking target 'agent nmo nmb' of makefile '/u01/app/oracle/product/10.2.0/dbhome_1/sysman/lib/ins_sysman.mk'.
在env_sysman.mk文件中找到NO_CPPT_OPTION=#-no_cpprt一行,有的文章说把#去掉,可我的系统是去掉#的,我添加了#后,运行通过。
(3)Error in invoking target 'install' of makefile '/u01/app/oracle/product/10.2.0/dbhome_1/network/lib/ins_net_server.mk'.
没有解决,在网上找到相关技术文章也没有解决,直接忽略过。
(4)Error in invoking target 'all_no_orcl ihsodbc' of makefile '/u01/app/oracle/product/10.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk
也没有解决,直接忽略过。
14.提示运行相关脚本:
以root用户运行/home/oracle/oraInventory/orainstRoot.sh和/u01/app/oracle/product/10.2.0/dbhome_1/root.sh
退出安装,ps -eaf | grep ora_查看oracle实例已经启动。
参考资源:
http://blog.csdn.net/idber/article/details/9039857
http://www.2cto.com/database/201112/113319.html
http://sqlandplsql.com/2011/12/02/installing-oracle-11g-on-ubuntu/