首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle12c-逻辑上有一个重做组,但不是物理的--数据库不能打开

Oracle12c-逻辑上有一个重做组,但不是物理的--数据库不能打开
EN

Database Administration用户
提问于 2020-07-09 13:04:57
回答 2查看 954关注 0票数 1

我为我的企业经理提供了一个Oracle 12c数据库。

由于数据库已关闭,因此无法连接到企业经理。

我打开了听众。但是,数据库仍然是挂载模式。当我想在读和写模式下打开数据库时,我会得到如下错误:

代码语言:javascript
复制
SQL> alter database open;

第1行错误: ORA-00313:打开失败的日志组3的成员的线程1或00312:在线日志3线程1:'/path/ of /redo/redo03.log‘ORA-27037:无法获得文件状态Linux-x86_64错误: 2:没有这样的文件或目录附加信息:3

当我转到redo03的文件位置时,没有redo03。

所以这是合乎逻辑的,但不是物理上的。

有一些疑问和结果:

代码语言:javascript
复制
SQL> col member format a50
SQL> select group#, type, member from v$logfile;

    GROUP# TYPE    MEMBER
---------- ------- --------------------------------------------------
         3 ONLINE  /path/of/redo/redo03.log
         2 ONLINE  /path/of/redo/redo02.log
         1 ONLINE  /path/of/redo/redo01.log
         4 ONLINE  /path/of/redo/redo04.log

SQL> select group#, thread#, sequence#, bytes/1024/1024, members, status from v$log;

    GROUP#    THREAD#  SEQUENCE# BYTES/1024/1024    MEMBERS STATUS
---------- ---------- ---------- --------------- ---------- ----------------
         1          1      61525              50          1 INACTIVE
         4          1          0              50          1 UNUSED
         3          1      61527              50          1 CURRENT
         2          1      61526              50          1 INACTIVE

我试过这样做:创建重做组4,删除重做组3,重新创建重做组3。

创建redo组4没有问题。我使用了以下命令:

代码语言:javascript
复制
alter database add logfile thread 1 group 4 '/path/of/redo/redo04.log' size 50m;

但是,当我想删除第3组时,它会产生如下错误:

代码语言:javascript
复制
SQL> ALTER DATABASE DROP LOGFILE GROUP 3;
ALTER DATABASE DROP LOGFILE GROUP 3
*

第1行错误: ORA-01623: log 3是当前日志,例如dbname (线程1) -不能删除ORA-00312:联机日志3线程1:'/path/of/redo/redo03.log‘

我想尝试禁用redo组连接到的线程,然后要删除redo组3。但是它会出现以下错误:

代码语言:javascript
复制
SQL> select thread#, status, enabled from v$thread;

   THREAD# STATUS ENABLED
---------- ------ --------
         1 OPEN   PUBLIC


SQL> alter database disable thread 1;
alter database disable thread 1
*

第1行错误: ORA-01109:数据库未打开

当我试图切换日志文件时,它会出现如下错误:

代码语言:javascript
复制
SQL> alter system switch logfile;
alter system switch logfile
*

第1行错误: ORA-01109:数据库未打开

我试图清除并删除日志文件组。它给出了如下错误:

代码语言:javascript
复制
SQL> alter database clear unarchived logfile group 3;
alter database clear unarchived logfile group 3
*

第1行中的错误: ORA-01624:实例dbname (线程1) ORA-00312:联机日志3线程1:'/path/ of /redo/redo03.log‘的崩溃恢复所需的日志3

我试着恢复数据库,然后用下面的命令打开:

代码语言:javascript
复制
rman taget /

recover database;

使用频道ORA_DISK_1启动媒体恢复RMAN-08187:警告:媒体恢复直到SCN 完成在09-7月20日完成恢复

代码语言:javascript
复制
    exit;
    
    sqlplus / as sysdba
    
    SQL> alter database open resetlogs;
    alter database open resetlogs
    *

第1行中的错误: ORA-01194: file 1需要更多恢复以保持一致ORA-01110:数据文件1:'/path/of/ file /system01.dbf‘

代码语言:javascript
复制
exit;

rman target /

recover datafile 1;

使用目标数据库控制文件启动恢复,而不是恢复目录分配的通道:===========================================================通道ORA_DISK_1:启动媒体恢复媒体恢复的SID=设备type=DISK启动媒体恢复失败RMAN-00571:=============== RMAN-00569:===============错误消息堆栈遵循=============== RMAN-00571:=========================================================== RMAN-03002: ORA -00283中的恢复命令失败:由于RMAN-11003错误而取消的恢复会话:在解析/执行SQL语句期间失败:如果需要,则更改数据库恢复1 ORA-00283:由于出错而取消恢复会话-00313:为线程1或00312的日志组3成员打开失败:在线日志3线程1:'/path/ of / file /redo03.log‘ORA-27037:无法获得文件状态Linux-x86_64错误: 2:没有此类文件或目录附加信息:3

因此,在逻辑上有一个重做组3,但是没有物理文件。我确信没有人删除该文件,因为我使用linux系统上的历史命令检查了该文件。我无法打开数据库,因为重做组3找不到。我不能登录文件开关,我不能禁用标题,我不能删除重做组3并重新创建它。你能帮个忙吗?

诚挚的问候,

EN

回答 2

Database Administration用户

发布于 2020-07-09 13:29:54

..。有一个逻辑上的重做组3,但是没有物理文件。

不是个好地方。

我确信没有人删除该文件,因为我使用linux系统上的历史命令检查了该文件。

然而,这里有一个缺少的文件,Oracle以前已经将重做数据写入其中,实际上,为了将实例恢复作为启动的一部分,它要求返回。显然,你并不是唯一一个可以“访问”这个数据库的人。

尝试打开数据库并重置联机重做日志。

从骑行状态:

代码语言:javascript
复制
alter database open resetlogs ; 

Oracle应该为自己重新创建丢失的重做日志文件。

票数 1
EN

Database Administration用户

发布于 2020-07-09 15:23:13

我确信没有人删除该文件,因为我使用linux系统上的历史命令检查了该文件。

这并不能保证任何事情。

您丢失了当前日志文件组。您可以在这里找到恢复的步骤:

在丢失在线重做日志组的所有成员后恢复

具体而言,本部分:

Losing一个活动的在线重做日志组

请记住,这需要对数据库进行备份。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/270674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档