oracle-redolog日常管理_gltyi99的博客-程序员秘密

技术标签: database  oracle  redolog  日志重建  管理  故障  

redolog是oracle中极其重要的组建,它的目的在于保证数据的安全。redolog的丢失可能导致数据库中数据的丢失。涉及redolog的故障恢复,应该是DBA应该掌握的。在生产库上,我们应该尽量将数据库运行在归档模式。

说明:我操作的数据库版本是11.2.0.3


一、online redolog日常管理

1、查询redolog信息

1、查询redolog信息
-->日志状态信息
[email protected]>select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         28        100          2 YES CLEARING_CURRENT       1961831 2014-03-31 03:05:38
         3          1         27        100          2 YES CLEARING               1841509 2014-03-27 15:49:34
         2          1         28        100          2 YES CLEARING               1961831 2014-03-31 03:05:38

-->日志文件信息
[email protected]>select a.group#,a.thread#,b.member,a.bytes/1024/1024 size_MB,a.members,a.archived,a.status from v$log a,v$logfile b where a.group#=b.group#;

    GROUP#    THREAD# MEMBER                                                SIZE_MB    MEMBERS ARC STATUS
---------- ---------- -------------------------------------------------- ---------- ---------- --- ----------------
         1          1 /u01/app/oracle/oradata/PROD/disk1/redo01.log             100          2 YES CLEARING_CURRENT
         1          1 /u01/app/oracle/oradata/PROD/disk1/redo04.log             100          2 YES CLEARING_CURRENT
         3          1 /u01/app/oracle/oradata/PROD/disk1/redo06.log             100          2 YES CLEARING
         2          1 /u01/app/oracle/oradata/PROD/disk1/redo05.log             100          2 YES CLEARING
         3          1 /u01/app/oracle/oradata/PROD/disk1/redo03.log             100          2 YES CLEARING
         2          1 /u01/app/oracle/oradata/PROD/disk1/redo02.log             100          2 YES CLEARING

6 rows selected.

-->列出日志切换的线程号和切换时间
col 00 for '999'
col 01 for '999'
col 02 for '999'
col 03 for '999'
col 04 for '999'
col 05 for '999'
col 06 for '999'
col 07 for '999'
col 08 for '999'
col 09 for '999'
col 10 for '999'
col 11 for '999'
col 12 for '999'
col 13 for '999'
col 14 for '999'
col 15 for '999'
col 16 for '999'
col 17 for '999'
col 18 for '999'
col 19 for '999'
col 20 for '999'
col 21 for '999'
col 22 for '999'
col 23 for '999'
SELECT   thread#, a.ttime, SUM (c8) "08", SUM (c9) "09", SUM (c10) "10",
         SUM (c11) "11", SUM (c12) "12", SUM (c13) "13", SUM (c14) "14",
         SUM (c15) "15", SUM (c16) "16", SUM (c17) "17", SUM (c18) "18",
         SUM (c0) "00", SUM (c1) "01", SUM (c2) "02", SUM (c3) "03",
         SUM (c4) "04", SUM (c5) "05", SUM (c6) "06", SUM (c7) "07",
         SUM (c19) "19", SUM (c20) "20", SUM (c21) "21", SUM (c22) "22",
         SUM (c23) "23"
    FROM (SELECT thread#, ttime, DECODE (tthour, '00', 1, 0) c0,
                 DECODE (tthour, '01', 1, 0) c1,
                 DECODE (tthour, '02', 1, 0) c2,
                 DECODE (tthour, '03', 1, 0) c3,
                 DECODE (tthour, '04', 1, 0) c4,
                 DECODE (tthour, '05', 1, 0) c5,
                 DECODE (tthour, '06', 1, 0) c6,
                 DECODE (tthour, '07', 1, 0) c7,
                 DECODE (tthour, '08', 1, 0) c8,
                 DECODE (tthour, '09', 1, 0) c9,
                 DECODE (tthour, '10', 1, 0) c10,
                 DECODE (tthour, '11', 1, 0) c11,
                 DECODE (tthour, '12', 1, 0) c12,
                 DECODE (tthour, '13', 1, 0) c13,
                 DECODE (tthour, '14', 1, 0) c14,
                 DECODE (tthour, '15', 1, 0) c15,
                 DECODE (tthour, '16', 1, 0) c16,
                 DECODE (tthour, '17', 1, 0) c17,
                 DECODE (tthour, '18', 1, 0) c18,
                 DECODE (tthour, '19', 1, 0) c19,
                 DECODE (tthour, '20', 1, 0) c20,
                 DECODE (tthour, '21', 1, 0) c21,
                 DECODE (tthour, '22', 1, 0) c22,
                 DECODE (tthour, '23', 1, 0) c23
            FROM (SELECT thread#, TO_CHAR (first_time, 'yyyy-mm-dd') ttime,
                         TO_CHAR (first_time, 'hh24') tthour
                    FROM v$log_history
                   WHERE (SYSDATE - first_time < 30))) a
