• 删除重做日志组和成员


    在某些情况下,您可能希望删除整组重做日志成员。例如,您希望减少实例重做日志中的组数。在不同的情况下,您可能希望删除一个或多个特定的重做日志成员。例如,如果发生磁盘故障,您可能需要删除故障磁盘上的所有重做日志文件,以便数据库不会尝试写入不可访问的文件。在其他情况下,特定的重做日志文件变得不必要。例如,文件可能存储在不适当的位置。

    删除日志组

    要删除重做日志组,您必须具有ALTER DATABASE系统特权。在删除重做日志组之前,请考虑以下限制和预防措施:

    • 无论组中的成员数是多少,实例都需要至少两组重做日志文件。 (一个小组由一个或多个成员组成。)
    • 只有在处于非活动状态时,才能删除重做日志组。如果必须删除当前组,则首先强制执行日志切换。
    • 在删除之前,请确保存档重做日志组(如果已启用存档)。要查看是否发生了这种情况,请使用V $ LOG视图。
      SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
      
         GROUP# ARC STATUS
      --------- --- ----------------
              1 YES ACTIVE
              2 NO  CURRENT
              3 YES INACTIVE
              4 YES INACTIVE

    使用带有DROP LOGFILE子句的SQL语句ALTER DATABASE删除重做日志组。

    以下语句删除重做日志组编号3:

    ALTER DATABASE DROP LOGFILE GROUP 3;

    从数据库中删除重做日志组,并且您没有使用Oracle托管文件功能时,不会从磁盘中删除操作系统文件。而是更新相关数据库的控制文件以从数据库结构中删除组的成员。删除重做日志组后,请确保已成功完成删除,然后使用相应的操作系统命令删除已删除的重做日志文件。

    使用Oracle Managed Files时,系统会自动为您清理操作系统文件

    删除重做日志成员

    要删除重做日志成员,您必须具有ALTER DATABASE系统特权。删除单个重做日志成员之前,请考虑以下限制和注意事项:

    • 允许删除重做日志文件,以便多路复用重做日志暂时不对称。例如,如果使用双工组重做日志文件,则可以删除一个组中的一个成员,即使所有其他组各有两个成员。但是,您应该立即纠正这种情况,以便所有组至少有两个成员,从而消除重做日志可能出现的单点故障。
    • 无论组中的成员数是多少,实例始终至少需要两个有效的重做日志文件组。 (一个组包含一个或多个成员。)如果要删除的成员是该组的最后一个有效成员,则在其他成员生效之前,您不能删除该成员。要查看重做日志文件状态,请使用V $ LOGFILE视图。如果数据库无法访问重做日志文件,则该日志文件将变为INVALID。如果数据库怀疑它不完整或正确,它将变为STALE。过时的日志文件在下次将其组成为活动组时再次生效。
    • 仅当重做日志成员不属于活动组或当前组时,才能删除该日志成员。要删除活动组的成员,请首先强制执行日志切换
    • 在删除成员之前,请确保归档重做日志成员所属的组(如果已启用归档)。要查看是否发生了这种情况,请使用V $ LOG视图。

    要删除特定的非活动重做日志成员,请使用带有DROP LOGFILE MEMBER子句的ALTER DATABASE语句。

    以下语句删除了重做日志/oracle/dbs/log3c.rdo:

    ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';

    从数据库中删除重做日志成员时,不会从磁盘中删除操作系统文件。而是更新关联数据库的控制文件以从数据库结构中删除该成员。删除重做日志文件后,请确保已成功完成删除,然后使用相应的操作系统命令删除已删除的重做日志文件。

    要删除活动组的成员,必须先强制​​执行日志切换。

    强制日志切换

    当LGWR停止写入一个重做日志组并开始写入另一个时,会发生日志切换。默认情况下,当前重做日志文件组填充时会自动进行日志切换。

     您可以强制日志切换使当前活动组处于非活动状态,并可用于重做日志维护操作。例如,您要删除当前活动的组,但在该组处于非活动状态之前无法执行此操作。如果必须在完全填充组成员之前的特定时间存档当前活动组,则可能还需要强制执行日志切换。此选项在具有大量重做日志文件的配置中非常有用,这些文件需要很长时间才能填充。

    要强制执行日志切换,您必须具有ALTER SYSTEM权限。将ALTER SYSTEM语句与SWITCH LOGFILE子句一起使用。

    以下语句强制执行日志切换:

    ALTER SYSTEM SWITCH LOGFILE;

    参考资料

    https://docs.oracle.com/cd/E11882_01/server.112/e25494/onlineredo.htm#ADMIN11322

  • 相关阅读:
    关于用网线连开发板和电脑网卡问题
    信号量同步编程
    信号量互斥编程
    信号通讯
    有名管道通讯
    dell 燃 7000 系列 7460/7560 禁用触控板 触摸板
    关于错误node_modules/@types/jasmine/index.d.ts(39,52): error TS1005: '=' expected.
    环境配置,nodejs,cnpm,git,webstorm,powershell,
    gitflow工作流
    <问题汇总>ionic2开发app
  • 原文地址:https://www.cnblogs.com/ZeroTiny/p/9267627.html
Copyright © 2020-2023  润新知