Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29933
  • 博文数量: 8
  • 博客积分: 189
  • 博客等级: 入伍新兵
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-10 23:02
文章分类
文章存档

2013年(1)

2012年(1)

2011年(6)

我的朋友

分类: Oracle

2011-08-14 18:13:29

Oracle 11g安装流程(v1.0

 

一、        准备工作

 

²        安装oracle 11g的服务器必须预先安装好Xwindows和任一种桌面系统(GNOME or KDE),否则安装时会提示java错误,Xwindows和桌面可在服务器安装系统时一并安装,或在系统安装完毕后用命令yum groupinstall "GNOME Desktop Environment"安装,如果希望远程安装oracle,还需要安装vnc包,不过一般在安装Xwindow时候都会捆绑安装vnc

 

²        下载oracle 11g安装包并保存在本地目录;

 

²        在服务器本地新建一个脚本并将以下内容复制粘贴至脚本中并执行:

 

#!/bin/sh

 

echo "check software needed for install"

 

for soft in binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++ make sysstat unixODBC unixODBC-devel

 

 do

    rpm -qa|grep $soft>>/dev/null

    if [ $? != 0 ]; then

    echo

    echo "$soft doesn't install yet,now install it"

    yum install $soft -y

    fi

 done

#echo "#fs.file-max = 512 * PROCESSES">>/etc/sysctl.conf

#echo "fs.file-max = 4096">>/etc/sysctl.conf

#echo "kernel.shmall = 2097152">>/etc/sysctl.conf

#echo "kernel.shmmax = 2147483648">>/etc/sysctl.conf

#echo "kernel.shmmni = 4096">>/etc/sysctl.conf

#echo "kernel.sem = 250 32000 100 128">>/etc/sysctl.conf

#echo "net.ipv4.ip_local_port_range = 1024 65000">>/etc/sysctl.conf

#echo "net.core.rmem_default = 4194304">>/etc/sysctl.conf

#echo "net.core.rmem_max = 4194304">>/etc/sysctl.conf

#echo "net.core.wmem_default = 262144">>/etc/sysctl.conf

#echo "net.core.wmem_max = 262144">>/etc/sysctl.conf

#

#sysctl -p

 

 groupadd oinstall

 groupadd dba

 useradd -g oinstall -G dba oracle

 passwd oracle

 

chown oracle:oinstall /data -R

echo 'ORACLE_SID=ORCL '>>/home/oracle/.bash_profile

echo 'ORACLE_BASE=/data/oracle '>>/home/oracle/.bash_profile

echo 'ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1 '>>/home/oracle/.bash_profile

echo 'export ORACLE_SID ORACLE_BASE ORACLE_HOME '>>/home/oracle/.bash_profile

 

echo 'oracle soft nproc 2047 '>>/etc/security/limits.conf

echo 'oracle hard nproc 16384 '>>/etc/security/limits.conf

echo 'oracle soft nofile 1024 '>>/etc/security/limits.conf

echo 'oracle hard nofile 65536 '>>/etc/security/limits.conf

 

echo 'session  optional   pam_keyinit.so force revoke'>>/etc/pam.d/login

 

echo 'if [ \$USER = \\"Oracle\\" ]; then'>>/etc/profile

echo '  if [ \$SHELL = \\"/bin/ksh\\" ]; then'>>/etc/profile

echo '   ulimit -p 16384  '>>/etc/profile

echo '   ulimit -n 65536  '>>/etc/profile

echo '  else  '>>/etc/profile

echo '   ulimit -u 16384 -n 65536  '>>/etc/profile

echo '  fi'>>/etc/profile

echo 'fi'>>/etc/profile

 

echo 'su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/lsnrctl start"'>>/etc/rc.local

echo 'su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/dbstart start"'>>/etc/rc.local

 

 

脚本主要操作包括:安装oracle11g需要的软件包(需要yum源工作正常)、建立oracle相关用户和组、修改oracle用户设置以及相关系统配置、建立oracle自启动条目等,脚本假定oracle安装目录为/data/oracle,如有变化,请修改脚本中对应用户配置和目录赋权限对应条目

 

 

二、        安装详细流程

 

oracle用户登录服务器本地桌面终端或通过vnc连接远端服务器桌面;

Tip此处强烈建议采用oracle用户直接登录,而不是使用别的用户登陆后suoracle,包括root,否则会在安装过程中出现各种未知错误;

Su oracle用户,启动vncserver

查看oracle用户启动的vncserver端口号,通过vnc client连接对应的端口,并输入正确密码;

进入安装包所在目录,解压两个安装文件包:

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

解压后的安装文件会存放在当前目录下一个新建的database目录中;

执行:

Cd database

./runInstaller

 

正常情况下,安装程序片刻后会启动图形化的安装界面;

Tip:如果出错,请检查具体抛出的错误信息,以及服务器本地时间是否正确

 

第一个窗口,设定security update,由于需要 oracle support password,因此我在这里取消了update,并忽略错误提示继续;

 

数据库安装选项,由于是全新安装,所以选择“create and configure a database”;

 

 

数据库系统类型,选择server class

 

节点选择,选择“single instance database”;

TipRACReal Application Cluster,真正应用集群)是Oracle9i以及以后版本中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术,但由于目前我们应用尚不需要集群功能,因此略过。

 

