Oracle RAC 11GR2更换主机不换存储--ASM磁盘组异机挂载

背景

生产上有套RAC,主机已运行超5年,最近一段时间常常出现物理主机无端宕机的状态,宕机没有规律,并且是两个节点交替宕机,看监控宕机前主机负载也不高,硬件厂商看过也没找出具体缘由。因而想把主机换掉,但因为数据量较大将近50T,搭建DataGuard耗时长,还须要double的存储空间,不合适。就想到只把集群相关的LUN映射到新集群中,在新集群中MOUNT磁盘组作迁移。下面是测试环境的基本步骤。sql

前期准备工做

安装新主机

用户、权限、目录、软件版本、PSU版本与旧集群一致
安装集群及打PSU步骤省略,新集群只划分OCR和ACFS的磁盘用于安装集群软件及配置ACFS共享目录。数据库

/usr/sbin/groupadd -g 508 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 506 asmdba
/usr/sbin/groupadd -g 507 asmoper
/usr/sbin/useradd -u 508 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid grid
/usr/sbin/useradd -u 509 -g oinstall -G dba,oper,asmdba,asmadmin -d /home/oracle oracle

划分旧集群存储到新集群

在存储上把旧集群的磁盘映射到新集群上,只映射数据般和备份盘。
配置多路径,把旧集群多路径配置multipath.conf和udev中的配置文件复制到新集群中,注意不要把新集群的配置覆盖掉oracle

正式切换

中止旧集群

  1. 中止ogg
    cd /odc
    ./ggsci
    stop *
    stop mgr !
  2. 复制/odc目录下全部文件到新集群
  3. 中止数据库
    srvctl stop database -d racdb
  4. 集群集群 (两个节点)
    crsctl stop crs
  5. 集群禁止自启动 (两个节点)
    crsctl disable crs
  6. 修改集群中的物理IP,并重启网卡 (两个节点)

配置新集群ASM实例

# ACFS为已有配置,是新集群ACFS共享磁盘使用,DATA为旧集群中的数据磁盘组。
sqlplus / as sysdba
alter system set asm_diskgroups='ACFS DATA' scope=both sid='+ASM1'; 
alter system set asm_diskgroups='ACFS DATA' scope=both sid='+ASM2'; 
#在新集群mount磁盘组 (两个节点) 
sqlplus / as sysasm
SQL> alter diskgroup data mount;

配置数据库

  1. 复制旧集群文件到新集群
    scp /oracle/db11g/dbs/* oracle@11.111.26.xx:/oracle/db11g/dbs/  
    scp /oracle/db11g/network/admin/tnsnames.ora oracle@11.111.26.xx:/oracle/db11g/network/admin/
  2. 建立必要目录
    mkdir -p /oracle/admin/racdb/adump
  3. 注册数据库服务
    srvctl add database -d racdb -o $ORACLE_HOME
    srvctl add instance -d racdb -i racdb1 -n racdb1
    srvctl add instance -d racdb -i racdb2 -n racdb2
  4. 启动数据库
    #若是scan名称与旧集群中不一致,则须要修改spfile中的remote_listener参数
    create pfile='/home/oracle/pfile_racdb.ora' from spfile='';
    vi /home/oracle/pfile_racdb.ora #修改成新的scan:1521
    create spfile='' from pfile='/home/oracle/pfile_racdb.ora';
    srvctl start database -d racdb

配置OGG

cd /odc
./ggsci
start mgr
start *

修改新集群中的全部IP地址

# 中止集群
crsctl stop crs 
# 修改bond0网卡地址,并重启网卡
# 修改新集群 /etc/hosts
# 启动新集群
crsctl start crs 
# 修改scanip
srvctl config scan
srvctl stop scan_listener
srvctl stop scan
srvctl status scan

srvctl modify scan -n 11.111.26.x

srvctl config scan
srvctl start scan
srvctl start scan_listener

配置备份目录dbbak

  1. 旧集群导出vg
    umount /dbbak
    umount /dbbak2
    vgchange -a n vg_dbbak
    vgchange -a n vg_dbbak2
    vgexport vg_dbbak
  2. 新集群导入vg
    vgimport vg_dbbak
    vgimport vg_dbbak2
    mount /dev/vg_dbbak/lv_dbbak /dbbak
    mount /dev/vg_dbbak/lv_dbbak2 /dbbak

后续操做

  1. 复制/home/oracle目录文件到对应节点
    scp -r /home/oracle/* oracle@11.111.26.xx:/home/oracle
  2. 配置定时任务
    复制两个节crontab中的全部任务到新集群对应的节点
  3. 配置zabbix监控
  4. 其余须要复制划修改的步骤

回退步骤

关闭新集群全部服务

# 中止ogg
cd /odc
./ggsci
stop *
stop mgr !
# 中止数据库
srvctl stop database -d racdb
# 中止集群(两个节点)
crsctl stop crs
# 中止集群自启动(两个节点)
crsctl disable crs

修改新旧集群物理IP信息及/etc/hosts配置

vi /etc/sysconfig/network-scripts/ifcfg-bond0
vi /etc/hosts

启动旧集群全部服务,包含ogg

# 开启集群自启动(两个节点)
crsctl enable crs
# 启动集群(两个节点)
crsctl start crs
# 启动数据库
srvctl start database -d racdb
# 启动ogg
cd /odc
./ggsci
start mgr
start *

挂载备份目录到旧集群

  1. 新集群导出vg
    umount /dbbak
    umount /dbbak2
    vgchange -a n vg_dbbak
    vgchange -a n vg_dbbak2
    vgexport vg_dbbak
  2. 旧集群导入vg,并挂载lv
    vgimport vg_dbbak
    vgimport vg_dbbak2
    mount /dev/vg_dbbak/lv_dbbak /dbbak
    mount /dev/vg_dbbak/lv_dbbak2 /dbbak

恢复合肥灾备归档传输

验证auto_ftp_mid是否启动ide

启动应用验证

相关文章
相关标签/搜索