ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (二)
来源:互联网 发布:快手变声软件 编辑:程序博客网 时间:2024/05/23 01:16
################################# 磁盘管理 #################################
#磁盘规划(生产库只需要按比例扩大 DATA 和 FRA)
#CRS 1G (仲裁盘 和 CRS 盘,ORACLE 要求设置为奇数块,防止产生脑裂,大小至少 869M)
#DATA 5G (分越多块越好,充分发挥多路径均衡负载 IO 性能,ORACLE 要求至少 5100M)
#FRA 6G (快速恢复区,可以存放数据库备份,增量备份和归档日志,原则上比 DATA 要大)
#多路径配置
#这里只介绍一般linux发行版中都自带的 multipath 多路径软件的常用命令,如何设置这里不再敖述。
#其他商业版本的多路径软件都类似,反而更简单,其原理都是在 /dev/ 下生成专有盘符
#比如 EMC 的 powerpath 会生成 /dev/emcpowerX 这样路径聚合后的 DM 设备盘符
#重新扫描LUN设备
rescan-scsi-bus.sh
#查看多路径软件是否存在
lsmod | grep dm-multipath
lsmod | grep dm-multipath
#加载多路径软件模块
modprobe dm-multipath
#多路径软件的重启
service multipathd restart
#开机启动多路径
chkconfig multipathd on
#查看多路径
multipath -ll | grep mpath
#强制更新路径
multipaht -F
#聚合路径 生成 DM 设备(/dev/mapper/*)
multipath -v2
multipath -v3 | grep uid
#显示DM设备信息(device mapper)
dmsetup ls|sort|info|status
fdisk -l | grep mp
#磁盘管理(如果是学习环境请直接看 方式一 例三,直接跳至 磁盘测试)
#生产环境不建议直接用系统生成的逻辑盘 sd* 来绑定裸设备,重启时系统盘符可能会产生变化
#以 裸设备 加 ASM 管理磁盘,不格式化磁盘,可以获得最大磁盘性能并防止操作系统对该分区写入数据。
#官方建议用 UDEV 规则来映射 RAW,也可以直接 RAW 服务加载,还可以用ASMLib 三种方式。
# 备注:(linux 下 ORACLE 不能直接使用逻辑卷,必须绑定为 raw 设备,权限也必须正确,否则 ASM 里无法发现磁盘。UNIX可以直接使用逻辑卷。内核 2.6.9 之前使用 /etc/sysconfig/rawdevices 和 /etc/udev/permissions.d/50-udev.permissions 的配合对 raw 设备进行管理,内核 2.6.18 以后 RHEL 一般使用 /etc/udev/rules.d/60-raw.rules 进行 raw 设备的管理,RHEL 的 /etc/udev/permissions.d/50-udev.permissions 和 SLES 的 /lib/udev/rules.d/50-udev-default.rules 为磁盘的权限管理,RHEL 的 60-raw.rules,SLES 没有 60-raw 规则,还是使用 /etc/raw 都为C字符设备,自定义规则 99-oracle-asmdevices 和 ASMLib 都为B块设备,ORACLE 10.2.0.2 才开始支持块设备)#方式一:配置UDEV规则来挂载裸设备(工作机制参考下面链接)
# https://wiki.archlinux.org/index.php/Udev_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
#例一:(只针对 RHEL)
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="mapper/2229f000155201944", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="mapper/222710001552e7868", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="mapper/222810001558f83bd", RUN+="/bin/raw /dev/raw/raw3 %N"
KERNEL=="raw[1-9]*", OWNER="grid", GROUP="asmadmin", MODE="660"
#例二:(多路径聚合 DM 设备生成脚本,各 linux 通用,建议)
mv /etc/udev/rules.d/99-oracle-asmdevices.rules /etc/udev/rules.d/99-oracle-asmdevices.rules.bak
for i in 2229f000155201944 222710001552e7868 222810001558f83bd;
do
echo "KERNEL==\"dm*\", SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/mapper/\$name\", RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/mapper/$i`\", NAME=\"asm-$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"">>/etc/udev/rules.d/99-oracle-asmdevices.rules;
done
#例三:(直接使用系统逻辑盘的生成脚本,仅学习使用,如果正常完成会去掉 /dev/sd* 变成 /dev/asm*)
mv /etc/udev/rules.d/99-oracle-asmdevices.rules /etc/udev/rules.d/99-oracle-asmdevices.rules.bak
for i in b c d;
do
echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"">>/etc/udev/rules.d/99-oracle-asmdevices.rules;
done
#重启后 ll /dev/asm* 查看磁盘是否存在,权限是否正常
#SLES 的 UDEV 命令 (建议重启,经测试,重启 UDEV 服务好像不起作用)
/etc/init.d/boot.udev restart
/etc/init.d/boot.udev status
# On RHEL5/OEL5/OL5:
# /sbin/udevcontrol reload_rules
# /sbin/start_udev
# On RHEL6/OL6:
#/sbin/udevadm control --reload-rules
#/sbin/start_udev
#方式二:直接挂载为 RAW 裸设
modprobe raw
#例一:SLES 的 raw 配置文件挂载 (RHEL 为 /etc/sysconfig/rawdevices,之后还必须配合权限)
#多路径绑定 raw
cat >> /etc/raw <<EOF
raw1:mapper/2229f000155201944
raw2:mapper/222710001552e7868
raw3:mapper/222810001558f83bd
EOF
#逻辑盘绑定 raw(仅学习使用,官方建议使用 UDEV)
cat >> /etc/raw <<EOF
raw1:sdb
raw2:sdc
raw3:sdd
raw4:sde
EOF
# RHEL 权限修改
vi /etc/udev/permissions.d/50-udev.permissions
将 raw/*:root:disk:0660 改成 raw/*:grid:asmadmin:0660
# SLES 权限修改vi /lib/udev/rules.d/50-udev-default.rules
将
KERNEL=="rawctl",NAME="raw/%k", GROUP="disk"
SUBSYSTEM=="raw",KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk"
改成
KERNEL=="rawctl",NAME="raw/%k", GROUP="disk",MODE="0660"
SUBSYSTEM=="raw",KERNEL=="raw[0-9]*", NAME="raw/%k", OWNER="grid", GROUP="asmadmin",MODE="0660"
#或者直接自定义一个规则可以
cat >> /lib/udev/rules.d/99-raw.rules <<EOF
KERNEL=="rawctl",NAME="raw/%k", GROUP="disk",MODE="0660"
SUBSYSTEM=="raw",KERNEL=="raw[0-9]*", NAME="raw/%k", OWNER="grid", GROUP="asmadmin",MODE="0660"
EOF
#例二:启动时直接用 raw 服务挂载(高版本 linux 可能无效,仅学习使用,官方建议使用 UDEV)
cat >> /etc/rc.local <<EOF
raw /dev/raw/raw1 /dev/sdb
raw /dev/raw/raw2 /dev/sdc
raw /dev/raw/raw3 /dev/sdd
raw /dev/raw/raw4 /dev/sde
sleep 1
chown grid:asmadmin /dev/raw/raw[0-9]*
chmod 660 /dev/raw/raw[0-9]*
EOF
#启动 raw 服务
service raw start
chkconfig raw on
#查看挂载是否成功
chkconfig --list | grep raw
ll /dev/raw/
raw -qa
#方式三:ASMLib 方式绑定裸设备(略过,网上很多)
#创建软连接来指向 raw 文件 (示例,不建议)
#ln -s /dev/raw/raw11 redo101.log
#ln -sf /dev/raw/raw1 /u01/oradata/devdb/asmdisk1
#测试磁盘(磁盘写入测试,如刚创建 UDEV 规则建议重启 reboot 后测试)
#dd if=/dev/zero of=/dev/mapper/2229f000155201944
#dd if=/dev/zero of=/dev/raw/raw1
#dd if=/dev/zero of=/dev/asm-b
#查看IO性能 及 多路径的均衡负载(另开一个会话)
#watch iostat -dm
############################### halt 复制虚拟机 ###############################
#可以直接复制3台机器,为以后添加 rac3 节点和 DG 做准备,共享磁盘也要复制一套,给 DG 使用
############################### 其他节点操作开始 ##############################
#修改 IP(其他节点,如果是复制的虚拟机,这里的网卡名称会变,请注意)
#修改主机名(针对 SLES ,RHEL 在网卡配置文件里设置)
mv /etc/HOSTNAME /etc/HOSTNAME.bak
hostname rac2
hostname > /etc/HOSTNAME
sysctl kernel.hostname=rac2
#用户环境变量(其他节点)
echo '
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export THREADS_FLAG=native
export ORACLE_SID=rac2
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=/usr/sbin:$PATH:$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:$ORACLE_HOME/network/jlib
#export DISPLAY=:0.0
export LANG=zh_CN.UTF-8
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
alias rsqlplus="rlwrap sqlplus / as sysdba"
alias rrman="rlwrap rman target /"
' > /home/oracle/.bash_profile
echo '
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_TERM=xterm
export THREADS_FLAG=native
export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORA_CRS_HOME=$ORACLE_HOME
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS11=$ORACLE_HOME/nls/data
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
#export DISPLAY=:0.0
export LANG=zh_CN.UTF-8
export CVUQDISK GRP=oinstallexport NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
alias rasmcmd="rlwrap asmcmd"
alias rsqlplus="rlwrap sqlplus / as sysasm"
alias crs="watch crs_stat -t"
alias rsqlplus="rlwrap sqlplus / as sysasm"
alias crs="watch crs_stat -t"
' > /home/grid/.bash_profile
############################### 其他节点操作结束 ##############################
#安装介质(只需要复制到主节点,其他节点不需要)
# p13390677_112040_Linux-x86-64_1of7.zip 和 p13390677_112040_Linux-x86-64_2of7.zip 是 Oracle 软件的安装介质。p13390677_112040_Linux-x86-64_3of7.zip 是 GRID 软件的安装介质。
#这里的3 个软件包均是来源于MetaLink 网站,其版本均是目前 Oracle 11g 的最新版本 11.2.0.4.0。如果没有MetaLink 账号也可以从 oracle 官方网站免费获取 11.2.0.1.0 的版本。
#复制三个zip包到根目录
cd / && rz
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
unzip p13390677_112040_Linux-x86-64_3of7.zip
#解压完会在根目录多出两个目录 /database/ 和 /grid/
du -sh /database && du -sh /grid
#rm -rf p13390677_112040_Linux-x86-64_*
#建立等效性(这步可以跳过,主要是为了 静默安装 使用,GUI 图形界面安装时可以更简便的配置它)
#方法一:(建议!ROOT 用户不做要求,因涉及密码输入,这里的命令不能批量复制!)
#等效性操作只需要在主节点上运行,其中要输入四次密码,grid 密码 grid ,oracle 密码 oracle
/grid/sshsetup/sshUserSetup.sh -user root -hosts "rac1 rac2" -advanced -exverify -confirm -noPromptPassphrase
/grid/sshsetup/sshUserSetup.sh -user grid -hosts "rac1 rac2" -advanced -exverify -confirm -noPromptPassphrase
/grid/sshsetup/sshUserSetup.sh -user oracle -hosts "rac1 rac2" -advanced -exverify -confirm -noPromptPassphrase
#方法二:
ssh-keygen
ssh-copy-id root@rac1
ssh-copy-id root@rac2
su - oracle
ssh-keygen
ssh-copy-id oracle@rac1
ssh-copy-id oracle@rac2 && exit
su - grid
ssh-keygen
ssh-copy-id grid@rac1
ssh-copy-id grid@rac2 && exit
#测试等效性(出现六个日期证明成功了)
ssh rac1 date && ssh rac2 date && su - oracle -c "ssh rac1 date" && su - grid -c "ssh rac1 date" && su - oracle -c "ssh rac2 date" && su - grid -c "ssh rac2 date"# Grid Infrastructure 的依赖包(重要!)
rpm -ivh /grid/rpm/cvuqdisk-1.0.9-1.rpm
scp /grid/rpm/cvuqdisk-1.0.9-1.rpm rac2:~/
ssh root@rac2 "rpm -ivh cvuqdisk-1.0.9-1.rpm"
ssh root@rac2 "rm -rf cvuqdisk-1.0.9-1.rpm"
0 0
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (二)
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (一)
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (三)
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (四)
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (五)
- Oracle 11g R2+RAC+ASM+redhat安装详解1
- Oracle 11g R2+RAC+ASM+redhat安装详解2
- Oracle 11g R2+RAC+ASM+OracleLinux6.4安装详解(图)
- Oracle 11g R2+RAC+ASM+OracleLinux6.4安装详解(图)
- Oracle 11g R2+RAC+ASM+OracleLinux6.4安装详解(图)
- Oracle 11g R2+ RAC+ ASM+ OracleLinux6.4安装详解(1)前期准备
- Oracle 11g R2+ RAC+ ASM+ OracleLinux6.4安装详解(2)Grid Infrastructure
- Oracle 11g R2+RAC+ASM+OracleLinux6.4安装详解(图)
- Oracle 11g R2+RAC+ASM+OracleLinux6.4安装详解(图)
- Oracle Linux 6.4安装Oracle 11g R2+RAC+ASM图文详解
- Oracle 11g R2 RAC 删除节点详解(二)
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- Redhat 5.4 + ASM + RAW+ Oracle 10g RAC 安装文档
- Ubuntu 14.04在x240上安装后wifi失效
- linux下sqlmap安装和使用
- 【51nod】1012 最小公倍数LCM - 辗转相除法
- 修改程序的心得体会
- 将十进制转换成八进制
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (二)
- 64位程序如何调用32位dll(简单解决方案 )
- 树莓派2+Ubuntu14.04+OpenCV交叉编译
- Android官方API文档完整版以及优秀开源库分享
- 公因数之和2-18446744073709551615
- 服务器上运行的小程序-servlet
- Unity Shader-边缘光(RimLight)效果
- 从python看深浅复制
- 无主之地1