GROUP BY thread#, ttime
order by ttime;

2、添加日志组

SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/redolog/redo04a.log','/u01/app/oracle/oradata/redolog/redo04b.log') size 20M;   

Database altered.

3、添加日志成员

SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/redolog/redo05a.log') size 20M;

Database altered.

-->给group 5添加一个日志成员
SQL> alter database add logfile member '/u01/app/oracle/oradata/redolog/redo05b.log' to group 5;    

Database altered.

SQL> select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/redolog/redo01a.log
         1 /u01/app/oracle/oradata/redolog/redo01b.log
         2 /u01/app/oracle/oradata/redolog/redo02a.log
         2 /u01/app/oracle/oradata/redolog/redo02b.log
         3 /u01/app/oracle/oradata/redolog/redo03a.log
         3 /u01/app/oracle/oradata/redolog/redo03b.log
         4 /u01/app/oracle/oradata/redolog/redo04a.log
         4 /u01/app/oracle/oradata/redolog/redo04b.log
         5 /u01/app/oracle/oradata/redolog/redo05a.log
         5 /u01/app/oracle/oradata/redolog/redo05b.log

10 rows selected.

4、删除日志组

-->检查日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         31        100          2 YES INACTIVE            4219305791 2013-12-23 00:12:35
         2          1         32        100          2 NO  CURRENT             4219324100 2013-12-25 16:29:10
         3          1         30        100          2 YES INACTIVE            4219267204 2013-12-22 03:00:58
         4          1          0         20          2 YES UNUSED                       0
         5          1          0         20          2 YES UNUSED                       0

-->当archvied状态为yes,status状态为inactive or unused状态时,可以删除该redolog group。
SQL> alter database drop logfile group 5;

Database altered.

二、redolog损坏的恢复
在做下面实验之前,请先对数据库进行一次全库备份。

RMAN> run{
2> backup database format '/s01/backup/database_full_%U';
3> backup format '/s01/backup/al_%s_%p_%t'  archivelog all delete input;
4> backup current controlfile format '/s01/backup/control_%s_%p_%t';
5> }

1、日志组一个成员损坏

-->检查redolog日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         39        100          2 YES INACTIVE            4219341679 2014-03-31 11:38:20
         2          1         40        100          2 NO  CURRENT             4219346542 2014-03-31 13:51:26
         3          1         38        100          2 YES INACTIVE            4219340026 2014-03-31 11:38:08
         4          1         37         20          2 YES INACTIVE            4219339805 2014-03-31 11:38:02
-->正常关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

-->删除日志组4的一个日志组成员
SQL> ! rm -f /u01/app/oracle/oradata/redolog/redo04b.log

-->启动数据库,数据库可以正常启动但是在alert log 日志中报错误。
Mon Mar 31 14:02:30 2014
ARC3 started with pid=23, OS id=5593 
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5503.trc:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/redolog/redo04b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5503.trc:
ORA-00321: log 4 of thread 1, cannot update log file header
ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/redolog/redo04b.log'
Mon Mar 31 14:02:31 2014
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_m000_5595.trc:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/redolog/redo04b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory

-->检查发现
SQL> select a.group#,a.thread#,b.member,a.bytes/1024/1024 size_MB,a.members,a.archived,a.status from v$log a,v$logfile b where a.group#=b.group#;

    GROUP#    THREAD# MEMBER                                                SIZE_MB    MEMBERS ARC STATUS
---------- ---------- -------------------------------------------------- ---------- ---------- --- ----------------
         1          1 /u01/app/oracle/oradata/redolog/redo01a.log               100          2 YES INACTIVE
         1          1 /u01/app/oracle/oradata/redolog/redo01b.log               100          2 YES INACTIVE
         2          1 /u01/app/oracle/oradata/redolog/redo02a.log               100          2 NO  CURRENT
         2          1 /u01/app/oracle/oradata/redolog/redo02b.log               100          2 NO  CURRENT
         3          1 /u01/app/oracle/oradata/redolog/redo03a.log               100          2 YES INACTIVE
         3          1 /u01/app/oracle/oradata/redolog/redo03b.log               100          2 YES INACTIVE
         4          1 /u01/app/oracle/oradata/redolog/redo04a.log                20          2 YES INACTIVE
         4          1 /u01/app/oracle/oradata/redolog/redo04b.log                20          2 YES INACTIVE

