ubuntu 安装oracle 11g

来源:互联网 发布:批处理测试端口 编辑:程序博客网 时间:2024/05/21 05:05


第一步:

下载安装包,Oracle实际上都是可以免费从www.oracle.com网站的download页下载的;

我从这里下载:

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

有各个操作系统的版本可供下载。


第二步:

解压安装包,我下载的是.zip文件,使用unzip或者ubuntu下的解压工具进行解压,解压后的目录名叫database,等会

我们将在这个目录启动安装程序,在安装之前,我们还有一些重要的步骤要做。


第三步:

修改环境变量,将home/'用户名'/ 目录下的.bashrc文件打开, home/'用户名' 目录也叫 ~ 目录,'用户名'是你的登录名

我的是/home/vkz

那么我修改.bashrc文件内容如下:

export ORACLE_BASE=~/Oracle/oracle11g
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID='orcl'
export NLS_LANG=.AL32UTF8

建立好的目录绝对路径为:/home/vkz/Oracle/oracle11g

然后现在创建文件夹:

在~目录中也就是/home/username/中创建Oracle/oracle11g,和上面的环境变量对应起来。

mkdir Oracle

cd Oracle

mkdir oracle11g

因为我是直接在本用户中安装,并未新建oracle用户,所以网上其他的安装步骤说的chmod神马的,我这不需要。

把安装变的更简单。


第四步:(这一步看似复杂,其实很简单,关键就是看耐心,多测试)

更新软件和库文件,这一步很蛋疼,因为每一个人的机器不同,有些人可能已经安装了下面我说到的软件和库,有些

朋友可能又没有,所以我们把要用到的库都写在下面,大家自己看着装吧 :)

我先列出Oracle给出的清单:

make-3.80(我的机器上就是3.81)所以不一定要完全一样,最坑爹的主要是有些版本高了可能不行。

例如libstdc++,貌似需要5.0,很多机器上是6.0
binutils-2.15.92.0.2
gcc-3.4.6
libaio-0.3.105
libaio-0.3.105
glibc-2.3.4-2.41
compat-libstdc++-33-3.2.3
elfutils-libelf-0.97
elfutils-libelf-devel-0.97
glibc-common-2.3.4
glibc-devel-2.3.4
glibc-headers-2.3.4
gcc-c++-3.4.6
libaio-devel-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
libstdc++-devel-3.4.6
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11
pdksh-5.2.14
expat-1.95.7

还有如下清单:

alien

binutils

build-essential

cpp-4.4

debhelper

g++-4.4

gawk

gcc-4.4

gcc-4.4-base

gettext

html2text

ia32-libs

intltool-debianksh

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


当然还有apt-get update和apt-get dist-upgrade一下最好...不过这样貌似也矛盾,我反正没这么搞。


建议最好别apt-get install 所有名字,这样可能会导致一些库没安上,比如我的机器上,当我安装libdb4.8的时候,就提示:

这个库已经过时,推荐db4.8-utils,所以最好一个个的安装,看看有些什么提示。当然我不敢打保票,不过我倒不是全部

都去装了也一样可以成功安装oracle,所以.... 大家自己看着办吧,嘻嘻....


第五步:

这一步主要是欺骗安装程序的,如果后面出现make错误,这一步也是需要的,所以主要是建几个符号链接,到时候找目录

的时候,骗骗安装程序。(windows中安装oracle就没有make这一步,其实很多人都是在这一环节上失败的,不要担心

只要你够坚强和耐心,失败几次肯定会成功的,我就失败了4次,我是在linux下安装了4次oracle才成功的,用了我一个下

午的时间,现在想想也不像一些朋友夸张的那样,什么安装失败了要重装系统,什么需要多牛B的技术...... 我艹安个软件能

有多难啊??总能装上吧?如果一个软件装不上,那oracle这个公司不是太失败了?我晕... 说多了,回到正题。。。)


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/


后来我又在usr/lib目录中加了这个链接

ln -s libstdc++.so.6 libstdc++.so.5

然后是在/etc目录中新建redhat-release文件

写入Red Hat Linux release 5

然后保存退出


第六步:(检查系统变量)

sudo vim /etc/pam.d/login

增加以下行(有了就不用增加了)
session required pam_limits.so
sudo vim /etc/pam.d/su

session required pam_limits.so


使用命令sysctl命令进行查看内核参数,并且将我们需要的参数记录下来,可以用文本文件单独记录一下后面需要使用。

在终端的命令输入处,输入:(如果环境变量path有/sbin,那么直接输入sysctl,否则使用/sbin/sysctl)

sysctl -a | grep sem

