免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11371 | 回复: 1
打印 上一主题 下一主题

RedHat EL5下安装Oracle11g详细过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-06 14:32 |只看该作者 |倒序浏览
      自己由于工作测试需要做了个EL5加ORACLE11g的安装,由于以前没用过linux装oracle,好多东西要现查...中途还有别的事情打扰,结果搞了好几天,这个文档也是都做完后几天才补的,写的时候老怕忘了什么,唉,应该过程差不多就是这样了,写个帖子加深一下印象,呵呵,万一有问题,大家提,我再去回忆...
1系统环境
虚拟机软件:VMware Workstation 6.0
操作系统:RedHat EL 5
内存:1G
CPU:1个
硬盘:3块30G磁盘
Swap交换区:2G
数据库:Oracle11g
2安装前说明
2.1系统
        如果oracle的数据文件想使用裸设备,可以在安装linux时选择对磁盘进行手工划分,划分磁盘分区时先将未来准备用于做为裸设备使用的分区划分为LVM类型,当然,安装linux后再用fdisk进行磁盘划分也可以,本人是单独划分一块磁盘做为给oracle裸设备数据文件使用,所以在此磁盘上只建立了一个分区,类型为LVM。
2.2数据库
        Oracle11g安装时会对数据库安装所需条件进行检测,检测时发现系统所配内存最少要求1G,swap区相应所需1.5G,所以可以提前进行一下检查,(由于本人是用VMWARE进行的安装,一开始只给了512M内存。。。这时候才觉得本本内存小。。。),当然,咨询我们DBA说不给1G应该也可以安装,本人没试,懒。。。有兴趣可以试试。
另外,由于本人VMWARE虚拟的RedHat网络使用的NAT模式,局域网没办法。。。然后用VMWARE自带的DHCP分配的地址IP,所以oracle安装时检查会报IP为DHCP分配的警告,可以忽略。。。
3系统安装
3.1软件包
        RedHat安装很简单,图形界面的,没什么说的,安装后,用rpm -q命令检查(或者rpm -qa|grep也行),检查以下oracle安装所需软件包是否存在,没安装的用rpm -ivh命令装
Øbinutils-2.17.50.0.6-2.el5
Øcompat-libstdc++-33-3.2.3-61
Øelfutils-libelf-0.125-3.el5
Øelfutils-libelf-devel-0.125
Øglibc-2.5-12
Øglibc-common-2.5-12
Øglibc-devel-2.5-12
Øgcc-4.1.1-52
Øgcc-c++-4.1.1-52
Ølibaio-0.3.106
Ølibaio-devel-0.3.106
Ølibgcc-4.1.1-52
Ølibstdc++-4.1.1
Ølibstdc++-devel-4.1.1-52.e15
Ømake-3.81-1.1
Øsysstat-7.0.0
ØunixODBC-2.2.11
ØunixODBC-devel-2.2.11
3.2内核参数
编辑/etc/sysctl.conf文件,调整以下两个参数:
kernel.shmall = 2097152
kernel.shmmax = 536870912
注意:此参数我是按照网上说的设定为我linux系统内存的一半
增加以下几个参数:
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
注意:此参数开始我没有设定这个值,不过安装oracle时检查说要我把此参数设定为此值,我照着改的,不知道是否和系统环境有关,自己可以暂时先配置一个,等安装oracle时如果有报警,则按照它的设定去修改
net.core.rmem_max=4194304
注意:此参数开始我没有设定这个值,不过安装oracle时检查说要我把此参数设定为此值,我照着改的,不知道是否和系统环境有关,自己可以暂时先配置一个,等安装oracle时如果有报警,则按照它的设定去修改
net.core.wmem_default=262144
net.core.wmem_max=262144
设定好以上参数后,执行/sbin/sysctl -p命令使之生效
3.3用户限制
编辑/etc/security/limits.conf 增加下面几行内容:
Oracle
soft
nproc
2047

Oracle
hard
nproc
16384

Oracle
soft
nofile
1024