8 rows selected.

-->
SQL> ! ls /u01/app/oracle/oradata/redolog/
redo01a.log  redo01b.log  redo02a.log  redo02b.log  redo03a.log  redo03b.log  redo04a.log

-->
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  /u01/app/oracle/oradata/redolog/redo01a.log        NO
         1         ONLINE  /u01/app/oracle/oradata/redolog/redo01b.log        NO
         2         ONLINE  /u01/app/oracle/oradata/redolog/redo02a.log        NO
         2         ONLINE  /u01/app/oracle/oradata/redolog/redo02b.log        NO
         3         ONLINE  /u01/app/oracle/oradata/redolog/redo03a.log        NO
         3         ONLINE  /u01/app/oracle/oradata/redolog/redo03b.log        NO
         4         ONLINE  /u01/app/oracle/oradata/redolog/redo04a.log        NO
         4 INVALID ONLINE  /u01/app/oracle/oradata/redolog/redo04b.log        NO

8 rows selected.

-->
SQL> alter database add logfile member '/u01/app/oracle/oradata/redolog/redo04b.log' to group 4;
alter database add logfile member '/u01/app/oracle/oradata/redolog/redo04b.log' to group 4
*
ERROR at line 1:
ORA-01577: cannot add log file '/u01/app/oracle/oradata/redolog/redo04b.log' - file already part of database

-->遇到这种情况使用alter database clear方式重建group.
SQL> alter database clear logfile group 4;

Database altered.

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  /u01/app/oracle/oradata/redolog/redo01a.log        NO
         1         ONLINE  /u01/app/oracle/oradata/redolog/redo01b.log        NO
         2         ONLINE  /u01/app/oracle/oradata/redolog/redo02a.log        NO
         2         ONLINE  /u01/app/oracle/oradata/redolog/redo02b.log        NO
         3         ONLINE  /u01/app/oracle/oradata/redolog/redo03a.log        NO
         3         ONLINE  /u01/app/oracle/oradata/redolog/redo03b.log        NO
         4         ONLINE  /u01/app/oracle/oradata/redolog/redo04a.log        NO
         4         ONLINE  /u01/app/oracle/oradata/redolog/redo04b.log        NO

8 rows selected.

SQL> ! ls /u01/app/oracle/oradata/redolog/
redo01a.log  redo01b.log  redo02a.log  redo02b.log  redo03a.log  redo03b.log  redo04a.log  redo04b.log

2、非当前日志组损坏
这种情况也是比较好恢复的。与上面的实例相似。

-->检查日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         39        100          2 YES INACTIVE            4219341679 2014-03-31 11:38:20
         2          1         40        100          2 YES INACTIVE            4219346542 2014-03-31 13:51:26
         3          1         42        100          2 NO  CURRENT             4219347530 2014-03-31 14:19:17
         4          1         41         20          2 YES INACTIVE            4219347526 2014-03-31 14:19:12

-->关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

-->删除日志组2全部成员
SQL> ! rm -f /u01/app/oracle/oradata/redolog/redo02*

-->启动数据库
SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2235208 bytes
Variable Size             792724664 bytes
Database Buffers          268435456 bytes
Redo Buffers                5541888 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 5879
Session ID: 1 Serial number: 5

Mon Mar 31 14:22:00 2014
ARC1 started with pid=21, OS id=5883 
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5797.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_5797.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_ora_5879.trc:
ORA-00313: open failed for members of log group 1 of thread 
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02a.log'
ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/redolog/redo02b.log'
Mon Mar 31 14:22:00 2014
ARC2 started with pid=22, OS id=5885 
USER (ospid: 5879): terminating the instance due to error 313
System state dump requested by (instance=1, osid=5879), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/db/db/trace/db_diag_5787.trc
Dumping diagnostic data in directory=[cdmp_20140331142200], requested by (instance=1, osid=5879), summary=[abnormal instance termination].
Instance terminated by USER, pid = 5879

-->启动数据库到mount状态
SQL> startup mount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2235208 bytes
Variable Size             792724664 bytes
Database Buffers          268435456 bytes
Redo Buffers                5541888 bytes
Database mounted.

SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         39        100          2 YES INACTIVE            4219341679 2014-03-31 11:38:20
         4          1         41         20          2 YES INACTIVE            4219347526 2014-03-31 14:19:12
         3          1         42        100          2 NO  CURRENT             4219347530 2014-03-31 14:19:17
         2          1         40        100          2 YES INACTIVE            4219346542 2014-03-31 13:51:26

