暂无图片
alter system archive log current执行的时机
我来答
分享
Edward
2023-04-04
alter system archive log current执行的时机

1、在备份日志和清理日志的时候,在备份开始前执行了alter system archive log current,结果有时候会发生“log 4 sequence# 697 not archived, no available destinations”
导致数据库归档卡死;

2、这个命令在进行归档日志备份的时候是否应该执行,如何避免 not archived, no available destinations这种情况?
3、或者这个命令alter system archive log current在归档日志备份中就不用执行,现在发现执行后在v$archived_log表中存在历史记录,这些历史记录是已经被删除的;

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
刘贵宾

1、当执行alter system archive log current命令时,Oracle会将当前redo log切换到下一个序列号并将其标记为“active”,这样就可以开始进行日志备份和归档。如果在备份开始之前执行该命令,那么可能会出现“log 4 sequence# 697 not archived, no available destinations”的错误,这是因为当前redo log序列号还没有被归档,而备份程序已经尝试归档该序列号。这可能会导致备份程序挂起或失败,以及归档日志卡死。

2、在进行归档日志备份时,不需要显式执行alter system archive log current命令。在备份程序中,它会自动扫描当前的redo log文件并将其归档。如果备份程序在扫描redo log时发现它们已经归档或者不再需要归档,那么它会跳过它们并继续扫描下一个未归档的redo log文件。

3、如果你想手动归档某些redo log,你可以使用命令"alter system switch logfile"强制切换到下一个redo log文件,这样当前的redo log就会被归档。

执行alter system archive log current命令会导致当前redo log文件被归档并记录到v$archived_log表中。如果你在备份程序中成功地归档了某些redo log文件,那么你在v$archived_log表中也应该看到这些文件的记录。如果某些归档日志被删除了,那么相应的v$archived_log记录也应该被删除。你可以使用命令“delete archivelog all backed up 1 times to device type disk”来删除已备份的归档日志。

暂无图片 评论
暂无图片 有用 5
暂无图片
Edward
题主
2023-04-04
看来alter system archive log current和alter system switch logfile 作用大致相同但是实现效果不同。稳定性来看还是alter system switch logfile这个好用。被网络上的其它信息给误导了
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