Oracle
hard
nofile
65536

然后编辑/etc/pam.d/login 文件,增加下面内容:
Session
required
/lib/security/pam_limits.so

Session
required
pam_limits.so

如果是64位系统,就不需要加第一行了
最后编辑/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
以上是我按照网上所写配置配的,但profile文件实际使用会发现用oracle用户登陆时会有“没有权限执行的报警”,虽然没有影响,但实际shell应该没有起到效果。
3.4裸设备
如果不使用裸设备做为oracle数据文件,本小节可以忽略。。。
Pvcreate /dev/sdc1
Vgcreate oracle_vg /dev/sdc1
lvcreate -L 384M -n control_1 oracle_vg
lvcreate -L 384M -n control_2 oracle_vg
lvcreate -L 384M -n control_3 oracle_vg
lvcreate -L 128M -n redo01_1 oracle_vg
lvcreate -L 128M -n redo01_2 oracle_vg
lvcreate -L 128M -n redo02_1 oracle_vg
lvcreate -L 128M -n redo02_2 oracle_vg
lvcreate -L 128M -n redo03_1 oracle_vg
lvcreate -L 128M -n redo03_2 oracle_vg
lvcreate -L 1024M -n system oracle_vg
lvcreate -L 1024M -n sysaux oracle_vg
lvcreate -L 1024M -n temp oracle_vg
lvcreate -L 2048M -n undodbs oracle_vg
lvcreate -L 1024M -n tools oracle_vg
lvcreate -L 3072M -n data oracle_vg
由于linux下的裸设备还需要进行绑定,所以还需进行以下操作:
raw /dev/raw/raw1 /dev/mapper/oracle_vg-control_1
raw /dev/raw/raw2 /dev/mapper/oracle_vg-control_2
raw /dev/raw/raw3 /dev/mapper/oracle_vg-control_3
raw /dev/raw/raw4 /dev/mapper/oracle_vg-redo01_1
raw /dev/raw/raw5 /dev/mapper/oracle_vg-redo01_2
raw /dev/raw/raw6 /dev/mapper/oracle_vg-redo02_1
raw /dev/raw/raw7 /dev/mapper/oracle_vg-redo02_2
raw /dev/raw/raw8 /dev/mapper/oracle_vg-redo03_1
raw /dev/raw/raw9 /dev/mapper/oracle_vg-redo03_2
raw /dev/raw/raw10 /dev/mapper/oracle_vg-system
raw /dev/raw/raw11 /dev/mapper/oracle_vg-sysaux
raw /dev/raw/raw12 /dev/mapper/oracle_vg-temp
raw /dev/raw/raw13 /dev/mapper/oracle_vg-undodbs
raw /dev/raw/raw14 /dev/mapper/oracle_vg-tools
raw /dev/raw/raw15 /dev/mapper/oracle_vg-data
绑定后每回系统重启设备/dev/raw/raw×将消失,如果想自动加载,AS5前应该修改/etc/sysconfig/rawdevices,AS5取消了此文件,网上说应修改/etc/udev/rules.d/60-raw.rules,但发现不管用,搜了一下发现有人有同样问题,但没人解决。。。最后本人只能在/etc/rc.d/rc.local中加入上面raw的绑定命令。
绑定设备完成后,如果觉得名字和数据文件对不上,用着难受可以建立个链接:
ln -s /dev/raw/raw1
/home/oracle/oradata/zxdb/control01.ctl

ln -s /dev/raw/raw2
/home/oracle/oradata/zxdb/control02.ctl

ln -s /dev/raw/raw3
/home/oracle/oradata/zxdb/control03.ctl

ln -s /dev/raw/raw4
/home/oracle/oradata/zxdb/redo01_1.log

ln -s /dev/raw/raw5
/home/oracle/oradata/zxdb/redo01_2.log

ln -s /dev/raw/raw6
/home/oracle/oradata/zxdb/redo02_1.log

ln -s /dev/raw/raw7
/home/oracle/oradata/zxdb/redo02_2.log

