Ubuntu 14.04 LTS 64位安装Oracle 11g


安装需要花费比较长的时间(甚至要用两天时间),会遇到很多问题,请做好心理准备。

 

先说一下大致过程:

1.       下载好软件包,建立好用户,ftp放到用户目录下,解压好。

2.       接下来有两种方法,第一种使用命令行静默安装(例如:./runInstaller -silent -force -responseFile /tmp/db_install_swonly.rsp ),这个方式很可能会误入歧途,因为可能是一个小错误问题,本来不需要处理,但被你发现了,结果花费好几天解决不了,其实那根本不用处理!第二种图形界面安装,使用图形界面就要安装Xwindow,例如KDEgnome(apt-get install gnome-panel)UBUNTU unity(apt-get install ubuntu-desktop) 需要的时间比较长。由于图形界面可以进行重试,可以边安装边解决问题,建议使用。图形界面需要客户端,例如xmanager5(xmanager需要在属性里设置颜色为精准,服务器执行

export DISPLAY=192.168.1.6:1.0

并运行xclock,如果xmanager的黑白点界面出现一个时钟就可以了。

然后运行Oracle./runInstaller

)

3.       在图形界面的检查环境那里全部忽略掉。(如果能减少尽量减少错误)

4.       遇见错误再挨个解决。图形界面建议安装并配置数据库,静默安装建议先安装数据库。

5.       完成后运行两个脚本,第二个直接回车即可。

6.       启动数据库

 

详细请参考:

 

 

用户(没有强制要求,但建议使用新的用户)

groupadd oinstall

 useradd -m oracle -G oinstall

 passwd oracle

 

 

 

很多都是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

 

 

 

JDK是必须的,而且是6以上,验证版本:

java –version

 

 

解压

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

 

 

检查系统变量

/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/security/limits.conf 文件中增加以下数据
oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

oracle              soft    stack   10240

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

session required pam_limits.so
同样检查/etc/pam.d/su,解除注释:

session required pam_limits.so

创建目录

mkdir /usr/local/oracle

chown -R oracle:oinstall  /usr/local/oracle

 

 

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/libpthread_nonshared.a /usr/lib64/libpthread_nonshared.a

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

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.5 /lib64/

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.5 /usr/lib64/

 

libstdc++5-3.3.6-4mdv2009.0.x86_64.zip里有liblib64,里面的两个文件分别拷贝到/usr/lib/i386-linux-gnu/usr/lib/x86_64-linux-gnu(解决一个问题比较头疼:找不到memcpy@GLIBC_2.14(libstdc++5)

ln -s /usr/lib/i386-linux-gnu/libstdc++.so.5 /usr/lib/   32位连接,不知道不建行不行,请测试

 

 

copylink步骤都要正常安装才没有问题。一定要解决好。(copy步骤之后,目录下才有东西,才能执行下面的命令,静默安装不晓得能不能分步骤运行)

尤其是link,会出现很多错误,错误要认真对待,如果是cannot find **.so或者File or directory does not exists要检查上面的ln命令是否正常。

 

如果遇到这个错误,且提示的是link错误(不是什么东西找不到也不是memcpy@GLIBC_2.14引用错误),说明快好了:(忘记截图了,网络图片)

 

 

 

看到上面这个错误,就执行下面这几个命令(已经验证过,直接执行吧。有些错误,和它们要解决的问题在网络上的说法不一致,但是执行完后数据库软件就能安装上了,但配置数据还会有其他错误。)

 

export ORACLE_HOME=/usr/local/oracle/app/oracle/product/11.2.0/dbhome_1

 

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

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

 

软件安装完成,开始配置网络,我遇到了net assistant 错误,等了一会retry又好了。

之后遇到ementerprise manager)的端口申请错误,不过提示说稍后可以使用emca重新安装,就忽略了:

 

 

 

 

然后就成功了:



 

 

 

之后提示要执行:

# /usr/local/oracle/app/oraInventory/orainstRoot.sh   

# /usr/local/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

之后就结束了,窗口自动关闭。

 

Vi .profile

 

export ORACLE_HOME=/usr/local/oracle/app/oracle/product/11.2.0/dbhome_1

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

export PATH=$PATH:$ORACLE_HOME/bin

 

cd

source .profile

 

vi /etc/oratab N修改成Y

orcl:/usr/local/oracle/app/oracle/product/11.2.0/dbhome_1:Y

启动:dbstart $ORACLE_HOME

Sql测试:sqlplus system@orcl    或者sqlplus "sys@orcl as sysdba"

输入密码

Sql>select * from dual;

 

成功!

 

 

 

以下内容不是必须的

 

注:关闭数据库:dbshut $ORACLE_HOME

 

 

重新配置监听:

cd /usr/local/oracle/app/oracle/product/11.2.0/dbhome_2/bin

./lsnrctl stop

../network/admin/listener.ora:

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME = /usr/local/oracle/app/oracle/product/11.2.0/dbhome_2)

      (SID_NAME = orcl)

    )

  )

 

LISTENER =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.251)(PORT = 1521))

  )

 

ADR_BASE_LISTENER = /usr/local/oracle/app/oracle

 

../network/admin/tnsnames.ora

LISTENER_ORCL =

  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.251)(PORT = 1521))

 

 

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.251)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

 

./lsnrctl start

Service "orcl" has 1 instance(s).

  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

./tnsping orcl

OK (0 msec)

之后就可以远程连接数据库了

 

 

修改字符集,如果安装错了字符集还可以修改,这个要尽早修改:

登录sqlplus "sys@orcl as sysdba"

查看:select userenv('language') from dual;

然后一句一句执行以下代码:

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter system enable restricted session;

SQL> alter database open;

SQL> alter database character set internal_use AL32UTF8;

SQL> shutdown immediate;

SQL> startup;

SQL>alter system disable restricted session;

 

 

Impdp命令错误:ORA-39213: Metadata processing is not available解决方法

Sys用户登录:

Sql>execute DBMS_METADATA_UTIL.load_stylesheets;

 

附件zip:本文以及本文需要的包 例如stdlibc++5。

 

参考:

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

http://www.linuxidc.com/Linux/2011-09/43254.htm

 

http://makina-corpus.com/blog/metier/archives/howto-install-oracle-11g-ubuntu-linux-1204-precise-pangolin-64bits

 

 

 

 

 

猜你喜欢

转载自bnmnba.iteye.com/blog/2327063