【问题标题】:Oracle database redo log switchOracle 数据库重做日志切换
【发布时间】:2013-09-17 12:34:12
【问题描述】:

我想重新创建 Oracle 数据库的重做日志,但我似乎走到了死胡同。

当我打电话时

SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;

我得到以下内容

 GROUP# ARC STATUS
---------- --- ----------------
     1 NO  CURRENT
     4 YES UNUSED
     3 YES UNUSED
     2 YES UNUSED

问题是,我必须删除 1 号重做日志,但不能因为 #1 是当前重做日志。如何在日志之间切换?

我也尝试过 ALTER SYSTEM SWITCH LOGFILE; ,但我收到一条错误消息,提示数据库未打开。 ORA-01109数据库只挂载(不是读写模式),由于重做日志损坏,我无法打开它。此外,甚至使用了从另一个数据库挂载数据库 redolog1。 #2、#3 和 #4 已成功重新创建,因为它们不是最新的。

有人知道吗? 非常感谢任何帮助。

提前致谢!

【问题讨论】:

    标签: oracle logging


    【解决方案1】:

    此错误(ORA-01109) 表明您正在尝试对已关闭的数据库执行操作。因此,您的数据库实例可能已仅使用选项mount 启动,从而使数据库处于关闭状态。您只需要打开数据库并重试alter system 命令:

    SQL> alter system switch logfile;
    alter system switch logfile
    *
    ERROR at line 1:
    ORA-01109: database not open 
    
    
    SQL> alter database open;
    
    Database altered.
    
    SQL> alter system switch logfile;
    
    System altered.
    

    编辑

    如果您收到此错误

    SQL> 改变数据库打开; alter database open * 第 1 行出现错误:
    ORA-00305: 线程 1 的日志 1 不一致;属于另一个数据库
    ORA-00312:在线日志 1 线程 1:'/oradata/DB/PRBT/redo1B.log'
    ORA-00305: 线程 1 的日志 1 不一致;属于另一个数据库
    ORA-00312:在线日志 1 线程 1:'/oradata/DB/PRBT/redo1A.log'

    在尝试打开数据库时,很可能是日志文件中的数据库 ID 和 控制文件中的数据库 ID 不匹配。简而言之,来自不同数据库的日志文件。要使您的数据库生效,您可以尝试以下操作;

    1. 装载您的数据库
    2. 恢复数据库直到取消
    3. 然后使用 resetlogs 选项打开数据库

    例子:

    SQL> startup mount;
    ORACLE instance started.
    Database mounted.
    
    SQL> recover database until cancel;
    Media recovery complete.
    
    SQL> alter database open resetlogs;
    
    Database altered.
    

    【讨论】:

    • 这是一个同事使用的数据库。显然重做日志已损坏或其他原因,数据库无法打开,它只会挂载。如果他手动删除 redo1A.log 和 redo1B.log 文件,数据库甚至不会挂载,因为它需要这些日志。这就是为什么我需要一个替代方案。
    • 这是我得到的:SQL> 改变数据库打开; alter database open * 第 1 行出现错误:ORA-00305:线程 1 的日志 1 不一致;属于另一个数据库 ORA-00312: online log 1 thread 1: '/oradata/DB/PRBT/redo1B.log' ORA-00305: log 1 of thread 1 不一致;属于另一个数据库 ORA-00312: online log 1 thread 1: '/oradata/DB/PRBT/redo1A.log'
    • @robertpas 请通过添加所有相关信息来编辑您的问题。从一开始就开始。如果您无法打开数据库,那就另当别论了。
    • 这是我得到的:SQL> 恢复数据库直到取消; ORA-00279:更改 1114876731 在 2013 年 8 月 29 日 10:42:12 生成,线程 1 需要 ORA-00289:建议:/oraarch/PRBT/PRBT_T0001S0000001745R0728067245.ARC ORA-00280:线程 1 的更改 1114876731 按顺序进行指定日志:{=suggested |文件名 |自动 | CANCEL} /oraarch/PRBT/PRBT_T0001S0000001745R0728067245.ARC ORA-00308:无法打开归档日志 ORA-27037:无法获取文件状态 SVR4 错误:2:没有这样的文件或目录附加信息:3
    • @robertpas 检查归档日志文件是否存在。尝试将存档日志应用到您丢失/更改在线重做日志文件的时间。
    猜你喜欢
    • 2010-09-09
    • 1970-01-01
    • 2017-10-02
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2017-04-20
    • 2010-11-01
    相关资源
    最近更新 更多