ln -s /dev/raw/raw8
/home/oracle/oradata/zxdb/redo03_1.log

ln -s /dev/raw/raw9
/home/oracle/oradata/zxdb/redo03_2.log

ln -s /dev/raw/raw10 /home/oracle/oradata/zxdb/system.dbf
ln -s /dev/raw/raw11 /home/oracle/oradata/zxdb/sysaux.dbf
ln -s /dev/raw/raw12 /home/oracle/oradata/zxdb/temp.dbf
ln -s /dev/raw/raw13 /home/oracle/oradata/zxdb/undodbs.dbf
ln -s /dev/raw/raw14 /home/oracle/oradata/zxdb/tools.dbf
ln -s /dev/raw/raw15 /home/oracle/oradata/zxdb/data.dbf
3.5用户建立
建立oracle用户,并给它三个组,主组oinstall,副组dba,oper,组没有就自己建立。
用户建立后,记着将oracle所需的目录及裸设备等文件权限修改一下,在/etc/rc.d/rc.local中增加裸设备权限修改语句:
Chown oracle:install /dev/oracle_vg/*
Chown oracle:install /dev/mapper/*
Chown oracle:install /dev/raw/*
4Oracle安装
4.1修改.bash_profile
修改oracle用户主目录下的.bash_profile文件,增加以下几行:
Export ORACLE_SID=XXX
Export ORACLE_BASE=XXX
Export ORACLE_HOME=XXX
Export TMP=/tmp
Export TMPDIR=$TMP
Export ORACLE_TERM=xterm
Export PATH=/usr/Kerberos/bin/:/usr/local/bin:/bin:/usr/bin:/usr/sbin:ORACLE_HOME/bin
Export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
Export CLASSPATH=$ORACLE_HOME/JRE:ORACLE_HOME/jlib:ORACLE_HOME/rdbms/jlib
4.2数据库软件安装
如果前面的步骤没什么问题,应该就可以运行runInstaller了,本人按照自己的习惯只安装了数据库软件。
4.311g的一个BUG
安装完数据库后,执行sqlplus,结果报错。。。
sqlplus: error while loading shared libraries:/oracle/11g/lib/libnnz11.so:
cannot restore segment prot after reloc: Permission denied
网上搜了一下,解决办法如下:
以root身份,通过以下命令查询SELinux的模式:getenforce 默认应当返回Enforcing
通过以下命令更改模式:setenforce 0
然后再次查询getenforce,应该返回permissive了
修改/etc/sysconfig/selinux文件,将SELINUX=enforcing修改为SELINUX=permissive,防止重启系统后失效。
4.4配置init.ora
由于本人一开始参照9i的初始化参数进行的配置,所以发现oracle11g有些参数已经废弃了,如×dest参数,log_archive_start参数等,自己修改后,初始化参数配置如下:
*.aq_tm_processes=1
*.compatible='11.1.0.6.0'
*.control_files='/home/oracle/oradata/zxdb/control01.ctl','/home/oracle/oradata/zxdb/control02.ctl','/home/oracle/oradata/zxdb/control03.ctl'
*.db_files=500
*.db_block_size=4096
*.db_cache_size=104857600
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='zxdb'
*.fast_start_mttr_target=300
*.instance_name='zxdb'
*.java_pool_size=26214400
*.job_queue_processes=10
*.large_pool_size=26214400
*.log_archive_dest='/home/oracle/oradata/zxdb/arch'
*.log_archive_format='arch%r_%t_%s.arc'
*.log_buffer=10485760
*.open_cursors=300
*.pga_aggregate_target=52428800
*.processes=500
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=419430400
*.shared_pool_size=209715200
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
另外,由于一开始我想先试试,参数值设定都比较小,结果oracle建库时显示shared_pool_size需要150M以上。。。是不是我太小气了。。。
现在可以进行下面的建库等步骤了。。。终于完了。。。累啊。。。

[ 本帖最后由 zx0724xin 于 2008-5-6 14:38 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-05-08 11:52 |只看该作者
支持一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP