alter database open resetlogs或者 alter database open resetlogs upgrade报错:ORA-00392

在rman restore 还原数据文件和recover 恢复数据文件之后,此时数据库处于mounted状态,需要open并resetlogs 。

此时resetlogs相当于数据库根据控制文件的redo信息,创建新的redo文件。但是有时open resetlogs报错。

昨天在使用RMAN备份恢复测试数据库的时候,
不小心在rename logfile的时候把名字搞错了路径,
导致在resetlogs打开数据库的时候遇到以下错误 ORA-00392

解决步骤:

1:报错查看

2:查看当前日志组状态

3:clear 日志组

4:验证是否报错

5:日志组合日志文件之间的关系

6:日志管理(常用)

解决步骤:

 
  1.  

    报错查看

    SQL> alter database open resetlogs upgrade;

    alter database open resetlogs upgrade

    *

    ERROR at line 1:

    ORA-00392: log 3 of thread 1 is being cleared, operation not allowed

    ORA-00312: online log 3 thread 1: '/u01/oradata/orcl/redo03.log'

     
  2.  

    查看当前日志组状态

    SQL> select group#,bytes/1024/1024||'M',status from v$log;

    GROUP# BYTES/1024/1024||'M'                 STATUS

    ---------- ----------------------------------------- ----------------

    1 50M                                               CLEARING

    3 50M                                               CLEARING_CURRENT

    2 50M                                               CLEARING

     
  3.  

    clear 日志组

    SQL> alter database clear logfile group 1;

    Database altered.

    SQL> alter database clear logfile group 2;

    Database altered.

    SQL> alter database clear logfile group 3;

    Database altered.

    SQL> select group#,bytes/1024/1024||'M',status from v$log;

    GROUP# BYTES/1024/1024||'M'                 STATUS

    ---------- ----------------------------------------- ----------------

    1 50M                                               UNUSED

    3 50M                                               CURRENT

    2 50M                                               UNUSED

     
  4.  

    验证是否报错

    alter database open resetlogs upgrade;

    注意:

    执行这条sql的日志文件的物理变化,那就是执行之前目录中还没有日志文件,执行之后,日志文件自动创建

     
     
  5.  

    日志组合日志文件之间的关系 

    SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

    GROUP# STATUS  TYPE     MEMBER

    ------ ---------- ---------- ------------------------------

    1  ONLINE     /u01/oradata/orcl/redo01.log

    2  ONLINE     /u01/oradata/orcl/redo02.log

    3  ONLINE     /u01/oradata/orcl/redo03.log

    此时每个group组中都有一个member成员

    1:每个日志组至少有一个成员,成员之间的关系是镜像关系

    2:每个数据库中至少有两个组来回switch切换

     
  6.  

    日志管理(常用)

    1:切换日志:alter system switch logfile 

    2:添加一个日志组

    SQL> alter database add logfile group 4 '/u01/oradata/orcl/redo04.log' size 20m;

    SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

    GROUP# STATUS  TYPE     MEMBER

    ------ ---------- ---------- ------------------------------

    1  ONLINE     /u01/oradata/orcl/redo01.log

    2  ONLINE     /u01/oradata/orcl/redo02.log

    3  ONLINE     /u01/oradata/orcl/redo03.log

    4  ONLINE     /u01/oradata/orcl/redo04.log

      注意:如果没有制定组号,数据库会在创建时自动添加当前最大组号加1

    3:添加一个成员

    SQL>  alter database add logfile member '/u01/oradata/orcl/redo04a.log' to group 4;

    SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

    GROUP# STATUS  TYPE     MEMBER

    ------ ---------- ---------- ------------------------------

    1  ONLINE     /u01/oradata/orcl/redo01.log

    2  ONLINE     /u01/oradata/orcl/redo02.log

    3  ONLINE     /u01/oradata/orcl/redo03.log

    4  ONLINE     /u01/oradata/orcl/redo04.log

    4 INVALID  ONLINE     /u01/oradata/orcl/redo04a.log

    注意:

    1)添加成员不指定大小,镜像关系会自动设置相同大小

    2)添加之后处于invalid非正常状态,需要不停的切换日志才能变成正常状态

    4:删除一个成员

    SQL> alter database drop logfile member  '/u01/oradata/orcl/redo04.log';

    注意:

    1)CURRENT状态不能删除,先切换再删除  alter system switch logfile;

    2)ACTIVE有时候能删,有时候不能删,如果删除报错,只能等

    5:删除一个日志组

    SQL> alter database drop logfile group 3;

    注意:

    1)CURRENT状态不能删除,先切换再删除  alter system switch logfile;

    2)ACTIVE有时候能删,有时候不能删,如果删除报错,只能等

    6:清楚报废日志

    SQL> alter database clear logfile group 4;

    注意:

    如果redo04.log文件报废,而且处于非CURRENT状

ORA-00392: log 4 of thread 2 is being cleared, operation not allowed的更多相关文章

  1. 转 ORACLE数据库ORA-00392 log 4 of thread 1 is being cleared, operation not allowed错误

    现象: 数据库在做to-time recovery, 时候,restore and recover 都是正常的,但是最后一步open resetlogs 报错如下 ORA-00392 原因: 因为是在 ...

  2. Rman备份异机恢复

    最后更新时间:2018/12/29 前置条件 已准备一台安装好Centos6+oracle11gr2 软件的服务器; 只安装了 oracle 数据库软件,需要手工创建以下目录: #环境变量 expor ...

  3. 12c RAC 用Rman 恢复到异机单实例

    准备工作 原服务器软件部署:Redhat 6.6 + Oracle 12.2.0.1 rac Oracle12c单实例安装 1.创建恢复服务器,设置大于原库数据大小的磁盘容量.设置相同的服务器主机名参 ...

  4. oracle异机恢复 open resetlogs 报:ORA-00392

    参考文档:ALTER DATABASE OPEN RESETLOGS fails with ORA-00392 (Doc ID 1352133.1) 打开一个克隆数据库报以下错误: SQL> a ...

  5. NBU将RAC数据库恢复到单机

    恢复的过程和(https://www.cnblogs.com/abclife/p/5687993.html)差不多.但是,具体过程有些不同.如果按照之前的恢复方式,在run语句中同时运行restore ...

  6. Oracle RMAN 恢复数据库到不同主机(二)

    我们在recover database时报一个错误: RMAN-06054: media recovery requesting unknown archived log for thread 1 w ...

  7. resetlogs报错 ORA-00392

      alter database open resetlogs或者 alter database open resetlogs upgrade报错:ORA-00392     在rman restor ...

  8. RAC环境备份,RMAN异机在单实例环境恢复redo问题

    目的:客户环境11.2.0.4 ,多节点RAC环境,现在使用带库的备份,在单机环境测试备份有效性 1.normal参数文件 删除集群相关参数cluster 2.mount 使用备份的控制文件进行还原 ...

  9. Oracle--单实例数据库迁移到RAC集群服务器(RMAN)

    单实例数据库版本:11.2.0.1 RAC实例数据库版本:11.2.0.3 1,在单实例数据库备份文件 RMAN> show all; using target database control ...

随机推荐

  1. No bean named 'xxxxxxx' available--springboot 上线打war包

    springboot项目发布上线后,报错:No bean named 'xxxxxxx' available 因为我开发时pom用的jar,但上线发布war.解决方法: 1.pom.xml <p ...

  2. 随性练习:excel中文字和链接存到html文件

    这是一个简单的练习,主要是将excel中文字和链接存到html文件中,并且可通过点击文字直通链接 excel格式如下图示,我这里得excel是07版的,所以用到xlrd模块 代码: import xl ...

  3. PHP、thinkPHP5.0开发网站文件管理功能(二)删除文件

    1.is_dir():检查指定的文件是否是目录 2.scandir():返回指定目录中的文件和目录数组 3.unlink():删除文件,如果删除的文件不存在会报错,加@抑制报错 public func ...

  4. 转Linux 下用alias 设置命令别名快速切换常用命令

    https://blog.csdn.net/u012830148/article/details/80618616 在linux下开发,经常需要切换目录,如果目录很长则切换起来非常的麻烦,针对一些常用 ...

  5. javasript数据类型以及如何判断数据类型

    在javascript里面一共有5种基本的数据类型,分别是:Number,String,Boolean,Null,Undefined7种引用类型,分别是:Object类型,Array类型,Date类型 ...

  6. VS Ctrl + Shift + Q

    在VS中按 Ctrl + Shift + Q 可以快速查找 void OnCollisionStay  等方法. void OnCollisionStay(Collision collision) { ...

  7. mysql时间戳

    select unix_timestamp('2013-01-01 10:10:10'); , '%Y-%m-%d %H:%i:%S' ) date_format(date,'%Y-%m-%d') - ...

  8. DEDE模板中如何运行php脚本和php变量的使用

    在使用dede模板的时候,经常会需要直接对dede数据库的底层字段进行处理,如果dede中没有相应的函数的时候,往往就需要我们想办法来处理了. 举例:我想取出数据表addonimages中的某一条记录 ...

  9. C#取得程序的根目录以及判断文件是否存在

    一:获取根目录的方法 取得控制台应用程序的根目录方法方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径方法2.AppDomain.CurrentDo ...

  10. Windows 编程

    在WndProc函数中 最好不要出现WM_SYSCOMMAND消息, 如果有了这个消息, 可能我们对创建出来的窗口就什么都管不了了, 因为我们阻碍了DefWndProc函数去处理它 不在.rc文件中添 ...