您的位置:首页 > 数据库 > Oracle

ubuntu14.04安装Oracle_linux_x64_11gR2

2016-03-21 15:06 411 查看

ubuntu14.04安装Oracle_linux_x64_11gR2

首先,真的装的快崩溃了,各种问题各种错误,各种头疼。现在就记录下来一是分享,二是自己参考,其中有很大一部分是看了网上别人的安装教程,可是版本问题,比较久远的解决办法就失效了,导致我又要重新查找。下面看下操作步骤:

如果你还没有安装ubuntu系统或是感觉自己的ubuntu系统版本低,想换的话,请在分区时,把交换分区(swap)设定得大一些(最少**4.5**G)。

ubuntu linux默认有自己的OpenJdk,交给超级牛力去做就行,终端键入:

$sudo apt-get install openjdk-7-jre
$sudo apt-get install openjdk-7-jdk


jdk安完以后可以去终端看一下版本信息:

java -version


下面开始进入正题,安装oracle:

1.更新系统:(这步我没做,14.04是ubuntu最新一版系统,系统服务差不多都是比较新的版本,外加自己手工安过一堆deb包)

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


(第一个错误信息就出在这里,几经查找,找到了解决办法

:<–sudo echo deb http://old-releases.ubuntu.com/ubuntu raring main restricted universe multiverse >/etc/apt/sources.list.d/ia32-libs-raring.list

)–>

上面这个如果解决不了就再来一个

{

sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
rm ia32-libs-raring.list}


sudo apt-get install ksh
sudo apt-get install less
sudo apt-get install lesstif2
sudo apt-get install lesstif2-dev


(第二个问题出在这里:这里的lesstif2和lesstif2-dev都已经不能用了,解决办法是拿另一个替代: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
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


至此,安装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 = 2097152kernel.shmmax = 536870912
kernel.shmmni = 4096kernel.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,增加以下行(有了就不用增加了):

session required pam_limits.so


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

session required pam_limits.so


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

mkdir -p /opt/oracle
mkdir -p /opt/oraInventory
chown -R oracle:oinstall  /opt/oracle
chown -R oracle:oinstall  /opt/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/
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


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

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

正式安装Oracle,为database文件夹下的runInstaller文件赋予可执行权限:

chmod 777 runInstaller


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

export LANG=US


然后执行安装程序

./runInstaller


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

email的那个勾去掉,不要发送。

然后一步一步走下去,当你到需要输入密码的那个界面输入123456,123456,可能会违反oracle的加密规范,不用管,继续下去。

还有一个报错是关于swap文件的,这说明你之前给oracle的安装空间太小了。

关于这个的解决办法是:

可以另开一个终端用下面的命令临时提升交换空间,再去recheck一下,就行了:

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


安装到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


点击安装界面的retry,就可以继续了

或许有的还会
Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'
需要注意,就手动解决吧:

另外开启一个终端窗口,将ins_emagent.mk文件中的
$(MK_EMAGENT_NMECTL)
更改为
$(MK_EMAGENT_NMECTL) -lnnz11
,然后在安装过程中点击Retry即可

类似的后面还会提示四次,以下面的命令行如法炮制

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


下面的安装过程就没有什么问题了。

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

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


当然走到这里你已经安装成功,你现在可以试着在你的终端上输入

su – oracle


接着输入:

$ sqlplus "/as sysdba"


原本的画面会变为

SQL>

接着请输入

SQL> startup


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

先更新到这里,后面我还会来来回回再装几遍,然后把遇到的问题记录在此。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: