Ubuntu11.10 安装Oracle10g
安装环境:UBUNTU 11.10 pcORACLE 10g
1.安装前准备工作
1.1 到oracle官网下载适合自己电脑的oracle软件包;
我的是:Oracle Database 10gRelease 2 (10.2.0.1.0)Enterprise/Standard Edition for Linux x86下的:10201_database_linux32.zip
地址:http://www.oracle.com/technetwork/database/10201linuxsoft-097986.html
1.2 更新ubuntu
# apt-get update
# apt-get upgrade
1.3 安装额外的javaJDK
可在【Ubuntu软件中心】搜OPENjdk,安装OpenJDK 完成后path路径自动设置好了
1.4 安装缺少的包
# apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio1 alien
# apt-get install rpm libaio1 ksh libtool libstdc++5 build-essential
1.5 创建oracle用户
登录到root用户下操作:
1.5.1 修改shell
#ls -l /bin/sh 如果是dash修改为bash
#rm /bin/sh
#ln -s /bin/bash /bin/sh
1.5.2 创建用户和组及oracle安装路径
#addgroup oinstall
#addgroup dba
#addgroup nobody
#usermod -g nobody nobody
#useradd -g oinstall -G dba -p passwd -d /home/oracle -s /bin/bash oracle
#passwd oracle
#mkdir /home/oracle
#chmod -R oracle:dba /home/oracle
#mkdir -p /opt/ora10
#mkdir -p /opt/oradata
#chown -R oracle:dba /opt/ora*
#chmod -R 775 /opt/ora*
1.5.3 创建欺骗版本声明
#vi /etc/redhar-release
然后向其中加入 Red Hat Linux release 3.1
1.5.4 建立链接
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/bin/basename /bin/basename
# mkdir /etc/rc.d
# ln -s /etc/rc0.d /etc/rc.d/rc0.d
# ln -s /etc/rc1.d /etc/rc.d/rc1.d
# ln -s /etc/rc2.d /etc/rc.d/rc2.d
# ln -s /etc/rc3.d /etc/rc.d/rc3.d
# ln -s /etc/rc4.d /etc/rc.d/rc4.d
# ln -s /etc/rc5.d /etc/rc.d/rc5.d
# ln -s /etc/rc6.d /etc/rc.d/rc6.d
# ln -s /etc/init.d /etc/rc.d/init.d
1.5.5 添加用户到sudoer列表中
#gedit /etc/sudoers
在“ root ALL=(ALL:ALL) ALL” 下一行 ,添加:
oracle ALL=(ALL:ALL) ALL
保存。
1.5.6 修改内核参数和系统变量
A 修改/etc/sysctl.conf文件
#gedit /etc/sysctl.conf
添加如下内容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 25 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
B 修改/etc/security/limits.conf
#gedit /etc/security/limits.conf
添加如下内容:
* soft nproc 2407
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
说明:不要忘了“*”号,可以换成oracle
C 修改ubuntu的oracle用户的环境变量
修改/home/oracle/.bashrc和/etc/profile两个
#gedit /home/oracle/.bashrc
(如果oracle下没有,可以新建一个,然后添加下面路径)
#gedit /etc/profile
添加如下内容:
#oracle_path start
export ORACLE_HOME=/opt/ora10
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin
#oracle_path end
前后两个#内容可以不加,加上为了分清环境变量,避免污染环境
1.5.7 是参数生效
A 重启系统
B 终端执行命令 #sysctl -p
1.5.8 将下载好的oracle安装文件mv到/home/oracle下,并解压。注销root用户,登录oracle用户
2.开始安装oracle
2.1 打开终端,cd到/home/oracle/database的oracle解压文件下,执行下面这条命令
$./runInstaller -jreLoc /usr/lib/jvm/java-version/jre
java-version是java的安装版本,这一句是为了在图像化装oracle是不会出现乱码或者方框
然后就向windows下安装一样的图像化安装界面。
2.2 按照下面的图像步骤操作
http://www.cnblogs.com/luochengor/archive/2011/08/20/2147041.html
2.3 执行到配置配置脚本时
切换到root下,在终端中执行脚本
#/home/oracle/oralnventory/orainstRoot.sh
#/opt/ora10/root.sh
2.4 出现oracle database 10g 安装完成时,记下两个URL。
2.5 安装数据库
在终端中执行如下命令:
$dbca //如果出现中文乱码,执行下面命令
$cd /opt/ora10/bin
$gedit dbca
在dbca中找到“JRE_DIR=/opt/ora10/jdk/jre”,替换为JRE_DIR=/usr/lib/jvm/java-1.6.0-openjdk/jre ,然后保存退出
$dbca //正常显示了
2.6 按照下面步骤执行
http://www.cnblogs.com/luochengor/archive/2011/08/20/2147041.html
但是:要将数据库名字及SID都要写上orcl
一直到安装完成。
3. 启动oracle
在“终端”以oracle身份运行
启动TNS监听器:$ORACLE_HOME/bin/lsnrctl start
($ORACLE_HOME,就是oracle的安装目录:/opt/ora10 .直接cd,进入oracle的安装目录,到bin文件夹下,$lsnrctl start ,也行)。
关闭TNS:$ORACLE_HOME/bin/lsnrctl stop
启动sqlplus:$ORACLE_HOME/bin/sqlplus /nolog
关闭sqlplus:SQL> exit
4. 为了能够像windows下一样能够使用上下键翻动命令,还需要安装rlwrap包:
sudo apt-get rlwrap
然后修改oracle用户的~/.bashrc文件和/etc/profile文件,在其最后添加两行:
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
这样上下左右键就可以使用了。
最后来解决oracle中文字符集的问题。不出意外的话,启动oracle会发现所有的中文都是“?”,要么就是乱码,这其实是服务器端字符集和客户端字符集不一致造成的。
解决方法为:DBA身份进入sqlplus,做查询
SQL>select userenv(‘language’) from dual;
将查询结果复制,在/etc/bash.bashrc文件中再加一行:export NLS_LANG=”查询结果”,重新登录问题解决。例如:我的查询结果为SIMPLIFIED CHINESE_CHINA.AL32UTF8,则新加一行为export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"。
但是有时候这个方法不一定奏效,你可以将
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
分别写到两个文件中尝试一下,但是两个文件写的一定要一致。
5. 主要问题处理过程:
5.1
问题:调用makefile '../sqlplus/lib/ins_sqlplus.mk' 的目标'install' 时出错。请参阅'/home/oracle/oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。
解决办法:$ORACLE_HOME/sqlplus/lib/env_sqlplus.mk添加一行:EXPDLIBS=-lclntsh ,然后点击“重试”按钮, ok.
5.2
问题:调用makefile '../sysman/lib/ins_sysman.mk' 的目标'agent nmo nmb' 时出错。请参阅'.. /oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。
分析:后面遇到的错误其实本质上是一个问题,主要是gcc的版本高了,oracle10g的gcc是3.4左右的版本,但是ubuntu的开发速度早就用了4.0以上版本,而且你还无法apt安装低版本
解决办法:无
5.3
调用makefile '../network/lib/ins_net_server.mk' 的目标'install' 时出错。请参阅'.. /oraInventory/logs/installActions2011-12-06_11-03-18AM.log' 以了解详细信息。
分析:我在网上找到了一篇类似的文档,参见(点击打开链接),但是我手工编译还是有问题,而且在oracle10g中并不是他所提到的-lons参数问题。
还是gcc版本问题,我曾尝试过安装低版本的gcc,但是一开始编译就报错,所以放弃了,如果有人能成功降低版本环境,相信一定能解决所有错误问题,这也是为什么ubuntu 8能很自然成功安装的一个解释。
方法:目前我还没有方法,按照其.mk文件的说明,这个东西好像是数据库链接断裂时候重新链接用的
解决办法:无
5.4
调用makefile '../rdbms/lib/ins_rdbms.mk' 的目标'all_no_orcl ihsodbc' 时出错。请参阅'../oraInventory/logs/installActions2011-12-06_11-07-36-AM.log' 以了解详细信息。
分析:我们看一下log文件
信息: Generating BASE ORASDK library...
信息: Creating /opt/ora10/lib/liborasdkbase.so.10.2
信息: gcc: 错误:/lib/libgcc_s.so.1:没有那个文件或目录
gcc: 错误:/usr/lib/libstdc++.so.5:没有那个文件或目录
我们看到终于是那个非常多的错误了,其实还是gcc的问题,重新下载了libgcc_s.so.1,并且重新做了stdc++5的链接,但是问题还是更多,因为只做软链接和下载一个动态库是没法解决所有问题的。
解决办法:无
6. 个人建议: