作者:周巍铠 2012-03-03晚编写整理:如果有问题,可以联系我,QQ:735820898,加Q请说明oracle
软件安装成功后运行的效果图在本文末尾处。
第一步:
下载安装包,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
然后看看能不能链接。以及在通过局域网链接。我这里都一一成功。所以祝各位
好运了。。。
对了,安装界面乱码的问题,我没遇到,我采用的是系统语言是英语为主,但是
支持汉语,就是系统是英文的,但是可以正常显示中文,所以安装界面是英文,
我就没有遇到乱码的问题,所以我就没有实验过了,相信应该也不难。
最后说一句,不要把这些想的太难,别听其他人怎么说,相信自己就可以。