http://edin.no-ip.com/blog/hswong3i/oracle-database-11g-release-2-ubuntu-12-04-howto------------------针对ubuntu12.04 x86_64
http://forum.ubuntu.org.cn/viewtopic.php?p=2736603
http://bbs.youkuaiyun.com/topics/390412122
http://jak47.iteye.com/blog/1463336
1、
更新 在root用户下安装依赖项--------------针对ubuntu12.04 32bit
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install gcc make binutils libc6 libc6-dev lesstif2 rpm libmotif3 libstdc++5 libaio1 libaio-dev build-essential libaio1 gawk ksh libmotif3 alien libtool
以后若有包没装全,可以查看错误日志/u01/app/oraInventory/logs/*.log
2、 在root用户下创 建 ORACLE 用 户
sudo addgroup oinstall
sudo addgroup dba
sudo addgroup nobody
sudo usermod -g nobody nobody
sudo useradd -g oinstall -G dba -m -d /home/oracle -s /bin/bash oracle
sudo passwd oracle
3 检查系统变量 (由错误日志/u01/app/oraInventory/logs/*.log)
/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中增加对应数据
在root用户修改/etc/sysctl.conf,修改linux 内核参数
sudo gedit /etc/sysctl.conf 在文件最后添加
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr=1048576
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 = 1048576
运行一下命令更新内核参数
sudo sysctl -p
4 添加对oracle用户的内核限制
sudo gedit /etc/security/limits.conf 在文件最后添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
5 在root用户下检查/etc/pam.d/login,增加以下行(实际已有了不用增加)
session required pam_limits.so
检查/etc/pam.d/su,增加以下行(实际已有了不用增加)
session required pam_limits.so
6 创建安装文件夹
rm -rf /u01
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/oradata
chown -R oracle:oinstall /u01
chmod -R 775 /u01
7 配置用户环境(oracle用户下)
$ vim /home/oracle/.profile
#这个写刚刚创建的文件夹
export ORACLE_BASE=/u01/app/oracle
#这个后面(貌似)可以随便填写
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#数据库的sid
export ORACLE_SID=orcl
#默认字符集
export NLS_LANG=.AL32UTF8
export ORACLE_OWNR=oracle
export PATH=$PATH:$ORACLE_HOME/bin
$ source ~/.profile
8 欺骗安装包
在root用户下因为Oracle 默认Linux 系统是Red Hat ,模仿Red Hat
创建文件的链接,使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
ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/
ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/
ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/
ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/
echo 'Red Hat Linux release 5' > /etc/redhat-release
9 安装jdk环境
------------------------------------------------------
1.将下载的JDK进行解压
tar -zxvf ~/Downloads/jdk-7u3-linux-i586.tar.gz
2.创建个目录来存放JDK
sudo mkdir -p /usr/lib/jvm/jdk1.7.0
3.将JDK下的文件移动到新建的目录下
sudo mv jdk1.7.0_03/* /usr/lib/jvm/jdk1.7.0/
4.建立默认JDK的启动
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1
好了,此时JDK安装完成了
执行下面的代码可以看到当前各种JDK版本和配置:
sudo update-alternatives --config java
(注:此处来源于:http://www.liberiangeek.net/2012/04/install-oracle-java-jdk-7-in-ubuntu-12-04-precise-pangolin/)
---------------------检验是jdk否安装成功----------------------
# su $username
切换回原来登录的用户,或关闭终端再打开。
$ sudo gedit /etc/environment
输入密码后进入environment的编辑操作。千万注意不要把environment搞坏了。
下面红色加粗的部分是我加进去的,不要改动其他部分:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.7.0/bin"
CLASSPATH=".:/usr/lib/jvm/jdk1.7.0/lib"
JAVA_HOME="/usr/lib/jvm/jdk1.7.0"
...
保存后退出gedit。下面的命令使环境变量生效:
$ su
密码
$ source ~/.bashrc
$ java -version
显示:java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) Server VM (build 23.5-b02, mixed mode)
--------------------------------------------------------
10 放置安装包
cp linux.x64_11gR2_database_1of2.zip /var/lib/oracle
cp linux.x64_11gR2_database_2of2.zip /var/lib/oracle
cd /var/lib/oracle
unzip -q linux.x64_11gR2_database_1of2.zip
unzip -q linux.x64_11gR2_database_2of2.zip
chown -Rf oracle:oinstall /var/lib/oracle/
11 安装oracle
cd /var/lib/oracle/database
./runInstaller -jreLoc /usr/lib/jvm/jdk1.7.0/jre(后面为jre的安装路径)---------------防止出现乱码
忽略先决条件
安装完即可----------解决方法如下:
桌面型
oracle_base: /u01/app/oracle安装目录位置/u01/app/oracle/product/11.2.0/dbhome_1
数据库文件位置:/u01/app/oracle/oradata
企业版 3.95G
字符集 AL32UTF8
OSDBA 组:dba
全局数据库名 orcl
管理密码:自己设
---------------------------各种问题汇总----------------------------------------
10.链接错误处理,link进度到69%报错处理
Problem1
---------------------------------------------------------------
Error in invoking target 'agent nmhs' of makefile '/opt/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'
---------------------------------------------------------------
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
----------------------------------------------------------------
Problem2
---------------------------------------------------------------
Error in invoking target 'all_no_orcl' of makefile '/opt/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk'.
-------------------------------------------------------------
sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' /u01/app/oracle/product/11.2.0/dbhome_1/bin/genorasdksh
sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' /u01/app/oracle/product/11.2.0/dbhome_1/srvm/lib/ins_srvm.mk
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' /u01/app/oracle/product/11.2.0/dbhome_1/network/lib/env_network.mk
---------------------------------------------------------------------
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&77
本次安装oracle database configuration assistant 安装失败
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-------安装最后一步 改 root权限结果-----------------
/u01/app/oraInventory/orainstRoot.sh
更改权限/u01/app/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。
更改组名/u01/app/oraInventory 到 oinstall.
脚本的执行已完成。
root@bupt:/etc/security# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]: /usr/local/bin
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
-----------------使用oracle-------------------------
启动的问题汇总
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initoral.ora'
解决
cd /u01/app/oracle/admin/orcl/pfile
cp init.ora.xxxxxxxx /u01/app/oracle/product/11.2.0/dbhome_1/dbs
cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs
mv init.ora.415201319241 initoral.ora
命令待续。。。。。。