Linux下安装Oracle11g服务器

http://www.cnblogs.com/zhangyongli2011/archive/2012/04/04/2431953.html


安装环境

                     Linux服务器:SuSe10 sp2 64位

                     Oracle服务器:Oracle11gR2 64位

系统要求

  1. Linux安装Oracle系统要求

 

系统要求

说明

内存

必须高于1G的物理内存

交换空间

一般为内存的2倍,例如:1G的内存可以设置swap 分区为3G大小

硬盘

5G以上

 

 2.修改操作系统核心参数

在Root用户下执行以下步骤:

1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件

输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件。

oracle   soft    nproc    2047
oracle   hard    nproc    16384
oracle   soft    nofile     1024
oracle   hard    nofile    65536

编辑完成后按Esc键,输入“:wq”存盘退出

 

2)修改/etc/pam.d/login 文件,输入命令:vi  /etc/pam.d/logini键进入编辑模式,将下列内容加入该文件。

session   required    /lib/security/pam_limits.so
session   required    pam_limits.so

编辑完成后按Esc键,输入“:wq”存盘退出

 

3)修改linux内核,修改/etc/sysctl.conf文件,输入命令:vi  /etc/sysctl.confi键进入编辑模式,将下列内容加入该文件

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

编辑完成后按Esc键,输入“:wq”存盘退出

 

4)要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl  -p 显示如下:

linux:~ # sysctl -p

net.ipv4.icmp_echo_ignore_broadcasts = 1

net.ipv4.conf.all.rp_filter = 1

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

 

5)编辑 /etc/profile ,输入命令:vi  /etc/profilei键进入编辑模式,将下列内容加入该文件。

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
  ulimit -p 16384
  ulimit -n 65536
else
  ulimit -u 16384 -n 65536
fi

fi

编辑完成后按Esc键,输入“:wq”存盘退出

 

6)创建相关用户和组,作为软件安装和支持组的拥有者。

创建用户,输入命令:

groupadd  oinstall
groupadd  dba

创建Oracle用户和密码,输入命令:

useradd -g oinstall -g dba -m oracle

passwd  oracle

然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认

 

7)创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:

输入命令:

mkdir /home/oracle/app

mkdir /home/oracle/app/oracle

mkdir /home/oracle/app/oradata

mkdir /home/oracle/app/oracle/ product

 

8)更改目录属主为Oracle用户所有,输入命令:

 

chown -R oracle:oinstall /home/oracle/app

 

9)配置oracle用户的环境变量,首先,切换到新创建的oracle用户下,

输入:su – oracle  ,然后直接在输入 : vi .bash_profile

i编辑 .bash_profile,进入编辑模式,增加以下内容:

umask 022

export ORACLE_BASE=/home/oracle/app

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

编辑完成后按Esc键,输入“:wq”存盘退出

安装过程

1) 当上述系统要求操作全部完成后,注销系统,在图形界面以Oracle用户登陆。首先将下载的Oracle安装包复制到linux中,推荐用Xmanager 或其他ftp工具拷贝。

   打开一个终端,运行unzip命令解压oracle安装文件,如:

输入命令:

unzip  linux.x64_11gR2_database_1of2.zip 

unzip  linux.x64_11gR2_database_2of2.zip

 解压完成后 cd 进入其解压后的目录database

输入命令:

cd  database

使用ls命令可以查看解压后database所包含的文件,如下图:

2) 执行安装,输入命令:./runInstaller

 

 

 

 

装到这一步,可以看到,可以查看到有很多的rpm包没有,我们可以从安装linux的光盘或ISO中查找所缺的包,使用ftp上传到linux中,然后使用rpm  –ivh  xxx.rpm  --nodeps –force 来进行安装(其中加上--nodeps -- force 代表强制安装,是在直接使用rpm –ivh  xxx.rpm安装不成功的情况下用的)安装过程略。

   等到把包全部都安装好的情况下,再次在oracle图形界面中,执行安装过程2,下来在环境检查过程中,就通过了。

安装完成后,系统会提示你需要用root权限执行2个shell脚本。按照其提示的路径,找到其所在的位置,如:我的就在/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

和 /home/oracle/app/oraInventory/orainstRoot.sh  新开启一个终端,输入命令:

su – root

cd  /home/oracle/app/oracle/product/11.2.0/dbhome_1

sh  root.sh

cd /home/oracle/app/oraInventory

sh  orainstRoot.sh

数据库建库

1) 还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库。

输入统一密码(也可以分别设置其密码)

数据库存放位置,我这里采用默认

不指定快速恢复和归档

去掉不常用的模块

内存分配及指定字符集

经过漫长的等待,当看到此界面,说明oracle建库完成

可以用sqlplus来检验下,新开启一个命令窗口,输入sqlplus,然后输入用户名和密码,可以测试下,这里就不做过多的介绍了。

