暂无图片
RMAN里为何要些alter system archive log current
我来答
分享
Thomas
2022-08-10
RMAN里为何要些alter system archive log current

如题,RMAN脚本里发现经常有这句。其作用是什么?另外,这句是放在什么位置,备份DB前,备份完成后,还是对ARCHIVELOG备份前?

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
布衣
暂无图片

被充一下:
image.png

暂无图片 评论
暂无图片 有用 1
暂无图片
严军
2022-08-11
专业
赵勇
2022-08-12
个人理解,switch logfile只是切换redo log,但并不是强制归档,或者说不是立即归档。而archive log current 是切换redo log并将未归档的所有redo log立即归档。
布衣
暂无图片
-- 对所有数据库实例进行归档切换 alter system archive log current;

rman 脚本里面增加这一句是为了就当前的redo日志进行归档,方便后续的归档备份。
我一般会备份前和备份后都做一次:
备份前做一次归档切换,然后进行数据库备份,
备份完后再做一次归档切换,把最后一归档也保留下来,这样万无一失。

希望对你有所帮助,如有帮助,请点击采纳

暂无图片 评论
暂无图片 有用 0
Edward
2023-04-06
我在执行日志备份的时候遇到了加上alter system archive log current; oracle提示log 4 sequence# 697 not archived, no available destinations,导致整个归档进程全部停止,数据库也停止运行了。这是什么原因导致的?
Edward
2023-04-06
官方对 对 archive log current 的解释是 Specify CURRENT to manually archive the current redo log file group of the specified thread, forcing a log switch. If you omit the THREAD parameter, then Oracle Database archives all redo log file groups from all enabled threads, including logs previous to current logs. You can specify CURRENT only when the database is open. 对 SWITCH LOGFILE的解释 The SWITCH LOGFILE clause lets you explicitly force Oracle Database to begin writing to a new redo log file group, regardless of whether the files in the current redo log file group are full. When you force a log switch, Oracle Database begins to perform a checkpoint but returns control to you immediately rather than when the checkpoint is complete. To use this clause, your instance must have the database open. 这样看,是否用SWITCH LOGFILE更安全一些,避免归档没有完成导致的卡死?
Thomas

如果RMAN里不写这句,会有什么隐患呢?能否举个例子。

暂无图片 评论
暂无图片 有用 0
布衣
2022-08-12
如果你能保留备份前后的归档,不会有其它问题。
Thomas

我感觉按ORACLE的机制来说,应该能保存啊。如果备份归档前不写这句,而备份归档的语句带all delete input, 那么假设备份那一刻有10个归档,1-10号,而备份期间产生了一个新归档11号,我理解是1-10号被备份并被删除,11号肯定没有被备份,但仍然保留在归档目录里。不是也正常么?如果备份后些这句,更感觉没啥意义啊,都备完了,要归档当前日志好像没意义吧。

暂无图片 评论
暂无图片 有用 0
布衣
暂无图片

image.png

其实这句就说的很明白了,加这个语句的目地就是为了保证备份的完整和一致性。

有的备份时间很长,例如1小时左右,备份后加这句是为了在备份过程中的数据变化也归档起来,和你的备份放在一个目录里面,这样才算一个完成的备份。

如果你不注意保留最后一份归档的话,只留意备份文件的话,等你恢复的时候就会报缺少归档文件,有的可以用不完全恢复,但也的就恢复不起来:https://www.modb.pro/doc/48691 (就这是一个惨痛的经历)
所以备份完后加上这句,然后再把最后一份归档+备份文件才是完成的备份。

备份前可以不加,但备份后个人觉得还是很有必要加上的。

以上代表个人见解,希望对你有所帮助。。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