-->处理
SQL> alter database clear logfile group 2;

Database altered.

-->数据库可以正常打开。
SQL> alter database open;

Database altered.

3、当前日志组损坏
这种状态处理起来是比较麻烦的。需要做不完全恢复或者强制打开,这些都是有可能导致数据丢失的。因此我们要尽量避免这种情况的发生,对每组日志进行镜像就是一个不错的方法。

-->恢复方法:
1)如果有归档和备份,用不完全恢复。
SQL>startup mount;
SQL>recover database until cancel; 先选择auto尽可能多的利用归档日志进行恢复,然后再次执行
SQL>recover database until cancel; 这次输入cancel,完成不完全恢复
用resetlogs打开数据
SQL>alter database open resetlogs;
 
2)强制恢复, 这种方法可能会导致数据不一致
sql>startup mount;
sql>alter system set "_allow_resetlogs_corruption"=true scope=spfile;
sql>recover database until cancel;
sql>alter database open resetlogs;
-->使用该隐含参数将库来起来以后,需要将数据导出然后重新建库。

下面演示一下不完全恢复的方法

-->检查日志组状态
SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         39        100          2 YES INACTIVE            4219341679 2014-03-31 11:38:20
         2          1          0        100          2 YES UNUSED              4219346542 2014-03-31 13:51:26
         3          1         42        100          2 NO  CURRENT             4219347530 2014-03-31 14:19:17
         4          1         41         20          2 YES INACTIVE            4219347526 2014-03-31 14:19:12
-->关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

-->
SQL> ! rm -f /u01/app/oracle/oradata/redolog/redo03*

-->
SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2235208 bytes
Variable Size             792724664 bytes
Database Buffers          268435456 bytes
Redo Buffers                5541888 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 6353
Session ID: 1 Serial number: 5

Mon Mar 31 14:31:17 2014
ARC1 started with pid=21, OS id=6357 
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_6271.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_lgwr_6271.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/db/db/trace/db_ora_6353.trc:
ORA-00313: open failed for members of log group 1 of thread 
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'
Mon Mar 31 14:31:17 2014
ARC2 started with pid=22, OS id=6359 
USER (ospid: 6353): terminating the instance due to error 313
System state dump requested by (instance=1, osid=6353), summary=[abnormal instance termination].
System State dumped to trace file /u01/app/oracle/diag/rdbms/db/db/trace/db_diag_6261.trc
Dumping diagnostic data in directory=[cdmp_20140331143117], requested by (instance=1, osid=6353), summary=[abnormal instance termination].
Instance terminated by USER, pid = 6353

-->
SQL> startup mount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2235208 bytes
Variable Size             792724664 bytes
Database Buffers          268435456 bytes
Redo Buffers                5541888 bytes
Database mounted.


SQL> select group#,thread#,sequence#,bytes/1024/1024 size_MB,members,archived,status,first_change#,to_char(FIRST_TIME,'yyyy-mm-dd hh24:mi:ss') first_time from v$log;

    GROUP#    THREAD#  SEQUENCE#    SIZE_MB    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------------
         1          1         39        100          2 YES INACTIVE            4219341679 2014-03-31 11:38:20
         4          1         41         20          2 YES INACTIVE            4219347526 2014-03-31 14:19:12
         3          1         42        100          2 NO  CURRENT             4219347530 2014-03-31 14:19:17
         2          1          0        100          2 YES UNUSED              4219346542 2014-03-31 13:51:26


SQL> alter database clear logfile group 3;
alter database clear logfile group 3
*
ERROR at line 1:
ORA-00350: log 3 of instance db (thread 1) needs to be archived
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03a.log'
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/redolog/redo03b.log'

-->做不完全恢复
SQL> recover database until cancel;
Media recovery complete.

-->使用resetlogs方式打开数据库
SQL> alter database open resetlogs;

Database altered.

--END--



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gltyi99/article/details/22667303

智能推荐

android studio制作目录布局,Android Studio:新创建的目录未出现在文件夹Vi中_罗神抓妖记的博客-程序员秘密

9个解决方案136 votes事实证明,顶部有一个选择器,默认设置为显示Android。 如果您将切换按钮向下拨到“包”,您可以看到自己的包。Aggressor answered 2019-06-03T20:10:43Z25 votes在Android Studio中,您可以通过右键单击Android视图中的资源文件夹来添加新目录。 (不要对New Directory选项感到困惑。)例如,如果您需...

PMSM磁场定向控制程序笔记(二)——Clark,Park及反变换_circle_limitation_阿璃066的博客-程序员秘密