安装类型选择:

 

支持语言选择:

 

数据库类型选择

这里可以点击“select options”按钮,大致定制所需安装的软件包;

 

指定安装路径,如果之前的预安装脚本工作正常,安装程序会从oracle用户的.bash_profile配置中读到对应设定,这里可检验一下是否一致;

 

设定Invertory目录:

Tip:个人理解这个目录是用来存放安装过程中生成的一些临时文件用的,配置时注意oracle用户要对相应上一级根目录有可写权限(本例中是/data),否则安装会出错;

 

安装类型选择,正常情况下应选择第一项;

TipData warehousing,数据仓库,是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。

 

 

Oracle预配置,这里主要是对内存的配置,其他设定使用默认值即可;配置的时候,可将“enable automatic memory management(内存自动管理)”取消勾选,然后输入想要设定的数据库可用内存大小,理论上oracle dababase内存可占OS系统物理内存的1/22/3,但由于这次的服务器内存较大(48G),因此即使划分40Goracle使用后,仍有8G的剩余内存,一般来说足够操作系统或其他服务使用;

TipPGA,是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写,而SGA则是共享内存区,两者合起来即为总的database使用内存大小。

 

数据库控制管理配置,默认选项即可;

 

数据库存储选项,这里如果是安装在本地路径下的话,请选择第一项并指定目录,并确保指定目录的权限正确;

Tipautomatic storage managementASM),自动存储管理,它是自Oracle10g这个版本Oracle推出的新功能。这是Oracle提供的一个卷管理器,用于替代操作操作系统所提供的LVM,它不仅支持单实例配置,也支持RAC这样的多实例配置。ASM允许你在一组独立的磁盘上创建一个单独的磁盘组。这样就实现了单个磁盘组的I/O均衡。同时ASM还实现了条带化(Striping)和磁盘镜像(Mirroring)以提高I/O的性能和数据可靠性。与RAIDLVM不同的是,ASM是在文件级实现的条带化和镜像,这样的实现方式给用户带了很大选择自由度,我们可以在同一个磁盘组中对不同的文件配置不同的存储属性,实现不同的存储方式。

 

备份恢复设定,这里暂时不启用自动备份;

 

数据库用户密码设定,这里可以暂时选第二项,为所有用户配置一个统一密码,将来需要时再单独修改;如果密码不够复杂,点next后会出来一个提示,可以不必理会,点yes继续;

 

定义oracle用户组权限,默认即可;

 

安装至此,程序会根据之前的配置检查系统设定和依赖包,并生成一个脚本,此时需要使用root用户执行该脚本,以便修改相关系统配置文件,否则将会出错;有时也会提示某些依赖包需要安装,可用rpm –qa|grep 软件包名称检查,如果确认已经安装对应包,则选择skin继续;

 

安装最后,程序又会生成新的两个脚本,一样使用root执行。

 

执行完毕,安装结束。

 

三、        收尾工作

 

Oracle11g安装完成后,提供dbstart,dbshut两个服务控制脚本,用来控制oracle的启动与关闭,路径类似于/data/oracle/product/11.1.0/db_1/bin/dbstart;但需要将dbstart文件中内容为“ORACLE_HOME_LITENER=$1”

修改成

“ORACLE_HOME_LITENER=${ORACLE_HOME}”

同时也要修改/etc/oratab文件,将其中类似如下一行:

ORCL:/data/oracle/product/11.1.0/db_1:N

改为

ORCL:/data/oracle/product/11.1.0/db_1:Y

这样dbstart脚本才能正常工作,启动命令为:

su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/lsnrctl start"

su - oracle -lc "/data/oracle/product/11.1.0/db_1/bin/dbstart start"

(以上命令已经由之前的脚本写入rc.local中)

其中,su –l参数表示,切换至对应用户时,同时读入用户的.bash_profile等相应配置信息,否则脚本启动时可能会出现错误。

 

附:

如果启动的时候,提示某个.so文件有cannot restore segment prot after reloc: Permission denied 错误提示的话,可以这么解决:

编辑/etc/selinux/config,找到这段:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing

SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:
SELINUX=disabled
保存,关闭。
......

编辑/etc/sysconfig/selinux,找到:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing

如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:
SELINUX=disabled
保存,退出。

如果你碰到其他类似提示:
cannot restore segment prot after reloc: Permission denied
哪应该是SELinux的问题,可以考虑把它关闭。

 

在你保证SElinux disable.还执行下
chcon -t texrel_shlib_t
: chcon -t texrel_shlib_t /路径/路径/名字.so (这个文件视具体执行文件.)

阅读(864) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~