ubuntu16.04安装Oracle_linux_x64_11gR2

ubuntu16.04安装Oracle_linux_x64_11gR2


标签: ubuntu16—Oracle

来来回回在ubuntu14和16上安装了好多次oracle,有成功也有失败,现在把整个过程记录下来,为了以后能更方便更顺利的安装,这篇文章主要是基于在Ubuntu14上安装完成后写的也是参考了不少文章ubuntu14.04安装Oracle_linux_x64_11gR2

  • Java的安装
  • Oracle安装前的准备
  • Oracle的安装环境配置
  • 安装Oracle

首先你需要一个ubuntu16的虚拟机,我是在Vmware上安装的,这里有一个连接是关于[ubuntu16][1]的里面有一些小技巧特别是有两个挺好用的:

点击缩小图标最小化:

gsettings set org.compiz.unityshell:/org/compiz/profiles/unity/plugins/unityshell/ launcher-minimize-window true

任务栏位置更改:
gsettings set com.canonical.Unity.Launcher launcher-position Bottom

安装好后,进行Java的安装,就是先下载,然后配置JDK,这里主要记录下JDK的环境变量的配置:
export JAVA_HOME=/opt/Java/jdk/jdk1.7
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

完了之后别忘记source .profile一下,然后再java -version


Oracle安装前

在Oracle安装之前,还需要对系统进行一系列的包的检查,以下是将ubuntu14的步骤拷贝过来,包名也没改,有的可以有的不可以装,反正就是尽量都安装了,当然也会遇到不少问题,下面就一一来看吧:

sudo apt-get update
sudo apt-get dist-upgrade
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

截止到这里会出现第一个头疼的问题,关于ia32-libs的找了好久都没有解决的办法。
最后实在不行,只能用lib32z1进行替代了

sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install libmotif-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-dev
sudo apt-get install libstdc++5
sudo apt-get install lsb-cxx
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

至此,安装oracle的前奏才刚刚开始,下面是检查系统变量


Oracle的安装环境配置

/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

然后根据上面命令中得到的参数值在sudo /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

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

sudo /sbin/sysctl -p(这个地方有可能你也会报错,原因是因为你当前的用户不对,换个窗口就可以。)

添加对oracle用户的内核限制在 /etc/security/limits.conf 文件中增加以下数据

xxx              soft    nproc   2047
xxx              hard    nproc   16384
xxx              soft    nofile  1024
xxx              hard    nofile  65536
xxx              soft    stack   10240

这里的xxx是你装oracle的用户的名字。

查看/etc/pam.d/login,增加以下行(有了就不用增加了):
同样检查/etc/pam.d/su,没有以下行就自己加上:

session required pam_limits.so

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

mkdir -p /home/jovi/doc/oracle
mkdir -p /home/jovi/doc/oraInventory
chown -R oracle:oinstall  /home/jovi/doc/oracle
chown -R oracle:oinstall  /home/jovi/doc/oraInventory

将所有权设置命令中的用户oracle和组oinstall改为自己当前用户和组(通常二者是一样的),当然这时也可以不执行这两个chown命令,本来目录创建者就是所有者了。另外,需要root权限执行这些命令(sudo,下同)。
为Oracle配置环境变量。这里我为了保险起见,将root下与我安装oracle的用户下的.profile都设置了这些环境变量。

#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/;

变量设置完成后,别忘记source .profile让变量生效,最好的办法就是再确定一遍:echo $ORACLE_HOME

oracle默认不支持ubuntu需要欺骗一下oracle安装程序(这里是要用sudo 去执行的,或者你已经在root用户下了):

mkdir /usr/lib64 
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/libc_nonshared.a 
ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a 
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 

以上是针对64位系统的,32位就是要将上面的x86_64-linux-gnu就都要改成i386-linux-gnu。

为了解决安装的过程中有一个报错是关于swap文件的,这说明你之前给oracle的安装空间太小了。
关于这个的解决办法是:
可以另开一个终端用下面的命令临时提升交换空间,就行了:

free -m 
mkdir /swapfile 
cd /swapfile 
sudo dd if=/dev/zero of=swap bs=1024 count=4320000 //(这里要根据你安装oracle所需要的多大就是多大,我这个例子是4320M,依次参考)
sudo mkswap -f swap 
sudo swapon swap

安装Oracle

下载Oracle安装程序:这个就不用多说了,下载下来后随便放到一个文件夹下,然后进行解压,这里装过oracle的应该都熟悉,1of2和2of2解压出来都放到database文件夹中。
正式安装Oracle,为database文件夹下的runInstaller文件赋予可执行权限:

chmod 777 runInstaller

跳转到database目录,为了避免后面安装界面出现乱码,需要在这里输入:

export LANG=US

然后执行安装程序

./runInstaller

接下来就一步一步的执行操作:

  1. email的那个勾去掉,不要发送。
  2. 然后一步一步走下去,当你到需要输入密码的那个界面输入123456,123456,可能会违反oracle的加密规范,不用管,继续下去。
  3. 这里最好将character Set:AL32UTF8

安装到68%时,ins_ctx.mk的错误提示,直接contiue跳过去 后面还回报错: make file ‘/……emagent.mk’出错,解决方法: 另开一个终端,键入命令行:

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

sed: 无法读取 /sysman/lib/ins_emagent.mk: 没有那个文件或目录

当执行上一个命令出现这个错误的时候,说明你没有将$ORACLE_HOME生效。

点击安装界面的retry,就可以继续了
完了以后,又回报错 ins_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
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’就能继续安装了。

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

sudo /home/jovi/doc/oraInventory/orainstRoot.sh   
sudo /home/jovi/doc/oracle/product/11.2.0/dbhome_1/root.sh

至此安装成功。
终端下使用“emctl start dbconsole”命令启动em控制台时出现

OC4J Configuration issue.
/opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl
not found. EM Configuration issue.
/opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl not found.
出现这种错误的原因是Oracle会根据获取到的系统主机名来选择使用相应的EM资料库关闭或启动em控制器,比如Ubuntu系统安装时给主机起了个
pavilion的名称,Oracle获取到的主机名就是pavilion,然后会寻找OC4J_DBConsole_pavilion_orcl
和pavilion_orcl这两个资料库完成关闭或启动em控制器的任务。但是Oracle本身只会根据

$ORACLE_HOME/NETWORK/ADMIN/listener.ora

文件中的主机名创建资料库。listener.ora中的HOST默认是localhost,所以Oracle默
认创建的资料库是OC4J_DBConsole_localhost_orcl
和localhost_orcl。因此才出现上述找不到资料库的问题。 解决此问题的办法是:
将$ORACLE_HOME/NETWORK/ADMIN/listener.ora文件中的HOST=localhost改为
HOST=pavilion(paviliion为你的主机名),然后在相应位置完整复制OC4J_DBConsole_localhost_orcl
和localhost_orcl并重命名为OC4J_DBConsole_pavilion_orcl 和pavilion_orcl:

cp -rp /opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_localhost_orcl/opt/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_pavilion_orcl

cp -rp /opt/oracle/product/11.2.0/dbhome_1/localhost_orcl/opt/oracle/product/11.2.0/dbhome_1/pavilion_orcl 

如此就能正常启动和关闭dbcontrol了。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值