加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安

发布时间:2020-12-12 15:35:37 所属栏目:百科 来源:网络整理
导读:################################# 磁盘管理 ################################# # 磁盘规划 (生产库只需要按比例扩大 DATA 和 FRA) #CRS 1G (仲裁盘 和 CRS 盘, ORACLE 要求 设置为奇数块 , 防止产生脑裂 ,大小 至少 869M ) #DATA 5G (分越多块越
################################# 磁盘管理#################################
# 磁盘规划(生产库只需要按比例扩大 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
#加载多路径软件模块 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 | grepmp
# 磁盘管理(如果是学习环境请直接看 方式一 例三,直接跳至 磁盘测试 #生产环境不建议直接用系统生成的逻辑盘 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块设备,ORACLE10.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*",PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`",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]*",GROUP="disk" 改成 KERNEL=="rawctl",GROUP="disk",MODE="0660" SUBSYSTEM=="raw",MODE="0660" #或者直接自定义一个规则可以 cat >>/lib/udev/rules.d/99-raw.rules<<EOF KERNEL=="rawctl",MODE="0660" SUBSYSTEM=="raw",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 rac 2 hostname> /etc/HOSTNAME sysctl kernel.hostname=rac 2
#用户环境变量其他节点 echo ' export TMP=/tmp export TMPDIR=$TMP export ORACLE_TERM=xterm export THREADS_FLAG=native export ORACLE_SID= rac 2 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=+ASM 2 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=oinstall
export 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"
' > /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-usergrid-hosts"rac1rac2"-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@ rac 2 su - oracle ssh-keygen ssh-copy-id oracle@rac1
ssh-copy-id oracle@ rac 2 && exit su - grid ssh-keygen ssh-copy-idgrid@rac1 ssh-copy-id grid @rac2&& exit
#测试等效性(出现六个日期证明成功了) ssh rac1 date && ssh rac2 date && su-oracle -c " ssh rac 1 date" && su-grid -c "ssh rac1 date" && su-oracle -c "ssh rac 2 date" && su-grid -c "ssh rac2 date"
# GridInfrastructure 的依赖包(重要!) 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 -rfcvuqdisk-1.0.9-1.rpm"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读