配置监听及本地网络服务

1) 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面。

2)创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)

3)配置本地网络服务名(充当oracle客户端,连接别的oracle服务器)

输入连接的oracle服务器的数据库的实例名

输入oracle服务器的ip地址

选中测试

             

点击change Login 输入所连接oracle服务器的其中某一个用户名和密码,点击OK

看到此界面说明测试成功(如果不成功,请查看网络是否畅通,所连接的oracle服务器是否启动,监听是否启动等原因)

         

为你所设置的本地网络服务名起个名字

 然后下一步,下一步即可

这样oracle服务器安装配置基本就完成了。


问题笔记

1.交换空间不足问题

装到一半的过程发现Oracle所需的交换空间不足,需要8G,而虚拟机的交换空间只有2G,于是上网查了许多资料,最后还是用添加swapfile的方法解决了,步骤如下:
第一步:确保系统中有足够的空间来用做swap交换空间,我使用的是KVM,准备在一个独立的文件系统中添加一个swap交换文件,在/opt/image中添加2G的swap交换文件
第二步:添加交换文件并设置其大小为2G,使用如下命令
[root@sense image]# dd if=/dev/zero of=/opt/image/swap bs=1024 count=2048000
过段时间就返回如下结果:
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 272.867 seconds, 7.7 MB/s
第三步:创建(设置)交换空间,使用命令mkswap
[root@sense image]# mkswap /opt/image/swap
Setting up swapspace version 1, size = 2097147 kB
第四步:检查现有的交换空间大小,使用命令free
[root@sense image]# free -m
             total       used       free     shared    buffers     cached
    Mem:          1011        989         21          0          1        875
    -/+ buffers/cache:        112        898
    Swap:         1027          0       1027
或者检查meminfo文件
grep SwapTotal  /proc/meminfo
第五步:启动新增加的2G的交换空间,使用命令swapon
[root@sense image]# swapon /opt/image/swap
第六步:确认新增加的2G交换空间已经生效,使用命令free
[[root@sense image]# free -m
             total       used       free     shared    buffers     cached
Mem:          1011        995         15          0          4        877
-/+ buffers/cache:        113        897
Swap:         3027          0       3027
或者检查meminfo文件
grep SwapTotal  /proc/meminfo
第七步:修改/etc/fstab文件,使得新加的2G交换空间在系统重新启动后自动生效
在文件最后加入:
/opt/image/swap     swap      swap defaults 0 0


2.运行dbca时出现An unexpected error has been detected by HotSpot Virtual Machine
经查,是因为我在64位的虚拟机上安装32位的redhat和32位的Oracle所致。需要下载补丁:http://download.csdn.net/download/johnsonvily/3253906

补丁是zip文件,看了一下带的readme文档,安装步骤如下:

1.解压zip文件;

2.输入 perl -v 检查perl版本,需要在5.00503以上才能运行;

3.找到opatch命令的位置,一般在$ORACLE_HOME下,我的是在$ORACLE_HOME/opatch下,将运行路径作相应调整

4.运行opatch apply安装补丁,安装完重启虚拟机。


3.运行netca设置监听服务后,开启本地监听时显示12541:TNS:no listener

   根据网上说法,在终端输入lsnrctl start重新开启监听服务,显示

Starting /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /home/oracle/app/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
TNS-12537: TNS:connection closed
 TNS-12560: TNS:protocol adapter error
  TNS-00507: Connection closed

    这是因为host中没有定义localhost是什么,解决方法是修改/etc/hosts文件,在其中加入

         127.0.0.1          localhost.localdomain         localhost

    即可。

4.接着出现ORA_12514:listener does not currently know of service requested in connect descriptor

     打开监听服务配置文件$ORACLE_HOME/network/admin/listener.ora,将下列内容添加进去:

             SID_LIST_LISTENER =
                     (SID_LIST =
                           (SID_DESC =
                                 (SID_NAME = PLSExtProc)
                                 (ORACLE_HOME = /opt/u01/app/oracle/product/9.2.0.4)
                           (PROGRAM = extproc)
                    )
            (SID_DESC =
                    (GLOBAL_DBNAME = oradb)
                                (ORACLE_HOME = /opt/u01/app/oracle/product/9.2.0.4)
                                (SID_NAME = oradb)
                      )
             )

       改完后重启监听服务,看到输出中有Service XXX has 1 instance(s),则表示监听服务中已加入实例。

5.接着出现

        ORA-01034: ORACLE not available
        ORA-27101: shared memory realm does not exist
        Linux Error: 2: No such file or directory

    启动个数据库真是麻烦啊= = 上网查了下,使用非系统管理员登录前需要先把数据库启动,于是用sys登录sqlplus,输入startup,解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值