问题简述:10gRAC+ASM归档路径dbrecover磁盘组空间满,导致日志无法切换,数据库hang住,原因是legato备份软件出问题后,没有及时备走归档日志。
巡检查看数据库日志,一直报在线重做日志无法归档,通过咨询用户,说前台业务也受到影响。
1.查看归档目录磁盘组剩余空间
SQL>archive log list
Database log modeArchive Mode
Automatic archivalEnabled
Archive destinationUSE_DB_RECOVERY_FILE_DEST
Oldest online log sequence18724
Next log sequence to archive18728
Current log sequence18728
Show parameter db_recovery_file
db_recovery_file_deststring+DGRECOVER
db_recovery_file_dest_sizebig integer 48G
[oracle@dbsvr4:/oracle/app/oracle/script]$export ORACLE_SID=+ASM1
[oracle@dbsvr4:/oracle/app/oracle/script]$asmcmd
ASMCMD> lsdg
StateTypeRebalUnbalSectorBlockAUTotal_MBFree_MBReq_mir_free_MBUsable_file_MBOffline_disksName
MOUNTEDEXTERNNN5124096104857651200910324760DGRECOVER/
2.由于是asm磁盘组,无法通过操作系统cp命令把归档日志拷贝到文件系统中,只能用BACKUP ARCHIVELOG delete input命令来移走部分归档文件到磁盘中。
运行脚本如下:
rman target sys/sys@gzfin2
connect catalog rman/rman@rman
BACKUP ARCHIVELOG FROM LOGSEQ 17828 UNTIL LOGSEQ 17869 THREAD 2 format/bak/U%_arc.bakdelete input;
3.用以上命令备份归档成功后,大约删除10g的归档容量,这时日志切换和应用恢复正常。
4.解决legato备份软件问题后,用备份软件备份剩余归档日志到磁带中。
5.恢复17828到17869段的归档日志
运行脚本如下:
rman target sys/sys@gzfin2
connect catalog rman/rman@rman
RMAN> restore archivelog from logseq 17828 until logseq 17869 thread 2;
archive log thread=2 sequence=17869
channel ORA_DISK_1: reading from backup piece /bak/U%_arc.bak
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/U%_arc.bak tag=TAG20091118T112811
channel ORA_DISK_1: restore complete, elapsed time: 00:03:38
Finished restore at 18-NOV-09
6.再用备份软件备走恢复的归档日志,这是查看dgrecover磁盘组,空间已经释放
ASMCMD> lsdg
StateTypeRebalUnbalSectorBlockAUTotal_MBFree_MBReq_mir_free_MBUsable_file_MBOffline_disksName
MOUNTEDEXTERNNN5124096104857620480015860701586070DGDATA/
MOUNTEDEXTERNNN5124096104857651200411990311990DGRECOVER/
MOUNTEDEXTERNNN51240961048576512006211062110DGSYSTEM/
ASMCMD>
4总结
在备份与恢复指定的归档日志时,一定要加上日志对应的实例thread号,因为是RAC模式,要不报找不到备份集的错误。
released channel: t1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 11/18/2009 16:17:03
RMAN-06026: some targets not found - aborting restore
RMAN-06102: no channel to restore a backup or copy of log thread 1 seq 17869 lowscn 1156551412
RMAN-06102: no channel to restore a backup or copy of log thread 1 seq 17868 lowscn 1156320510
RMAN-06102: no channel to restore a backup or copy of log thread 1 seq 17867 lowscn 1156320475