RedHat 4 as 下安装Oracle11gR2,Cluster(ASM)和Database
Oracle11gR2发布不久,上两周又听了Oracle的Extdata的推销,昨天又看了Oracle向IBM叫嚣,确实很佩服Oracle公司的成功,也坚定了DBA走下去的方向。
目前11gR2只有Linux版本,公司的机器都Sun和HP的机器,那只能在自己的机器上装了虚拟鸡来玩一把了。
以下是硬件和软件的需要,
如果只是Database的话
硬件:奔腾双核,1G内存,20G硬盘
如果是ASM+Database,或者是RAC:
硬件:奔腾双核,2G内存,20G+10G硬盘
软件:vmware server 2.0,RedHat as 4 update 7, Oracle Grid, Oracle Database
由于主机不是太强,没办法建RAC环境,所以本次安装的是ASM+Database。
注意事项:
Grid用户和Oracle用户的选择:
如果需要使用RAC和ASM,需要创建额外的用户管理集群软件,建议使用grid
和创建数据库软件用户,建议使用oracle
ORACLE_BASE和ORACLE_HOME
如果需要使用RAC和ASM,需要分开两个用户的环境变量防止文件冲突。
闲话少说,开始安装
一、安装RedHat as 4操作系统
这步就不再详述了,不是入门的都会了。
二、安装软件包
binutils-2.15.92.0.2
compat-libstdc++-33.2.3
elfutils-libelf-0.97
elfutils-libelf-devel-0.97
gcc-3.4.6
gcc-c++-3.4.6
glibc-2.3.4-2.41
glibc-common-2.3.4
glibc-devel-2.3.4
glibc-headers-2.3.4
libaio-devel-0.3.105
libaio-0.3.105
libgcc-3.4.6
libstdc++-3.4.6
libstdc++-devel-3.4.6
make-3.80
pdksh-5.2.14
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11
使用
$rpm -qa | grep binutils
检查各个包是否被安装
使用
$rpm -ivf xxx.rpm
安装确实的包
观察一下软件包,发现多了unixODBC,以前我也用过,好东西,现在Oracle是不是想加强这方面。
三、创建用户组和用户
#groupadd asmadmin
#groupadd asmdba
#groupadd asmoper
#groupadd oinstall
#groupadd dba
#groupadd oper
#useradd -g oinstall -G asmadmin,asmdba,asmoper grid
#useradd -g oinstall -G dba,oper,asmdba oracle
四、调整参数和添加脚本
用户shell的限制
$vi /etc/security/limits.conf
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
$vi /etc/pam.d/login
session required pam_limits.so
$vi /etc/profile
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
$vi /etc/csh.login
if ( $USER == "oracle" || $USER == "grid" ) then
limit maxproc 16384
limit descriptors 65536
endif
五、添加数据盘
最简单的方法,将设备设为grid用户和oinstall用户组给ASM使用。
我觉得这方法比较实在直接,没有必要去装asmlib。
#chown grid:oinstall /dev/sdb
六、创建文件夹(这步是成败的关键)
grid:
ORACLE_BASE=/opt/oracle/grid
ORACLE_HOME=/opt/oracle/app/grid
ORACLE_SID=+ASM
oracle:
ORACLE_BASE=/opt/oracle/oracle
ORACLE_HOME=/opt/oracle/app/database
ORACLE_SID=asmdb
#mkdir -p /opt/oracle/grid
#mkdir -p /opt/oracle/oracle
#mkdir -p /opt/oracle/app/grid
#mkdir -p /opt/oracle/app/database
#cd /opt
#chown -R grid:oinstall /opt/oracle/grid
#chown -R grid:oinstall /opt/oracle/app/grid
#chown -R oracle:oinstall /opt/oracle/oracle
#chown -R oracle:oinstall /opt/oracle/app/database
七、安装集群软件(图片省略)
1. 登陆grid用户,执行./runInstaller, 选择单实例安装
2. 更改ASM的查看设备的路径/dev/sdb, 并添加
3. 安装路径按照第六步中创建的目录
ORACLE_BASE=/opt/oracle/grid
ORACLE_HOME=/opt/oracle/app/grid
4. 用户组选择,按照第三步创建的用户组,一般默认选好了。
asmadmin,asmdba,asmoper
5. 用root用户执行脚本,安装结束后,检查一下ASM后台进程
[oracle@ORA11GR2 ~]$ ps -ef | grep asm_
grid 6625 1 0 15:14 ? 00:00:00 asm_pmon_+ASM
grid 6627 1 0 15:14 ? 00:00:00 asm_vktm_+ASM
grid 6631 1 0 15:14 ? 00:00:00 asm_gen0_+ASM
grid 6633 1 0 15:14 ? 00:00:00 asm_diag_+ASM
grid 6635 1 0 15:14 ? 00:00:00 asm_psp0_+ASM
grid 6637 1 0 15:14 ? 00:00:01 asm_dia0_+ASM
grid 6639 1 0 15:14 ? 00:00:00 asm_mman_+ASM
grid 6641 1 0 15:14 ? 00:00:00 asm_dbw0_+ASM
grid 6643 1 0 15:14 ? 00:00:00 asm_lgwr_+ASM
grid 6645 1 0 15:14 ? 00:00:00 asm_ckpt_+ASM
grid 6647 1 0 15:14 ? 00:00:00 asm_smon_+ASM
grid 6649 1 0 15:14 ? 00:00:00 asm_rbal_+ASM
grid 6651 1 0 15:14 ? 00:00:00 asm_gmon_+ASM
grid 6653 1 0 15:14 ? 00:00:00 asm_mmon_+ASM
grid 6655 1 0 15:14 ? 00:00:00 asm_mmnl_+ASM
grid 7392 1 0 15:46 ? 00:00:00 asm_asmb_+ASM
grid 7396 1 0 15:46 ? 00:00:00 asm_o000_+ASM
oracle 7498 7347 0 15:51 pts/1 00:00:00 grep asm_
多了很多进程,要花时间看看有什么变化。
八、安装数据库软件(图片省略)
1. 登陆oracle用户,执行./runInstaller, 选择只安装数据库软件
2. 安装路径按照第六步中创建的目录
ORACLE_BASE=/opt/oracle/oracle
ORACLE_HOME=/opt/oracle/app/database
3. 用户组选择,按照第三步创建的用户组,一般默认选好了。
dba, oper, asmdba
4. 用root用户执行脚本,安装结束。
九、DBCA创建数据库
1. 选择不发送邮件
2. 选择数据库名称asmdb
3. 选择不使用EM
4. 选择不是用归档和flashback
5. 选择使用ASM,选择+DATA
6. 一路默认选择,(在最后提示权限不足,但仍然继续安装)。
7. 退出后查看系统进程是否存在
$ps -ef | grep ora_
不存在
8. 使用sqlplus启动数据库(本来想看看有没有什么报错)
SQL>startup
居然平安起来了,惊讶啊。
9. 再次查看系统进程是否存在
[oracle@ORA11GR2 ~]$ ps -ef | grep ora_
oracle 7403 1 0 15:46 ? 00:00:00 ora_pmon_asmdb
oracle 7405 1 0 15:46 ? 00:00:00 ora_vktm_asmdb
oracle 7409 1 0 15:46 ? 00:00:00 ora_gen0_asmdb
oracle 7411 1 0 15:46 ? 00:00:00 ora_diag_asmdb
oracle 7413 1 0 15:46 ? 00:00:00 ora_dbrm_asmdb
oracle 7415 1 0 15:46 ? 00:00:00 ora_psp0_asmdb
oracle 7417 1 0 15:46 ? 00:00:00 ora_dia0_asmdb
oracle 7419 1 0 15:46 ? 00:00:00 ora_mman_asmdb
oracle 7421 1 0 15:46 ? 00:00:00 ora_dbw0_asmdb
oracle 7423 1 0 15:46 ? 00:00:00 ora_lgwr_asmdb
oracle 7425 1 0 15:46 ? 00:00:00 ora_ckpt_asmdb
oracle 7427 1 0 15:46 ? 00:00:00 ora_smon_asmdb
oracle 7429 1 0 15:47 ? 00:00:00 ora_reco_asmdb
oracle 7431 1 0 15:47 ? 00:00:00 ora_rbal_asmdb
oracle 7433 1 0 15:47 ? 00:00:00 ora_asmb_asmdb
oracle 7435 1 2 15:47 ? 00:00:03 ora_mmon_asmdb
oracle 7437 1 0 15:47 ? 00:00:00 ora_mmnl_asmdb
oracle 7439 1 0 15:47 ? 00:00:00 ora_d000_asmdb
oracle 7441 1 0 15:47 ? 00:00:00 ora_s000_asmdb
oracle 7446 1 0 15:47 ? 00:00:00 ora_mark_asmdb
oracle 7454 1 0 15:47 ? 00:00:00 ora_o000_asmdb
oracle 7462 1 0 15:47 ? 00:00:00 ora_qmnc_asmdb
oracle 7476 1 1 15:47 ? 00:00:01 ora_cjq0_asmdb
oracle 7478 1 0 15:47 ? 00:00:00 ora_q000_asmdb
oracle 7480 1 0 15:47 ? 00:00:00 ora_q001_asmdb
oracle 7491 7347 0 15:48 pts/1 00:00:00 grep ora_
有部分进程以前好像没有看过,以后要研究一番了。
ora_vktm_asmdb
ora_gen0_asmdb
ora_diag_asmdb
ora_psp0_asmdb
ora_dia0_asmdb
...
10.解锁scott用户查看自带的表,成功。
SQL>alter user scott account unlock;
SQL>conn scott/tiger;
SQL>select * from emp;
总结:
11gR1我没有装过,所以我拿10gR2做一个对比。
11gR2一共装了4次,头三次失败了,
总结原因有二,一是硬件配置较低512M内存,二是文件目录没有规划好。
单纯安装数据库不会有什么问题,基本和10gR2相同,
但是如果需要安装ASM或RAC有点麻烦了,Oracle建议创建两个用户grid和oracle,分别管理集群和数据库软件,而且官文里面描述得不是太清晰,还有点误导嫌疑。所以一定要看透官文加上自己分析理解。
最简单的理解就是完全分开两个用户的ORACLE_BASE和ORACLE_HOME。
grid:
ORACLE_BASE=/opt/oracle/grid
ORACLE_HOME=/opt/oracle/app/grid
ORACLE_SID=+ASM
oracle:
ORACLE_BASE=/opt/oracle/oracle
ORACLE_HOME=/opt/oracle/app/database
ORACLE_SID=asmdb