ڼС
梦回起点
做你害怕做的事,你会发现:不过如此
本站基于WordPress—主题by 设计窝
冀ICP备15003737号
梦回起点
Copyright © 2015-2024 All rights reserved.

Ubuntu16.04/Linux安装Oracle 11g数据库/设置Enterpries Manager/设置em/及设置开机启动(一)

今天来和大家分享一下自己安装oracle11g的过程。你可能会说“为什么是11g?”,很简单,因为我的书就是对11g写的。先在windows 10上安装了(书上就是在windows平台上操作的),但是安装过后不知道什么原因,系统竟然莫名蓝屏一次,虽然以后没有了这种现象,但还是很不爽。于是决定换个平台。

不换不知道,换了才知道在Linux上安装是多麻烦。和windows上的疯狂next完全不同,好多库得自己下载,而且oracle官方就没有支持ubuntu,所以就更增加了操作复杂度,本来想两天怎么我也能入个门吧,但是偏偏两天时间全部用在了配置环境上。好在有前人的经验,但好多东西到现在我也不是很明白怎么回事,虽然安装算是成功了,但是安装过程跳过了一个错误,会有什么影响我也不知道,也没有相关文章解决这个错误,所以暂时先放一下这个错误。

好多东西刚开始没有办法弄的特别明白。就像第一遍学C,你问我指针是什么,我可能会告诉你就是个地址啊,但是你如果问我void (p)(int ()(int), int**);p是个什么,鬼知道是个什么东西。这东西是我看了好多本书之后我才弄明白是什么意思,每个阶段都会有自己的疑惑,所以不懂的我就先放下,等看完大致了解了轮廓再看能不能解决。

本来这种问题我是不愿意写的,但是想想如果没有前辈留下的笔记,我至今也安装不好这个环境、于是我决定把安装过程记录下来,如果能帮到遇到同样问题的你,我万分荣幸。我计划用4篇来写这个问题。好了,废话不多说了,开始我们今天的第一个任务——安装。

首先交代环境:Ubuntu16.04 LTS 64位,保证你的主机是可以联网的。

注意:1.因为oracle安装程序是用JAVA写的,所以需要预先安装JRE,也可以直接安装JDK,具体安装过程这里不做过多描述,我电脑上有,所以就不用安装了。

2.这个垃圾东西需要swap空间,很烦人,所以你需要建立一个swap文件(如果已经有了swap分区,那么就不用了)

dd if=/dev/zero of=/tmp/swapfree bs=32k count=65515 #(count是分区数量,swap大小=bs*count,增加2G)
mkswap /tmp/swapfree   # (格式化交换分区文件)
swapon /tmp/swapfree   # (启用交换分区文件)
swapon –s              # (显示swap状态)
#修改/etc/fstab,让系统每次启动都把/tmp/swapfree作为swap使用,增加下面一行:
/tmp/swapfree swap swap defaults 0 0

 

下面来安装:

1.将系统的更新安装上

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

2.如果使用的Ubuntu不是桌面版(如Ubuntu server),由于Oracle安装需要用到图形界面,所以需要安装桌面程序:

sudo apt-get install gnome-core

3.安装Oracle所需的依赖包,注意好多库是Red-Hat才有的(Ubuntu不叫这个名字),所以是安装不上的,所以你也不用纠结,保证能安装上的都安装上就可以(最后的错误可能和这个有关):

sudo apt-get install automake 
sudo apt-get install autotools-dev
sudo apt-get install binutils
sudo apt-get install bzip2
sudo apt-get install elfutils
sudo apt-get install expat
sudo apt-get install gawk
sudo apt-get install gcc
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib
sudo apt-get install ia32-libs
sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install lesstif2
sudo apt-get install lesstif2-dev
sudo apt-get install lib32z1
sudo apt-get install libaio1
sudo apt-get install libaio-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6-dev-i386
sudo apt-get install libc6-i386 
sudo apt-get install libelf-dev
sudo apt-get install libltdl-dev
sudo apt-get install libmotif4
sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
sudo apt-get install libpth-dev
sudo apt-get install libpthread-stubs0
sudo apt-get install libpthread-stubs0-dev
sudo apt-get install libstdc++5
sudo apt-get install lsb-cxx
sudo apt-get install make
sudo apt-get install openssh-server
sudo apt-get install pdksh
sudo apt-get install rlwrap
sudo apt-get install rpm
sudo apt-get install sysstat
sudo apt-get install unixodbc
sudo apt-get install unixodbc-dev
sudo apt-get install unzip
sudo apt-get install x11-utils
sudo apt-get install zlibc

4.创建用户(此步可省略,直接使用当前的用户即可,下面的安装过程都是以不执行这一步为准的)

sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -g dba  -d /opt/oracle -s /bin/bash oracle
sudo passwd 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

6.修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,按i键进入编辑模式,将下列内容加入该文件(下面是例子):

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

然后执行下面的命令,立即生效

sudo sysctl -p

7.添加对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

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

session required pam_limits.so

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

