删除存档的正确方法 - Oracle

tes*_*747 7 oracle rman

因此,我有一个在 RHEL 中运行的 Oracle 数据库(独立),并且我已安排 RMAN 每天和每周进行备份。有时我的文件系统(归档挂载点)因为归档生成过多而变满。现在从文件系统中删除档案的正确方法是什么?

我的 RMAN 脚本有这个

delete archivelog all completed before 'SYSDATE-5'

但是上面的命令并没有像我看到的那样正确删除档案,一些非常旧的档案仍然存在..

如何正确删除它们?

我应该运行 crosscheck archivelog 吗?然后再次运行上面的命令?什么是正确的方法?

谢谢!

Pet*_*sov 7

为了删除它们,您可以这样做:RMAN>crosscheck archivelog all; RMAN>delete noprompt expired archivelog all;,您也可以在delete input备份它们时包含该子句,它们将在备份后被删除(由您决定)。您可以尝试运行您手动显示的命令以查看 RMAN 中会发生什么(换句话说,它是否有效或是否给出错误)。

  • 您是否事先备份了这些归档日志?如果不是这可能是原因,oracle 将不允许您删除此类未备份的存档日志,因此您必须使用 FORCE 开关 `DELETE force archivelog ALL 在 'SYSDATE-5' 之前完成`。但请记住,如果没有这些存档日志,您将无法恢复数据库。此外,如果您从 FS 或 ASM 中手动删除了存档日志,您将需要交叉检查它们并删除它们,正如我上面指出的那样过期。 (2认同)

Kri*_*ton 5

如果 RMAN 不知道磁盘上的存档(是从其他位置复制的),那么您可以通过 catalog 命令告诉 RMAN 有关存档文件的信息:

RMAN> CATALOG START WITH '/disk2/archlog' NOPROMPT;
Run Code Online (Sandbox Code Playgroud)

然后运行您的归档日志备份:

RMAN> backup check logical as compressed backupset (archivelog all delete all input);
Run Code Online (Sandbox Code Playgroud)