摘要:CentOS,Ubuntu上安装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
然后输入密码,sys以sysdba身份登入数据库。
三、启动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"
与在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
版权声明:本文为博主原创文章,未经博主允许不得转载。