我一直特别喜欢Linux系统,也喜欢在Linux下完成一些项目开发,以前一直有想法在Linux系统上装Oracle数据库,以前在网上找到的安装步骤很繁琐,所以我就放弃了,但是自己还是不死心,最近这几天我还是按照网上所教的步骤,一步一步的安装下来了,但是在安装过程中发现网上的文档步骤上存在错误(当然也可能是系统和软件不同导致的安装步骤不同),特别是一些技术人员在自己的博客中转载别人的文章,所以网上看到的文档几乎都是一摸一样,所以我想把自己的安装过程详细的记录下来,算作是自己的学习心得,同时也分享给大家:
一、系统软件版本:(由于系统和软件的不同版本可能导致安装步骤,文件配置不同,所以我只介绍我所采用的版本安装过程)
软件:
Linux版本:[红帽企业Linux.5.4].rhel-server-5.4-i386-dvd.iso
Oracle版本:linux_11gR1_database.zip
我是采用Vmware虚拟机软件为载体,将Linux系统安装在虚拟机上,这样的好处是可以在一台电脑上运行多个系统,模拟系统之间远程连接,对于学习很有帮助。当然,对于如何在虚拟机上安装Linux系统,在此不做详细的介绍。
二、准备安装环境
(1) 创建必要的目录和组(以root用户登陆,用户帐户将称为 oracle,而组将称为 oinstall 和 dba。)
命令如下:
#mkdir -p /home/u01/oracle//创建目录
#groupadd dba//创建dba用户组
#groupadd oinstall//创建Oracle安装用户组
#useradd oracle//创建oracle用户
#chown -g oinstall -G dba /home/u01/oracle oracle//将oracle用户添加到dba和oinstall组中
#passwd oracle //设置密码
#chown -R oracle:oinstall /home/u01 把u01目录赋予oracle用户oinstall组
(2) 安装和更新必要的软件包
注意:Linux的软件包之间有的存在依赖关系,所以有些软件包之间安装一定要有顺序,否则会提示错误,导致安装失败,我下面列出的软件包安装顺序是经过我的试验的,网上的文档存在错误,大多在这里,一般是安装顺序不对,导致安装失败。
安装顺序:(这些软件包在Linux系统镜像文件中都可以找到:光盘镜像中server文件夹中都可以找到)
binutils-2.17.50.0.6-12.el5.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
elfutils-libelf-0.137-3.el5.i386.rpm
elfutils-libelf-devel-0.137-3.el5.i386.rpm
kernel-headers-2.6.18-164.el5.i386.rpm
glibc-headers-2.5-42.i386.rpm
glibc-devel-2.5-42.i386.rpm
libgomp-4.4.0-6.el5.i386.rpm
gcc-4.1.2-46.el5.i386.rpm
libstdc++-devel-4.1.2-46.el5.i386.rpm
gcc-c++-4.1.2-46.el5.i386.rpm
glibc-common-2.5-42.i386.rpm
glibc-2.5-42.i686.rpm
libaio-0.3.106-3.2.i386.rpm
libaio-devel-0.3.106-3.2.i386.rpm
libgcc-4.1.2-46.el5.i386.rpm
libstdc++-4.1.2-46.el5.i386.rpm
make-3.81-3.el5.i386.rpm
sysstat-7.0.2-3.el5.i386.rpm
unixODBC-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm
(注意:在oracle官方给出的安装需求文档,有些rpm包没有提到,但是这些包可能是其他一些必须包所依赖的包,也必须要安装才可以。另外,对于不同版本的redhat镜像系统,rpm包版本可能不同,但是一定是这些名称的包。还有,Linux安装光盘中有两个glibc-2.5-42包一个是i386.rpm 另一个是i686.rpm,安装时安装i686.rpm i386.rpm会与其他包产生冲突,导致安装失败。)
(3) 设置linux内核打开修改/etc/sysctl.conf,在最后加入以下内容:
(vi /etc/sysctl.conf打开,加完以后安 ESC +:+w 保存,ESC + : + q 退出)
kernel.shmall = 268435456
kernel.sem=1055 32000 100 128
kernel.shmmax=2147483648
kernel.shmall = 2097152
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.conf.default.rp_filter = 0
net.core.optmem_max = 65535
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
注意:结束后#sbin/sysctl -p 执行一下,使系统生效
(4) 修改 /etc/security/limits.conf,加入内容(修改方法同上)
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
(5)修改/etc/profile,加入内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
注意:在进行完这步操作之后,有些时候会出现一些小错误,错误现象是我们使用su命令在root和oracle用户之间切换时会提示下列错误:
-bash: [oracle: command not found
-bash: [root: command not found
解决这个问题很简单:在修改profile文件时第一行、第二行中
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
中括号与内容之间一定要有空格,如果没有空格,会提示上面的错误的。
例如if [$USER = "oracle"]; then
if [$SHELL = "/bin/ksh"]; then
和上面比较一下,错误很明显的。
(6)编辑 /etc/pam.d/login
添加以下行:
session required /lib/security/pam_limits.so
session required pam_limits.so
以上六步的完成均是在root用户登录下,下面将用户切换到oracle用户
使用命令#su – oracle切换用户
打开 v .bash_profile 加入(/home/oracle)
ORACLE_BASE=/home/oracle/app
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.1.0/db_1
ORACLE_SID=orcl(设定SID名称,一般为数据库名字)
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
三、进行安装
进入root用户把你下的linux_11gR1_database.zip用unzip linux_11gR1_database.zip
解压出来得到database,把它移动到/home、u01目录下
#mv database /home/u01
#chown -R oracle:oinstall /home/u01/database
这时使用oracle用户登录到Linux图形用户界面
su oracle 在database目录下$./runInstaller
(注意:有些文章提示在命令行中执行./runInstaller会提示如过提示diaplay变量错误,需要执行#xhost + , #xhost + localhost两个命令,不过本人安装中没有遇到这个问题。)
在接下来的安装中,我都是采用默认安装的方式,默认装时Linux系统默认将程序安装在/home/oracle目录中
在安装过程中会弹出一个要求执行oraInstRoot.sh和root.sh的提示框,可在命令行窗口中,以ROOT用户执行这两个文件,在图形界面打开命令窗口,切换到root用户,按照提示进入两个文件所在目录,分别执行两个文件 ./oraInstRoot.sh ./root.sh。在安装的过程中,在安装路径的选择上本来可以更改安装目录,将Oracle安装在我们新建的目录/home/u01/oracle下的,但是我在安装时疏忽了这一点,系统进行了默认方式安装,安装路径在/home/oracle/app但是这并不影响使用。如果有人更改了默认的安装路径,那么在/home/oracle中./bash_profile文件中
ORACLE_BASE=/home/oracle/app、
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.1.0/db_1
中内容要进行相应的修改。
经过一段时间的等待之后,oracle数据库就已经安装完毕了。
四、一些小的错误的修正(注:这些操作均是在oracle用户登陆下完成的。)
(1)安装完毕之后,我们可以退出Linux的X-windows环境了,继续在控制台上以命令行的方式操作,当我们输入sqlplus /nolog时会提示下面的错误
cannot restore segment prot after reloc: Permission denied
这是SELinux搞的鬼,解决办法有两个
1. 使用chcon 命令
示例: chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so
(注:这种方法本人没有试验,不知道效果。)
2. 禁止掉SELinux
更改/etc/sysconfig/selinux 文件的内容为 SELINUX=disabled
(注:本人采用的是这种解决方法,解决了这个问题。)
(2)在安装完oracle之后如果想要使用数据库必须要启动数据库的监听器,一般我们安装完数据库之后就已经建立好了监听器,我们只要启动就可以了,在控制台使用以下命令;
A、lsnrctl start //启动监听器命令
B、lsnrctl stop //关闭监听器命令
C、lsnrctl status //查看监听器的状态
(3)在使用sqlplus 连接数据库时还有可能出现如下错误:
提示ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
有人说解决这个问题的办法是改sqlnet.ora将认证方式改为none也没有用。这一点我试过不好用的,不敢恭维,也许遇到的问题不同吧。我采用的一下方法解决的:输入一下命令
1、sqlplus /nolog
2、conn / as sysdba
3、startup
相关推荐
详细介绍了linux redhat enterprise 5.4的安装过程以及oracle 10g的安装过程以及vnc服务的配置
操作规范(二)——Linux 5.4安装Oracle 10.2.0.4 redhat linux 5.4 安装Oracle 10.2.0.4 截图 图文并茂
Redhat Enterprise linux 5.4 32bit/64bit上安装Oracle10g 解决em/dbca乱码问题 配置oracle随linux系统自启动
#rpm –q telnet --------一般不需要安装,redhat linux 5.4默认有 #rpm –q telent-clinet #rpm –q telnet-server 若上面显示没有安装或不存在,则需要安装软件包 2、我是通过U盘拷贝到服务器上的,你可以在在...
#rpm –q telnet --------一般不需要安装,redhat linux 5.4默认有 #rpm –q telent-clinet #rpm –q telnet-server 若上面显示没有安装或不存在,则需要安装软件包 2、我是通过U盘拷贝到服务器上的,你可以在在...
在vmware下安装redhat linux 5.4 环境与oracle 10g 数据库
安装成功后,运行sqlplus时,需要加载一个shell文件,使用root用户执行以下命令给oracle用户赋予执行权限 [root@localhost oracle]# chcon -t textrel_shlib_t '/opt/oracle/product/11.2.0/dbhome_1/lib/libclntsh....
Redhat linux企业版5.4 下oracle 10g 安装说明
自编实验文档VMware Server 2.0.2.203138 +RedHat Linux 5.4 -32bit +Oracle 10g R2 RAC 文档内容稍有点乱,没有太多时间整理,但绝对全面,望大家理解。
在RedHat Enterprise Linux 5.4中安装Oracle11gR1 的详细文档。
64位RedHat5上安装Oracle 10g,从操作系统到安装完成,再数据库升级到4,适合初学者实验在Linux环境安装Oracle。
linux下安装oracle所需rpm(红帽企业Linux.5.4--32位),真的很全哦
oracle10G在linux下的安装步骤
这里的文档是我亲自试验过的,提供的补丁包分安装前使用以及安装后使用。 友情提示:这里是linux redhat 5.4 32位
Redhat_Enterprise_Linux_5.4+_ORACLE_10g安装具体图文步骤
记录在生产环境上成功实施的oracle11g rac 群集心得。 环境 redhat linux5.4 64位 oracle11gr2 grid
p3006854_9204_LINUX.zip compat-gcc-32-c++-3.2.3-47.3.i386.rpm compat-gcc-32-3.2.3-47.3.i386.rpm compat-db-4.2.52-5.1.i386.rpm
在vmware下安装redhat_linux_5.4_环境与oracle_10g_数据库
该文档记录了个人在一个真实项目中实施oracle群集环境的记录文档,其中环境是RedHat linux5.4 64位 oracle11gR2 grid 。分享给大家,希望对大家有帮助。