前言
近日,笔者被分到一个重新搭建Oracle dataguard的任务。客户的基本状况是一套Oracle 11g rac主库(ASM)搭配一个单节点的dg备库(文件系统),故障原因是由于用户长达数月未对数据库巡检,主备库之间因未知原因失去同步,而两边操作系统都有部署归档文件自动清理的任务,所以只能对备库进行重建。这些都很常见,但是这次接触到的主库数据量达到了10TB,所以在复制重建的过程中也引发了一些特殊的故障。
重建步骤
1. 使用备份软件跑一次全备。
2. 清理备库操作系统空间,避免duplicate因空间不足报错
cd /oradata
rm -f * #前往别在*前面加'/' !!!
登录rman删除归档文件
delete noprompt force archivelog all completed before ‘sysdate-1’;
#由于操作系统锁定无法正常删除,需要带上force参数才能成功删除。
3. 关闭备库
shutdown immediate
#关的太慢就shutdown abort
4. 启动备库到nomount 状态
startup nomount
5. 启动Rman同时连接主备库
rman target sys/***@primary auxiliary sys/***@standby
#由于是重建,所以配置都是现成的,比如TNSNAME文件。
6.开始复制
duplicate target database for standby from active database nofilenamecheck;
注意:
因复制时间较长,毕竟10T的数据,所以笔者写了个小脚本让复制任务能够后台执行
nohup sh duplicate.sh &
内容如下
$ORACLE_HOME/bin/rman target sys/***@ primary auxiliary sys/***@standby <<EOF
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
allocate auxiliary channel c1 type disk;
allocate auxiliary channel c2 type disk;
allocate auxiliary channel c3 type disk;
allocate auxiliary channel c4 type disk;
duplicate target database for standby from active database nofilenamecheck;}
exit;
EOF
#观察nohup.out文件,可以查看实时的复制进展
tail -200f nohup.out
故障处理
1.复制完成出现如下错误,如图

2.尝试打开数据库,收获如下报错

3.笔者查看文件系统,发现不存在报错里的system开头的数据文件,结合nohup的报错提示,判断是数据传输过程中,有部分数据文件未成功复制到本地。
4.打开Alert日志,发现日志里已经清晰的告诉我,数据库缺少哪些数据文件,包括数据文件号的信息都被记录在内。
5.马上登录到主库,拷贝缺失的数据文件,由于主库采用的是ASM存储方式,所以利用Rman备份到本地文件系统上。如图所示

6.备库通过SCP拷贝主库的备份文件到本地
scp oracle@xx.xx.xx.xx:/x/x/* /x/x/
7.登录rman,注册本地备份目录
rman target /
catalog start with ‘/x/x’;
8.还原缺失的数据文件
restore datafile 1;
restore datafile 2;
...
9.关闭数据库
shutdown immediate
10.打开数据库,此时观察Alert日志,后台正在进行RFS同步进程
11.等待过后,数据库正常打开
12. 开启日志实时应用
alter database recover managed standby database using current logfile disconnect;
13.完成重建
后话
面对数据量较大的主库,在重建备库的时候,建议还是拷贝备份集到备库进行还原恢复的方法。如果实在不得已要用duplicate复制,在网络不佳的情况下,就要做好丢失数据文件的打算。不过没关系,得益于rman的强大,只要手续齐全,都能给你恢复回来,就是麻烦了点。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




