在Ubuntu1204-64位和CentOS6.5-64位上安装Oracle Database 11gR2

摘要:CentOS,Ubuntu上安装Oracle Database 11gR2过程,记录了遇到的问题和解决办法,并记下了相应的注意事项。

在Ubuntu 12.04 64bit 上安装Oracle Database 11gR2


1.首先,将系统更新到最新

代码:

sudo apt-get update
sudo apt-get dist-upgrade



2.安装依赖包

代码:

sudo apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text ia32-libs intltool-debian ksh lesstif2 lib32bz2-dev lib32z1-dev libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libc6-dev-i386 libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst pax po-debconf rpm rpm-common sysstat unixodbc unixodbc-dev unzip ubuntu-sdk gcc++ gcc-multilib libstdc++5



3.创建用户(可选,我就是用自己的账户安装成功的)

4.检查系统变量

代码:

/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 = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.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



运行一下命令更新内核参数

代码:

sysctl -p

其中oracle是在第三步中创建的用户,跳过第三步的话就写当前用户

查看/etc/pam.d/login,增加以下行(有了就不用增加了)

代码:

session required pam_limits.so



同样检查/etc/pam.d/su,没有以下行就自己加上

代码:

session required pam_limits.so



6.创建需要的文件夹(用于安装oracle)

代码:

mkdir /usr/local/Oracle/oracle11g
mkdir /usr/local/Oracle/oradata



然后用 chmod -R 命令将Oracle的所有者和用户组设置成自己的用户

7.配置环境变量
在/etc/profile中增加以下环境变量

代码:

# /etc/profile

export JAVA_HOME=/opt/jdk1.7.0_21

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ORACLE_BASE=/usr/local/Oracle/oracle11g

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$PATH:$ORACLE_HOME/bin:$JAVA_HOME/bin

export NLS_LANG=.AL32UTF8

export ORACLE_OWNER=user

export LANGUAGE=zh_CN:zh
export  LANG=zh_CN

export ORACLE_SID=orcl

8.欺骗oracle的安装程序

代码:

mkdir /usr/lib64

ln -s /usr/bin/basename /bin/basename
ln -s /etc /etc/rc.d
ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
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/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
echo 'Red Hat Linux release 5' > /etc/redhat-release

9.重启电脑

10.运行安装程序

代码:

cd /XXX/XXX/XXX
./runInstaller

如果运行中中文是方框,请装java的字体包安装好。libfonts-java,libfontbox-java,ubuntu-restricted-extras

11.然后直接下一步就可以了。只是有几个地方需要注意,在环境检查那里,如果有一些包没有通过,我们是一项项是去检查并安装的,然后再Ignore All
a)有路径设置的地方请多加注意,理论上我们前面已经配置了环境变量,不会有大问题,但是为了以防万一还请多加注意。
b)字符集最好选择utf8
c)在执行'链接二进制文件'时如果遇到错误请在不关闭安装程序的情况下打开一个新终端,输入以下命令
代码:

sed -i's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g'$ORACLE_HOME/sysman/lib/ins_emagent.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
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



然后再选择retry一般就可以过去了,如果过不去,直接点击继续。
d)最后一步需要让我们手动执行两个文件,第一个应该没啥问题。第二个会提示无法创建目录,根据提示手动创建就好了。
e)安装过程中最好别点不需要的按钮。避免不必要的错误
f)最后结果:数据库可用,但EM登录后会出现内部错误

启动相关:

一、在Linux下启动Oracle

$sqlplus "/as sysdba"

原本的画面会变为
SQL>

接着请输入
SQL> startup

就可以正常的启动数据库了。

另外停止数据库的指令如下:
SQL> shutdown immediate

二、检查Oracle DB监听器是否正常

回到终端机模式,输入:

$ lsnrctl status

检查看看监听器是否有启动

如果没有启动,可以输入:

$ lsnrctl start

启动监听器

SQL> conn sys@orcl as sysdba

然后输入密码,syssysdba身份登入数据库。

三、启动emctl

另外也可以发现http://localhost.localdomain:1158/em目前是没有反应的,这边要另外启动,启动的指令如下:

$ emctl start dbconsole

这个指令运行时间较长,执行完的画面如下:

让Oracle随系统自启动:

这里需要注意,将/usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/dbstart和usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/dbshut中的

ORACLE_HOME_LISTNER=$1

改成

ORACLE_HOME_LISTNER=$ORACLE_HOME

编辑/etc/rc.d/rc.local,添加以下命令

su user -lc "/usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/lsnrctl start"

su user -lc /usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/dbstart

su user -lc"/usr/local/Oracle/oracle11g/product/11.2.0/dbhome_1/bin/emctl startdbconsole"

在CentOS 64bit 上安装Oracle Database 11gR2

与在ubuntu安装的内容大部分内容是共通的,环境变量也需要一样的设置和JAVA也需要安装,但与包相关的操作有所区别。我们在CentOS安装成功后,没有错误,这也许是Oracle使用Redhat做Oracle Linux的缘故。

1.  Su root 登录到超级用户
2.  # cd /etc/yum.repos.d
3.   
4.  # wget http://public-yum.oracle.com/public-yum-ol6.repo
5.  vim public-yum-ol6.repo
将所有的enabled=1

6.    yum update

7.    yum upgrade

8.    yum install oracle-rdbms-server-11gR2-preinstall

9.    环境变量设置,参数设置,请参见UBUNTU

10.  su user #切换用户到普通用户(这个请参见ubuntu部分,需要建立目录,并改变owner),其他环境

11.  $ ./runInstaller

这里可能会弹出IP地址无法获取,请千万不要忽略这个错误,我们在这个地方忽略了导致在安装中卡死60%,然后就不动了。这个需要将vim/etc/sysconfig/network配置,以下供参考:

NETWORKING=yes

HOSTNAME=dbone

GATEWAY=192.168.156.2

12.  进行系统环境检测,请将没有通过的依赖包一个个地检查并安装一下,这里一定要一个一个的多安装一下,虽然安装后可能还是报错,那就直接忽略好了。

13.  进入安装,完成重启

14.  数据库启动与测试请参见Ubuntu部分

15.如果yum install/update有问题,就把public-yum-ol6.repo 删除,再yum update一下,就好了。

总结

感谢互联网上那些分享的朋友,我们会在后面标注。此文是我们在安装过程中遇到的问题和总结,可能还有一些问题被解决但被我们遗忘了,欢迎交流讨论。在Ubuntu上相对来说比较麻烦,而且最终我们的EM登录进行后还出现内部错误,但数据库是可以用的,监听也是起来的;在centos上较为顺利,只要按照要求一步步做好,将依赖包安装好。

参考

http://www.oracle.com/technetwork/articles/servers-storage-admin/ginnydbinstallonlinux-488779.html

http://forum.ubuntu.org.cn/viewtopic.php?f=44&t=373077

http://blog.sina.com.cn/s/blog_663b470501017p01.html

http://blog.sina.com.cn/s/blog_56d8ea900100noxa.html

http://serverfault.com/questions/12229/how-can-i-start-oracle-enterprise-manager-after-restarting-the-red-hat-server

http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html

http://zhidao.baidu.com/link?url=gDUYlkuE71TyKycan7jD5o0qdFHR9ctdHuGR77KHaiaAlRy2jCZPE0086xFBMWBeNWaiO0bqOFz_RG9rzOwOhC48zu6zwWNn9zGeZ7vSlk7

http://blog.csdn.net/kimsoft/article/details/8117575

版权声明:本文为博主原创文章,未经博主允许不得转载。

你可能感兴趣的:(oracle,database)