ession required pam_limits.so

9.创建需要的文件夹(用于安装oracle)并设置其所有权:

mkdir -p /opt/oracle
mkdir -p /opt/oraInventory
chown -R oracle:oinstall  /opt/oracle
chown -R oracle:oinstall  /opt/oraInventory

10.oracle本身并不支持ubuntu来安装,所以要进行欺骗oracle的安装程序:

sudo mkdir /usr/lib64 
sudo ln -s /etc /etc/rc.d 
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/ 
sudo ln -s /usr/bin/awk /bin/awk 
sudo ln -s /usr/bin/basename /bin/basename 
sudo ln -s /usr/bin/rpm /bin/rpm 
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/ 
sudo echo ‘Red Hat Linux release 5′ > /etc/redhat-release 

 

11.在命令行下面输入下面的命令:

sudo xhost +
su - oracle

切换为oracle用户。

12.我们编辑oracle用户的 .bash_profile文件。

vi .bash_profile #也可以写在.bashrc文件中

在文件中输入如下的内容:

#Oracle
#这个写刚刚创建的文件夹
export ORACLE_BASE=/opt/oracle 
#这个后面可以随便填写
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
#数据库的sid
export ORACLE_SID=orcl

export ORACLE_UNQNAME=orcl
#默认字符集
export NLS_LANG=.AL32UTF8
#环境变量
export PATH=${PATH}:${ORACLE_HOME}/bin/;

 

13.

下载Oracle安装程序(推荐windows下使用迅雷下载,因为这样是用p2p直接download,而不用登录oracle账户):

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

下载Linux x86的那两个文件(64位系统就下Linux x86-64),解压后得到database文件夹。

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

14.下面我们就来安装了

cd database
chmod 777 runInstaller
./runInstaller

15.图形安装界面的第一步是填写电子邮件,但是填完可能会出错:Unexpected error occurred while  validating inputs at state  'getOCMDetails'。这是由于缺少pdksh依赖包,简单的解决办法是不填写邮件地址,不勾选下面的复选框,直接下一步,弹出提示后点 ‘Yes’就能直接进入下一步了。完美的解决办法可以到网上去看。

oracle install 1

然后和windows平台上一样,不停的“next”就可以了

需要注意的就是第6步的时候会发现所有的检查几乎都会failed,而且next也没有办法点击,这个时候我们点击“复选框”“ignore all”(好像是这个),然后就可以next了,参考文章里是这么写的:图形界面下进行依赖检查的时候会列出很多依赖检查失败了,无法进入下一步了,此时选中右上角的‘忽略所有’就可以进入下一步了。

16.然后就是安装过程,安装过程会出现几个错误,这里大致说一下

(1)安装到68%时的错ins_ctx.mk的错误提示,直接contiue跳过去,百度一下知道:应该是上面没有安装glibc-devel导致的,但这是Red-Hat才有的包,具体可以参考http://www.ha97.com/4850.html里面的描述。如果你用CentOS来安装你会发现问题少了许多。这里我们直接跳过,目前我没有发现什么不对劲。

(2)然后我们遇到第二个问题(大致是下面的格式,图片是参考文章里的):

Exception String: Error in invoking target 'agent nmhs' of makefile '/opt/oracle/product/11.2.0/dbhome/sysman/lib/ins_emagent.mk'.
See '/opt/oraInventory/logs/installActions2016-12-23_10-33-22AM.log' for details.

oracle install error2

我们新开一个终端,登录oracle用户。下输入下面的命令:

sed -i 's/^\s*\$(MK_EMAGENT_NMECTL)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

然后点击“Retry”继续安装

(3)然后出现了下面的这个错误(大致是下面的格式,图片是参考文章里的):

Error in invoking target 'all_no_orcl ihsodbc' of makefile '/opt/oracle/rdbms/lib/ins_rdbms.mk'.
See '/opt/oracle/oraInventory/logs/installActions2016-12-23_10-40-59AM.log' for details,

错误3

解决办法:

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
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

然后在图形界面点击‘Retry’就能继续安装了。

19.最后应该就顺利完成了,按照安装程序提示最后执行两个脚本:

sudo /opt/oracle/oraInventory/orainstRoot.sh  
sudo /opt/oracle/Oracle11g/product/11.2.0/dbhome_1/root.sh

就完成了全部的安装。可以通过https://localhost:1158/em进行网络访问了。

最后卸载oracle的方法:

g.卸载Oracle的方法:

$ORACLE_HOME/bin/localconfig delete    
rm -rf $ORACLE_BASE/*    
rm -f /etc/oraInst.loc /etc/oratab    
rm -rf /etc/oracle    
rm -f /etc/inittab.cssd    
rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv 
rm -rf $ORCLE_HOME

参考文章:

http://www.linuxidc.com/Linux/2015-03/115264.htm

http://www.iteye.com/topic/1134519

http://blog.csdn.net/idber/article/details/9039857/

https://my.oschina.net/farces/blog/279434

2016-12-24
                         
暂无评论

发表回复