程序来源:FOC SDK2.0说明:在FOC SDK2.0的基础上稍稍修改,并做了一些注释,主要是为了记录总结收获。删掉或者注释了一些暂时用不到的功能。下面是MC_Clarke_Park.c文件部分程序:#ifdef MAX_MODULATION_100_PER_CENT //100%占空比#define START_INDEX 63const u16 circle_limit...

进程的创建和管理_chpdirector84的博客-程序员秘密

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 一:进程的创建 

解决 version `GLIBC_2.14‘ not found 错误_version not found_ayang1986的博客-程序员秘密

在glibc版本小于2.14的系统上,运行高版本gcc编译的程序是会出现以下错误:version `GLIBC_2.14' not found解决方案有以下几种:1. 静态编译 -static-libgcc -static-libstdc++ -nodefaultlibs -shared -fPIC2. 在源文件中添加以下代码,并重新编译 __asm__(".symver memcpy,[email protected]_2.2.5");3. 使用glibc版本小于2.14的系...

高并发系列:垂直性能优化之细说负载均衡_程序员大咖的博客-程序员秘密

????????关注后回复“进群”,拉你进程序员交流群????????作者丨Coder的技术之路来源丨Coder的技术之路高并发系列第一篇:垂直性能优化之细说负载高并发是业务发展到一定...

什么是泛型以及泛型的作用?_什么是泛型,泛型的作用是什么_mischen520的博客-程序员秘密

泛型是java 1.5之后推出来的新特性,他的出现是为解决对象向下转型所带来的一些安全隐患。其本质思想是:类的属性或者方法的参数都是可以由用户在使用的时候动态设置的,简单归纳来,泛型其实就是在定义类、接口、方法的时候不局限地指定某一种特定类型,而让类、接口、方法的调用者来决定具体使用哪一种类型的参数。...

随便推点

点云库PCL学习——滤波_图灵小眼睛的博客-程序员秘密

创建滤波时头文件:#include &lt;pcl/common/common_headers.h&gt;#include &lt;iostream&gt;#include &lt;pcl/io/pcd_io.h&gt;#include &lt;pcl/point_types.h&gt;#include &lt;pcl/io/io.h&gt;#include &lt;pcl/visua...

给windows装个Mac黑苹果虚拟机_多姿多彩的博客-程序员秘密

点击上方↑↑↑蓝字[协议分析与还原]关注我们“windows下安装使用苹果Mac虚拟机。”平常的生活工作中,我大部分时候使用Windows,偶尔用用Mac。实在是用不惯Mac,但有的时候...

JAVA List自定义排序 多字段排序_java list 多字段排序_ZoeySir的博客-程序员秘密

简单的排序一般用一个sorted就行list.stream().sorted(Comparator.comparing(TestSort::getState)).collect(Collectors.toList());再稍微多一个字段,根据需求说不定加一个.thenComparing(TestSort::getCode).reversed()也能达到//reversed()倒序排列,默认都是从小到大排序,加上reversed实现倒序list = list.stream().sorte.

智能家居 WiFi&BLE 双模模组WIFIMCU BL602开发板支持DoHome天猫精灵小爱小度Google 二次开发_lsalp的博客-程序员秘密

说明书地址:https://github.com/SmartArduino/Doiting_BL DT-BL10 Wi-Fi和BLE共存模块是高度集成的单芯片低功耗802.11n无线局域网(WLAN)网络控制器。它在单个芯片中集成了RISC CPU,WLAN MAC,支持lT1R的WLAN基带,RF和蓝牙。它还提供了一堆可配置的GPIO,这些GPIO被配置为数字外设,用于不同的应用和控制用途。 DT-BL10 WiFi模块使用BL602作为Wi-Fi和BLE共存SOC芯片。DT-BL10 WiFi模块集

android开发之系统服务(检测网络是否通畅与开关WiFi)_蠢咩的博客-程序员秘密

系统服务对应的权限记得在清单文件注册 //检测网络开关状态 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> //检测WiFi开关状态 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE

社交网络用户需注意个人信息安全_weixin_33829657的博客-程序员秘密

社交网络给用户带来很多改变。使用社交网络,用户可以与认识或者不认识的人进行沟通,分享知识,分享心情等。不仅如此,社交网络还可以通过人际的沟通,进行商务的活动,或者招聘或者找工作,还可以进行电子商务等。随着越来越多的人使用社交网络,社交网络已经成为一个线上虚拟社会,这里的人五花八门,于是,人们开始对个人在社交网络的信息开始关注,担心个人隐私外泄或者个人信息被人利用。回想一下你是怎么加入某一个社交...

推荐文章

热门文章

相关标签