注册
DSC集群redo修复
专栏/培训园地/ 文章详情 /

DSC集群redo修复

留念似水 2024/02/02 1000 0 0
摘要

整体过程

过程

dsc集群中,如初始两节点4个redo文件,根据正常停库,查看每个redo文件MD5值以及测试过程中
1、dsc1节点redo0文件损坏,将dsc0节点redo0复制为dsc1节点的redo0,无法启动dsc集群;
2、将dsc0节点的redo0、redo1复制为dsc1节点的redo0、redo1,无法启动;
3、新建相同的dsc集群,将dsc1的redo0的db_magic值修改为原dscdb_magic,复制到原dsc集群的redo0,无法启动;
4、新建相同的dsc集群,将dsc1的redo0、redo1的db_magic值修改为原dscdb_magic,复制到原dsc集群的redo0、redo1,无法启动;
5、新建相同的dsc集群,将dsc0、dsc1的redo0、redo1的db_magic值修改为原dscdb_magic,将四个redo复制到原dsc集群的对应位置,启动成功;

结果

判断在dsc集群中所有redo文件中类似存在标记位的标记,将集群内所有redo文件作为整体来处理,一个redo文件损坏,需要将集群内所有redo替换才会完成启动;

模拟开始

环境处理

检查环境状态

关闭节点实例前,确认dmdcr.ini是否关闭自动拉起功能
Dsc0:image.png
Dsc1:image.png

启停服务

1、 关闭各个节点实例
Dsc1:image.png
Dsc0:image.png
2、启动css及asm服务
Dsc0:image.png
Dsc1:image.png

模拟损坏

1、进入asm文件管理系统将dsc1的redo文件拿出
进入asm文件管理系统将dsc1的redo文件拿出2、向内追加字符模拟文件损坏

# ./dmasmtool DCR_INI=/home/data/dmdcr.ini
ASM>cd +DMLOG
ASM>ls
ASM>cp -r '+DMLOG/dsc1_log01.log' '/home/data/'

image.png
向内追加字符模拟文件损坏

# cd /home/data/
# md5sum dsc1_log01.log 
5c1f6ac154a3f85f8327b75964a52941  dsc1_log01.log
# cp dsc1_log01.log dsc1_log01.log_bak
# md5sum dsc1_log01.log_bak 
5c1f6ac154a3f85f8327b75964a52941  dsc1_log01.log_bak
# vi dsc1_log01.log
# md5sum dsc1_log01.log 
695c16489d09210939f94ef48b6a1012  dsc1_log01.log

image.png
3、覆盖原文件
将dsc1节点的redo0从asm文件系统中删除

ASM>cd +DMLOG
ASM>ls
ASM>rm -r dsc1_log01.log
ASM>ls

image.png
将追加字符后的redo拷贝至asm文件系统对应目录中

ASM>cp -r '/home/data/dsc1_log01.log' '+DMLOG/'
ASM>ls

image.png
4、前台启动DSC集群并观察报错
Dsc0:
image.png
Dsc1:
image.png

搭建新集群

  • 搭建过程不做详述,相关方法请自行查阅
  • 将新搭建的dsc集群中dsc1节点的redo修改为原dsc集群的db_magic复制至原dsc集群的对应目录
    将原dsc节点的system.dbf从asm中拷贝出来
ASM>cd +DMDATA
ASM>ls
ASM>cd data
ASM>ls
ASM>cd dsc
ASM>ls
ASM>cp -r '+DMDATA/data/dsc/system.dbf' '/home/data/'

image.png
查看原system.dbf的db_magic值

# ./dmmdf type=1 file=/home/data/system.dbf

image.png

  • 将现dsc节点的dsc1的redo0文件的db_magic值改为原dsc的db_magic值
    将现dsc节点的四个redo文件考出备用
ASM>cd +DMLOG
ASM>cp -r '+DMLOG/dsc1_log01.log' '/home/data/'
ASM>cp -r '+DMLOG/dsc1_log02.log' '/home/data/'
ASM>cp -r '+DMLOG/dsc0_log01.log' '/home/data/'
ASM>cp -r '+DMLOG/dsc0_log02.log' '/home/data/'
# ll /home/data/

image.png
将四个redo文件的db_magic值修改为原dsc的db_magic值
image.png

  • 依次修改四个redo日志备用
    将现dsc4个修改过db_magic值的redo日志scp至原dsc节点
    在原dsc节点中新建文件夹
    mkdir -p /home/data/redo
    在现dsc节点将修改过db_magic值的四个redo文件scp至原节点
    scp /home/data/dsc0_log0* /home/data/dsc1_log0* 192.168.248.80:/home/data/redo/
    分别在两节点查看MD5值,避免传输过程中丢包
    image.png
  • 将修改过db_magic值的新redo文件放置在原asm对应目录下
    单独放置现dsc1节点的redo0 redo1
ASM>cd +DMLOG
ASM>ls
ASM>rm -r dsc1_log01.log
ASM>cp -r '/home/data/redo/dsc1_log01.log' '+DMLOG/'
ASM>ls

image.png

  • 前台启动原dsc集群(观察报错)
    Dsc0:image.png
    Dsc1:image.png
  • DSC1 节点重复上述操作
    放置现dsc0、dsc1节点的redo0、redo1
ASM>cd +DMLOG
ASM>ls
ASM>rm -f dsc0_log01.log 
ASM>ls  
ASM>rm -r dsc0_log02.log
ASM>ls
ASM>rm -r dsc1_log01.log dsc1_log02.log
ASM>ls
ASM>cp -r '/home/data/redo/dsc0_log01.log' '+DMLOG/'
ASM>cp -r '/home/data/redo/dsc0_log02.log' '+DMLOG/'
ASM>cp -r '/home/data/redo/dsc1_log01.log' '+DMLOG/'
ASM>cp -r '/home/data/redo/dsc1_log02.log' '+DMLOG/'

image.png
前台启动原dsc集群(无报错)
Dsc0:image.png
Dsc1:image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服