故障描述:客户由于停机关闭了standby库后重启,归档日志无法正常传输到standby 库上。
故障处理过程:
1.在主库及备库 上查询最新的归档日志,得出缺失了哪些归档。
select thread# ,max(sequence# ) from v$archived_log group by thread#;
2.查看主库的alert日志,发现listener错误。于是在备库上直接lsnrctl status 发现客户没启动监听,直接lsnrctl start 启动监听,启动监听后,日志仍无法传输过去,发现是主库上的归档已不存在。此时,手工做了日志切换,standby能正常接收,但sequence号已跳过了好几个。
3.在主库上查找归档目录,发现归档已被删除了,但在定时任务中已先做了备份。
4.通过rman恢复主库的归档日志。
restore archivelog from logseq 4998 until logseq 5004 ;
restore archivelog from logseq 4221 until logseq 4225 thread 2;
5. 恢复后的归档日志仍未自动传输到备库上。 在备库执行 recover managed standby database using current logfile disconnect; 提示正在介质恢复报错。
6. 于是手工直接将缺失的归档日志scp到standby库上。
手工获取asm磁盘中归档
create DIRECTORY asm as '+DATA/jsby/archivelog/2015_06_17/';
begin
dbms_file_transfer.copy_file(
source_directory_object=>'asm',
source_file_name=>'thread_2_seq_4225.382.882579923',
destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name=>'thread_2_seq_4225.382.882579923');
end;
/
drop DIRECTORY asm;
7,注册归档文件。
alter database register physical logfile '/oradata/archive/thread_1_seq_5000.377.882616947';
alter database register physical logfile '/oradata/archive/thread_1_seq_5001.291.882616945';
alter database register physical logfile '/oradata/archive/thread_1_seq_5002.319.882616945';
alter database register physical logfile '/oradata/archive/thread_1_seq_5003.351.882616951';
alter database register physical logfile '/oradata/archive/thread_2_seq_4223.333.882617335';
alter database register physical logfile '/oradata/archive/thread_2_seq_4224.339.882617339';
alter database register physical logfile '/oradata/archive/thread_2_seq_4225.382.882579923';
alter database register physical logfile '/oradata/archive/1_5004_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5005_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5006_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5008_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5007_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5010_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5009_773055259.dbf';
alter database register physical logfile '/oradata/archive/2_4226_773055259.dbf';
alter database register physical logfile '/oradata/archive/2_4227_773055259.dbf';
8.备库上的归档注册后能后应用,但后续的确一直不能应用。
于是重启standby 库
shutdown immediate
startup mount
recover managed standby database disconnect from session;
9.之后归档 日志传输并应用正常 。
故障处理过程:
1.在主库及备库 上查询最新的归档日志,得出缺失了哪些归档。
select thread# ,max(sequence# ) from v$archived_log group by thread#;
2.查看主库的alert日志,发现listener错误。于是在备库上直接lsnrctl status 发现客户没启动监听,直接lsnrctl start 启动监听,启动监听后,日志仍无法传输过去,发现是主库上的归档已不存在。此时,手工做了日志切换,standby能正常接收,但sequence号已跳过了好几个。
3.在主库上查找归档目录,发现归档已被删除了,但在定时任务中已先做了备份。
4.通过rman恢复主库的归档日志。
restore archivelog from logseq 4998 until logseq 5004 ;
restore archivelog from logseq 4221 until logseq 4225 thread 2;
5. 恢复后的归档日志仍未自动传输到备库上。 在备库执行 recover managed standby database using current logfile disconnect; 提示正在介质恢复报错。
6. 于是手工直接将缺失的归档日志scp到standby库上。
手工获取asm磁盘中归档
create DIRECTORY asm as '+DATA/jsby/archivelog/2015_06_17/';
begin
dbms_file_transfer.copy_file(
source_directory_object=>'asm',
source_file_name=>'thread_2_seq_4225.382.882579923',
destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name=>'thread_2_seq_4225.382.882579923');
end;
/
drop DIRECTORY asm;
7,注册归档文件。
alter database register physical logfile '/oradata/archive/thread_1_seq_5000.377.882616947';
alter database register physical logfile '/oradata/archive/thread_1_seq_5001.291.882616945';
alter database register physical logfile '/oradata/archive/thread_1_seq_5002.319.882616945';
alter database register physical logfile '/oradata/archive/thread_1_seq_5003.351.882616951';
alter database register physical logfile '/oradata/archive/thread_2_seq_4223.333.882617335';
alter database register physical logfile '/oradata/archive/thread_2_seq_4224.339.882617339';
alter database register physical logfile '/oradata/archive/thread_2_seq_4225.382.882579923';
alter database register physical logfile '/oradata/archive/1_5004_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5005_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5006_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5008_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5007_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5010_773055259.dbf';
alter database register physical logfile '/oradata/archive/1_5009_773055259.dbf';
alter database register physical logfile '/oradata/archive/2_4226_773055259.dbf';
alter database register physical logfile '/oradata/archive/2_4227_773055259.dbf';
8.备库上的归档注册后能后应用,但后续的确一直不能应用。
于是重启standby 库
shutdown immediate
startup mount
recover managed standby database disconnect from session;
9.之后归档 日志传输并应用正常 。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29863023/viewspace-1703403/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29863023/viewspace-1703403/