这条命令的意思是:参数 -a 是用来显示所有变量的,所以直接-a显示会有很多内容,那么我们才使用 | 管道,将输出结果通过 grep 来进行筛选。

上面这条命令就是筛选出名字叫 sem 的内容。

我的系统中,该变量的内容显示为:

kernel.sem = 2503200032128

然后依次对下面的关键字进行筛选并将其变量的结果记录下来:

shm

file-max

aio-max

ip_local_port_range

rmem_default

rmem_max

wmem_default

wmem_max

在将其结果添加到/etc/sysctl.conf文件中,我添加的内容如下:(每台计算机的结构是不一样的)

kernel.sem = 2503200032128

kernel.shm_rmid_forced = 0

kernel.shmall = 2097152

kernel.shmmax = 33554432

kernel.shmmni = 4096

fs.file-max = 201317

fs.aio-max-nr = 65536

net.ipv4.ip_local_port_range = 3276861000

net.core.rmem_default = 212992

net.core.rmem_max = 131071

net.core.wmem_default = 212992

net.core.wmem_max = 131071

在 /etc/security/limits.conf 文件中增加以下数据

‘username’softnproc
2047

‘username’hardnproc
16384

‘username’softnofile
1024

‘username’hardnofile
65536

‘username’softstack
10240

 username 写自己的账户名,我的是vkz,我就写成:

vkzsoft
nproc2047,后面依次类推...

将上面的变量添加后,我们需要更新内核参数,使用下面这个命令:

sysctl -p


第七步:

现在可以安装 了,进入之前解压缩的database目录中,ls一下,

见到runInstaller了吗,现在我们就可以./runInstaller了。

当然也可以使用参数-ignoreSysPrereqs来跳过后面的检测。

我反正没有使用,都是手动跳过的...

安装的时候其实没有什么一路next即可,在有目录的地方最好检查一下是不是

我们上面建立的/Oracle/oracle11g,涉及到用户组的选择都手工改一改,改

成你的登录的那个名字一样的组,我是把adm改成vkz。

还有就是我是在安装的时候选择仅安装数据库软件,安装成功后在去手动建立

数据库。当然这个应该不管事。都差不多。


问题的关键是make错误,这里给出一个简单的处理方法,在安装的过程中,

在make那一个环节的时候,如果报错,先不要退出安装程序,重新打开一个

终端,然后去修改一下文件中的内容:

首先修改$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,打开后找到

找到190行将其$(MK_EMAGENT_NMECTL)后面加上-lnnz11,记得有空格喔..

加上后是$(MK_EMAGENT_NMECTL) -lnnz11

保存退出...


然后修改$ORACLE_HOME/bin/genorasdksh文件,打开后找到288行

在$LD $LD_RUNTIME这句的后面加上-Wl,-no-as-needed修改成:

$LD $LD_RUNTIME -Wl,-no-as-needed $LD_OPT.....


然后修改$ORACLE_HOME/srvm/lib/ins_srvm.mk,找到第61行,将

$(OCRLIBS_DEFAULT)前面加上-Wl,-no-as-needed


然后修改$ORACLE_HOME/network/lib/env_network.mk,找到2150行

TNSLSNR_LINKLINE=$(LINK) $(TNSLSNR_OFILES)在这个后面加上

-Wl,-no-as-needed


最后修改$ORACLE_HOME/rdbms/lib/env_rdbms.mk文件,找到:

ORACLE_LINKLINE=$(ORACLE_LINKER) 在后面加上-Wl,-no-as-needed


修改后,回到安装界面,点击retry,我就是这样搞定的... 主要是编译的问题...


最后安装完成后,到$ORACLE_HOME/bin目录里执行netca和dbca。

netca是网络配置,用于创建后修改网络相关内容

dbca是数据库配置,用于创建和修改数据库类容

如何配置,这个就不在本文讨论范围了,实际上很简单的,各位可以自己试试。


都搞定后,我么你就可以在$ORACLE_HOME/bin目录中执行sqlplus了

测试没有问题,也可以在$ORACLE_HOME/sqldeveloper目录中执行sqldeveloper.sh

然后看看能不能链接。以及在通过局域网链接。我这里都一一成功。所以祝各位

好运了。。。



对了,安装界面乱码的问题,我没遇到,我采用的是系统语言是英语为主,但是

支持汉语,就是系统是英文的,但是可以正常显示中文,所以安装界面是英文,

我就没有遇到乱码的问题,所以我就没有实验过了,相信应该也不难。


最后说一句,不要把这些想的太难,别听其他人怎么说,相信自己就可以。

0 0
原创粉丝点击