RAC以及ASM安装全过程整理
RAC以及ASM安装全过程整理 --lisx 2009-6-19
更改主机名
第一步:
#hostname oratest
第二步:
修改/etc/sysconfig/network中的hostname
第三步:
修改/etc/hosts文件
设置hosts文件
可参考:
[root@amdocs01 mapper]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
172.19.201.188 amdocs02
172.19.201.189 amdocs02-vip
192.168.10.1 amdocs02-priv
设置IP
eth0
172.19.201.188
255.255.0.0
172.19.201.6
eth1
192.168.10.1
255.255.255.0
172.19.201.6
绑定裸设备
先在逻辑卷组上分出逻辑卷,全部为裸设备,必须包含:
逻辑盘: ocrlv ,votelv 是必须的,因为后面安装ASM要用到
data01,data02,data03,data04,data05,softlv,oralv可选
1、裸设备定义:
一块没有分区的硬盘,称为原始设备(RAWDEVICE)
或者是一个分区,但是没有用EXT3,OCFS等文件系统格式化,称为原始分区(RAWPARTITION)
以上两者都是裸设备
2、裸设备的绑定
有文件系统的分区是采用mount的方式挂载到某一个挂载点的(目录)
而裸设备不能mount,只能绑定到/dev/raw/下的某一个设备名
比如/dev/raw/raw1
3、裸设备的绑定方法
有两种方法,这里介绍一种,还有一种修改/etc/rc.local文件增加,见后面,我采用的是修改/etc/rc.local文件
先介绍第一种方法:
修改/etc/sysconfig/rawdevices,添加以下内容,
这里sdd1和sdd2是原始分区名或者原始设备(硬盘)名,
raw1和raw2是/dev目录下的原始设备名,编号从raw1到raw8191,也就是最多可以绑定255个裸设备
/dev/raw/raw1/dev/sdd1
/dev/raw/raw2/dev/sdd2
然后修改裸设备的属主和访问权限
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
最后使得裸设备生效,并且在机器启动的时候就自动加载
执行/etc/init.d/rawdevices restart使裸设备生效
执行/sbin/chkconfig rawdevices on保证机器启动的时候裸设备能够加载,这一步很重要
裸设备的绑定方法第二种方法,修改/etc/rc.local文件的方法
[root@amdocs01 ~]# cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
raw /dev/raw/raw1 /dev/mapper/vg00-ocrlv
raw /dev/raw/raw2 /dev/mapper/vg00-votelv
raw /dev/raw/raw3 /dev/mapper/vg00-data01
raw /dev/raw/raw4 /dev/mapper/vg00-data02
raw /dev/raw/raw5 /dev/mapper/vg00-data03
raw /dev/raw/raw6 /dev/mapper/vg00-data04
chmod 775 /dev/raw/raw1
chmod 775 /dev/raw/raw2
chmod 775 /dev/raw/raw3
chmod 775 /dev/raw/raw4
chmod 775 /dev/raw/raw5
chmod 775 /dev/raw/raw6
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
chown oracle:dba /dev/raw/raw3
chown oracle:dba /dev/raw/raw4
chown oracle:dba /dev/raw/raw5
chown oracle:dba /dev/raw/raw6
chown oracle:dba /dev/raw/raw7
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180
4、裸设备的读写
不能用cp等命令操作,写入内容用dd命令,可以参阅相关资料
5、清空裸设备
相当于格式化啦bs是快的大小,blocksize
count是快的数量,这两者相乘大于裸设备的容量即可
ddif=/dev/zeroof=/dev/raw/raw1bs=8192count=12800
ddif=/dev/zeroof=/dev/raw/raw2bs=8192count=12800
-------
另外,注意:
rhel4使用udev来管理设备
手动修改/dev/raw/raw1不能永久生效
要想使得权限持久生效
需要修改文件/etc/udev/permissions.d/50-udev.permissions的第113行
raw/*:root:disk:0660
改成
raw/*:oracle:dba:0660
重启机器
如果/dev/下没有/raw/目录,可以自己手工建立。
配置Oracle ASMLib
1、安装Oracle ASMLib
需要的安装包
asmlib
asm-support
asm-kernel
asm-smp-kernel(多process版本)
下载地址:
http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html
安装3个软件包:
# rpm -Uvh oracleasm-support-2.1.3-1.el4.x86_64.rpm
# rpm -Uvh oracleasm-2.6.9-78.ELsmp-2.0.5-1.el4.x86_64.rpm
# rpm -Uvh oracleasmlib-2.0.4-1.el4.x86_64.rpm
2、配置ASMLib
# /etc/init.d/oracleasm configure
Default user to own the driver interface [oracle]: oracle
Default group to own the driver interface [oinstall]: oinstall
Start Oracle ASM library driver on boot (y/n) [y]: y
Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: [ OK ]
Loading module [i]"[/i]oracleasm[i]"[/i]: [ OK ]
Mounting ASMlib driver filesystem: [ OK ]
Scanning system for ASM disks: [ OK ]
以上操作将加载oracleasm.o驱动,并且mount上ASM文件系统,同时我们可以通过以下命令来手工的卸载和加载ASMLib
#/etc/init.d/oracleasm disable //出错检查/var/log/messages文件,确认需要更新的内核版本
#/etc/init.d/oracleasm enable
添加init文件使系统启动时自动加载ASMLib
$su -
#cd /etc/rc3.d
#ln -s ../init.d/oracleasm S99oracleasm
#ln -s ../init.d/oracleasm K01oracleasm
注意:如果系统启动是自动进入图形界面,也就是系统的init level是5,那么上面生成链接的命令应该在/etc/rc5.d目录中操作,重新启动系统,确认ASMLib已经可以自动加载
#lsmod |grep oracleasm
#dmesg |grep oracleasm
3、创建ASM磁盘(说明:createdisk 是针对分区,不是针对磁盘,即:先应将磁盘分区),也可意在后面安装ASM实例的时候创建,我是在后面DBCA配置ASM的是创建的。
#/etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
#/etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
...
...
#/etc/init.d/oracleasm listdisks //列出ASM磁盘
VOL1
VOL2
VOL3
VOL4
如果要删除ASM磁盘通过以下命令
#/etc/init.d/oracleasm deletedisk VOL4
注意:
如果是在RAC环境中的某一个节点中添加了ASM磁盘,那么需要在其他的节点上运行scandisk来获取这种变化
#/etc/init.d/oracleasm scandisks
OK,现在已经完成了创建ASM实例的物理基础,下面开始安装数据库
安装集群软件
安装10201_clusterware_linux_x86_64.cpio
首先要用root用户执行脚本/software/clusterware/rootpre/rootpre.sh
Specify cluster configuration的时候报错:
The specified nodes are not clusterable.
解决方案:
使用 SSH 建立用户等效性,在安装过程中能进行软件的复制,不提示输入口令,也就是直接认可所有节点,他们之间能相互通信。所以必须在所有节点上按照以下步骤进行设置
rac1-> mkdir ~/.ssh
rac1-> chmod 700 ~/.ssh
rac1-> ssh-keygen -t rsa
rac1-> ssh-keygen -t dsa
[oracle@amdocs02 .ssh]$ cat id_rsa.pub >> ~/.ssh/authorized_keys
设置完成然后测试通信:
ssh amdocs02 date
ssh amdos02-priv date
后面需要输入ocr和vote的地址:
/dev/raw/raw1
/dev/raw/raw2
安装集群软件的最后,检查报错:节点amdocs02不存在,打电话请教高手解决(多谢):
用root执行/app/oracle/product/10.2/bin/vipca,修改正确的ip,输入amdocs02-vip后按TAB键,会自动带出虚拟IP地址,注意子网掩码是否正确,可能也需要修改。
安装数据库软件
设置内核参数,则只需在以 root 用户身份登录后执行下命令。
vi /etc/sysctl.conf
kernel.shmall = 2097152
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.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
/sbin/sysctl -p
使之生效
cat >> /etc/security/limits.conf <<EOF
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
要使用 Oracle 产品,应该或必须设置几个环境变量。对于数据库服务器,建议设置以下环境变量:
ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH
可参考:
export ORACLE_BASE=/app/oracle
export ORACLE_CRS_HOME=/app/oracle/product/10.2/crs
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export PATH=$ORACLE_CRS_HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=test2
export LD_LIBRARY_PATH=/app/oracle/product/10.2/lib:$LD_LIBRARY_PATH
创建ASM实例&建库
配置ASM实例的是遇到错误:ORA-27504:IPC error creating OSD context
后来找到原因:因为有一根网线没有插好,导致的。
正常的解决思路是运行oifcfg,检查配置接口
[root@amdocs02 bin]# pwd
/app/oracle/product/10.2/bin
[root@amdocs02 bin]# ./oifcfg getif
eth0 172.19.0.0 global public
eth1 192.168.10.0 global cluster_interconnect
以 oracle 身份登录并启动 DBCA:
$ dbca
1).欢迎
单击 Next。
2).操作
选择 Create a Database。
3).数据库模板
选择 General Purpose。
4).数据库标识
输入全局数据库名称。
5).管理选项
选择 Configure the Database with Enterprise Manager。
选择 Use Database Control for Database Management。
6).数据库证书
选择 Use Same Password for All Accounts。
输入口令并确认。
7).存储选项
选择 Automatic Storage Management (ASM)。
8).创建 ASM 实例
输入 ASM 实例的口令并确认。
9).弹出一个窗口,提示 DBCA 将立即创建并启动 ASM 实例。
单击 OK。
10).创建 ASM 实例时弹出一个带齿轮箱窗口。
11).ASM 磁盘组
由于这是新 ASM 实例且您尚未创建任何 ASM 实例,因此该窗口未显示可用磁盘组。
单击 Create New。
12).创建磁盘组
磁盘组名称
输入磁盘组名称,如 DATA1。
冗余
- High 镜像数据两次。
- Normal 镜像数据一次。
- External 不镜像 ASM 中的数据。如果外部 RAID 阵列提供冗余,则通常使用此选项。
选择成员磁盘
- 您必须手动指示 ASM 到什么地方查找 ASMLib 磁盘,因此,单击 Change Disk Discovery Path
- 弹出一个窗口,提示输入磁盘发现路径。如下所示将磁盘发现路径更改为“ORCL:*”。
- 单击 OK 继续。
您将返回到 Select Member Disks 窗口。您的所有 ASMLib 磁盘现在应显示在此窗口中。
单击该行开头的框,选择加入磁盘组的磁盘。完成后单击 OK。
如果是逻辑卷上的裸设备,只要单击创建,就可以很容易的找到,选中即可。
13).ASM 磁盘组
您将返回到 ASM Disk Groups 窗口。此时,出现在上一步中创建的磁盘组。
单击该行开头的框选择此磁盘组。(在此实例中使用单个磁盘组。)
单击 Next。
14).数据库文件位置
选择 Use Oracle-Managed Files。
确保已将 Database Area 设置为您创建的磁盘组。它包含一个前导加号 — 例如,+DATA1。
15).恢复配置
选择 Specify Flash Recovery Area。
- 快速恢复区 — 输入要用于快速恢复的 ASM 磁盘组。
- 快速恢复区大小 — 接受默认值 2048。
如果要使用归档日志模式,则选中 Enable Archiving。对于评估数据库,可以不选该项。
16).数据库内容
选择 Sample Schemas。
我们不使用定制脚本,因此单击 Next。
17).初始化参数
接受默认值,然后单击 Next。
18).数据库存储
接受默认值,然后单击 Next。
19).创建选项
选择 Create Database(默认值)并单击 Finish。
20).确认
检查完数据库详细信息后单击 OK。
21).DBCA 显示一个操作列表和一个进度条。根据硬件的不同,数据库创建可能需要几分钟到几小时的时间。
22).当数据库创建完成时,将显示一个显示摘要窗口。记下 Enterprise Manager URL,然后单击 Exit。
注意:安装好asm后,数据库实例会在原来的实例名后面增加数字1,2,3等等
如果要sqlplus顺利登陆的话,需要修改.bash_profile或者重设ORACLE_SID
ASM database简单管理
启动:
srvctl start database -d test2
查看
crs_stat -t
李世侠,网名caibird2005 , initdba , 战神
MySQL DBA经验6年;
Oracle DBA经验10年;
精通MySQL HA架构,复制,备份,恢复,SQL优化;
熟悉SHELL编程、Python编程、SQL&PL/SQL编程;
MySQL OCP课程讲师;
ORACLE官方认证OCM证书;
BLOG: http://www.cnblogs.com/caibird2005
http://www.initdba.cn
Wechat: caibird2005
TEL :+86-186-5881-5300 +86-180-7290-8651