分类: Oracle
2010-04-07 09:34:07
硬件环境:Intel Q9400 2G DDR3 320G SATA
系统及软件环境:RHEL4.7 AS 32位 Oracle 10.2.0.1
l 系统准备
磁盘最好用LVM来管理,便于以后扩展。下面是我的分区情况:
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 29G 5.2G 23G 19% /
/dev/sda1 99M 13M 81M 14% /boot
none 987M 0 987M 0% /dev/shm
/dev/mapper/VolGroup00-LogVol02 20G 715M 18G 4% /u01
swap交换分区的设置,可以按下面的对照来设置:
1-2G RAM -> 双倍于内存的交换空间
4-6G RAM -> 1-1.5倍于内存的交换空间
8G RAM and more than -> 0.75倍于内存的交换空间
/tmp目录需要400M以上的空间。
网络和主机名最好是静态的,在安装Oracle时安装程序会检测并警告。
选择安装软件时把开发者工具选上,这样安装Oracle之前的准备工作会少了许多,有些管理员甚至选择安装全部软件包,这样也只是多占些空间而已,但要记得把不用的服务关掉。
关掉系统防火墙和SELINUX。
确认系统是32位还是64位:
# arch #如果是32位的,显示一般是i686或i386。64位的系统会是x86_64
确认安装过程中所需要的包:
# rpm -q binutils gcc gcc-c++ glibc gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio
l 配置Oracle环境
新建安装组和Oracle用户
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
创建目录结构
#mkdir -p /u01/app/oracle
#chown -R oracle:oinstall /u01/app/oracle
#chmod -R 775 /u01/app/oracle
设置内核参数,编辑/etc/sysctl.conf并将下列内容加入到文件尾部
#used for oracle
kernel.shmall = 2097152
#for SGA size,sample value is 512M(1GB=1073741824 1MB=1048576)
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
设置PAM pam_limits.so模块,解除系统对oracle用户打开文件数和进程数的限制。编辑/etc/security/limit.conf并将下列内容加入到文件尾部
#used for oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
(网上许多直译教程还要编辑/etc/profile文件并加入一些脚本执行ulimit命令来做限制,在如今的红帽系统上已经不适用了,略过。另外,有些教程中这步完了还要编辑/etc/pam.d/login,加上两句配置来启用pam_limits.so模块,在红帽RHEL4和RHEL5系统已经不需要这么做了,所以省略不写出来了)
编辑oracle用户环境变量,编辑$HOME/.bash_profile并加入下列内容,保存之后登出再登入即可生效。
#used for oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
切换到oracle用户,将Oracle 10R2安装包解压到oracle家目录中,执行安装程序即可。
$ unzip unzip 10201_database_linux32.zip
$ cd database
$ ./runInstaller
进入到OUI安装界面之后,一切就变得简单了。
l 配置Oracle自动启动服务:
如果希望Oracle数据库在开机和关机的时候自动开启关闭,我们必须要手动配置一些内容,这比在Windows下要复杂多了。
方法有很多,但这里建议直接使用Oracle已经为我们提供的数据库控制脚本,而不要使用网上流传的一些控制脚本,必竟数据库是很关键的系统组成,容不得一点马虎。
Oracle为我们提供了dbstart和dbshut脚本,用来开启关闭数据库,它们在$ORACLE_HOME/bin/目录下。(想知道开启和关闭数据库的参数细节的话,建议打开看看这两个脚本)
要使用这两个脚本,还需要修改/etc/oratab文件
编辑最下面一行,将N修改Y(注意大小写),如:
orcl:/u01/app/oracle/10.2.0/db_1:Y
其格式也容易理解,实例SID:$ORACLE_HOME:是否允许
$ORACLE_HOME/bin/dbstart脚本也需要稍作修改,编辑第78行,例:
ORACLE_HOME_LISTNER=$ORACLE_HOME
这里可以用变量或是直接写出$ORACLE_HOME变量中的路径值
现在,可以用oracle用户执行它们开启和关闭数据库,有一个小问题,默认dbstart和dbshut只能实现数据库实例和Listener的开启与关闭,EM没有列入其中,如果你希望EM随系统启动开启,可以将emctl start dbconsole命令放到/etc/rc.d/rc.local文件中,有点麻烦,关闭不好处理。dbstart和dbshut这两个脚本的执行安排也是同样的问题,这里我们写一个系统服务脚本,系统帮我们自动处理开启和关闭数据库。
vi /etc/rc.d/init.d/oracle10r2 #copy following content into file
#!/bin/sh
#chkconfig: 2345 99 01
#description: ORACLE 10g Server
#modify this path variable to fit for your own DB instance
ORACLE_HOME=/u01/app/oracle/10.2.0/db_1
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "ORACLE cannot start"
exit
fi
case "$1" in
'start')
echo "Starting Oracle Database..."
su - oracle -c "$ORACLE_HOME/bin/dbstart"
su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
;;
'stop')
echo "Stoping Oracle Database"
su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - oracle -c "$ORACLE_HOME/bin/dbshut"
;;
Esac
稍作解释:文件中的上面三行很重要,复制时切勿遗漏,它指示chkconfig命令设定此服务在2345运行级别中启动,启动顺序是99,关闭顺序是1,这样的话,在2345这四个运行级别在启动时最后启动,在退出2345运行级别的时候最先关闭此服务。
脚本中加上了EM的启动命令,另外,用root身份执行下列命令,只要不报错,就可以确认完工了。
# chkconfig –add oracle10r2
# chkconfig oracle10r2 on
# service oracle10r2 start #开启数据库服务
# service oracle10r2 stop #关闭数据库服务