En el entorno de archivo de datos con estado de recuperación en Oracle, realice una recuperación de máquina diferente

fondo:

En algunos casos de prueba de recuperación, a menudo nos encontramos con algunos problemas extraños, algunos de los cuales son causados ​​por archivos de datos de origen no estándar, lo que genera errores en el proceso de recuperación. Los errores más comunes son:

  1. Los nombres de los archivos de datos se repiten (como /oradata1/user01.dbf y /oradata2/user01.dbf).En este caso, cuando estamos haciendo la prueba de recuperación, si restauramos los archivos de datos en el mismo disco, un Se informará de un error y necesitamos cambiar el nombre del archivo de datos con el mismo nombre.
  2. El estado del archivo de datos es recuperar, no en línea. Por lo general, cuando el cliente usa el entorno RAC para agregar un archivo de datos, el archivo de datos se agrega por error al disco local y, después de encontrar el error, se realiza la operación del archivo de datos fuera de línea. .

En este artículo, la prueba principal es que en la base de datos, los archivos de datos que contienen el estado de recuperación, ¿cómo hacer la prueba de recuperación rman?

1. Cree un espacio de tabla de prueba

SQL> CREATE TABLESPACE test DATAFILE  '/u01/app/oracle/oradata/TEST/test01.dbf' size 10M autoextend on EXTENT MANAGEMENT LOCAL;

Tablespace created.

SQL> alter tablespace test add datafile  '/u01/app/oracle/oradata/TEST/test02.dbf' size 10M;

Tablespace altered.

2. Cree una tabla en el tablespace de prueba

SQL> create table scott.test1 tablespace test as select * from dba_objects;

Table created.

SQL> select count(*) from scott.test1 ;

  COUNT(*)
----------
     78918

3. Simular archivo de datos fuera de línea

3.1 Ejecutar archivo de datos fuera de línea

SQL> set line222
SQL> col name for a80
SQL> select file#,name,status  from v$datafile;

     FILE# NAME                                                                             STATUS
---------- -------------------------------------------------------------------------------- --------------
         1 /u01/app/oracle/oradata/TEST/system01.dbf                                        SYSTEM
         2 /u01/app/oracle/oradata/TEST/sysaux01.dbf                                        ONLINE
         3 /u01/app/oracle/oradata/TEST/undotbs01.dbf                                       ONLINE
         4 /u01/app/oracle/oradata/TEST/users01.dbf                                         ONLINE
         5 /u01/app/oracle/oradata/TEST/example01.dbf                                       ONLINE
         6 /u01/app/oracle/oradata/TEST/test01.dbf                                          ONLINE
         7 /u01/app/oracle/oradata/TEST/test02.dbf                                          ONLINE


SQL> alter database datafile 7 offline;

Database altered.

SQL> select file#,name,status  from v$datafile;

     FILE# NAME                                                                             STATUS
---------- -------------------------------------------------------------------------------- --------------
         1 /u01/app/oracle/oradata/TEST/system01.dbf                                        SYSTEM
         2 /u01/app/oracle/oradata/TEST/sysaux01.dbf                                        ONLINE
         3 /u01/app/oracle/oradata/TEST/undotbs01.dbf                                       ONLINE
         4 /u01/app/oracle/oradata/TEST/users01.dbf                                         ONLINE
         5 /u01/app/oracle/oradata/TEST/example01.dbf                                       ONLINE
         6 /u01/app/oracle/oradata/TEST/test01.dbf                                          ONLINE
         7 /u01/app/oracle/oradata/TEST/test02.dbf                                          RECOVER

7 rows selected.

En este punto, podemos ver que el estado del archivo de datos 7 ha cambiado para recuperarse.

3.2 Consultar de nuevo y reportar un error

SQL> select count(*) from scott.test1 ;
select count(*) from scott.test1
                         *
ERROR at line 1:
ORA-00376: file 7 cannot be read at this time
ORA-01110: data file 7: '/u01/app/oracle/oradata/TEST/test02.dbf'

3.3 Continuar para crear la tabla de prueba

SQL> create table scott.test2 tablespace test as select * from dba_objects;

Table created.


SQL> select count(*) from scott.test2 ;

  COUNT(*)
----------
     78919

3.4 Eliminar manualmente los registros archivados

SQL> alter system switch logfile ;

System altered.

SQL> /

System altered.

SQL> alter system checkpoint;

System altered.

-- 手动删除归档日志
[oracle@ora11204 ~]$ rm -rf 1_*

3.5 Continuar insertando datos y cambiando registros

SQL> insert into  scott.test2  select * from dba_objects;

78919 rows created.

SQL> select count(*) from scott.test2 ;

  COUNT(*)
----------
    157838

SQL> alter system switch logfile ;

System altered.

SQL> /

System altered.

SQL> alter system checkpoint;

System altered.

Conclusión: aunque el estado del archivo de datos 7 ha cambiado para recuperarse, solo la tabla original test1 se ve afectada, mientras que la nueva tabla test2 no se ve afectada y se puede seguir escribiendo. De hecho, es decir, si el archivo de datos fuera de línea no contiene objetos, no tendrá ningún efecto sobre el uso de los datos.

3.6 intenta recuperar el archivo de datos 7

SQL> recover datafile 7;
ORA-00279: change 4592370 generated at 07/09/2022 12:38:37 needed for thread 1
ORA-00289: suggestion : /home/oracle/1_37_1104664055.dbf
ORA-00280: change 4592370 for thread 1 is in sequence #37

Specify log: {
   
   <RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00308: cannot open archived log '/home/oracle/1_37_1104664055.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

ORA-00308: cannot open archived log '/home/oracle/1_37_1104664055.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

Conclusión: en este momento, si queremos recuperar el archivo de datos 7 y restaurar el estado en línea normal, ya no es posible porque los registros archivados se han eliminado manualmente.

Entonces, el enfoque correcto debería ser: después de ejecutar manualmente el archivo de datos fuera de línea en 3.1, recupere inmediatamente el archivo de datos, de modo que no importa cuándo, el archivo de datos en línea se pueda usar incluso si se eliminó el registro archivado.

En este punto, nuestra base de datos contiene un archivo de datos de estado de recuperación, así que veamos cómo hacer una copia de seguridad y restaurar.

4. Simule la recuperación de la copia de seguridad

4.1 copia de seguridad de rman

-- 备份前,先删掉expired archivelog
[oracle@ora11204 backup]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Sat Jul 9 12:47:26 2022

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: LHR11G (DBID=2007947551)

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;
Do you really want to delete the above objects (enter YES or NO)? yes
deleted archived log
archived log file name=/home/oracle/1_18_1104664055.dbf RECID=30 STAMP=1107010872
deleted archived log
archived log file name=/home/oracle/1_19_1104664055.dbf RECID=31 STAMP=1107084082
deleted archived log
archived log file name=/home/oracle/1_20_1104664055.dbf RECID=32 STAMP=1107084317
deleted archived log
archived log file name=/home/oracle/1_21_1104664055.dbf RECID=33 STAMP=1107248395
deleted archived log
archived log file name=/home/oracle/1_23_1104664055.dbf RECID=35 STAMP=1107248458
deleted archived log
archived log file name=/home/oracle/1_24_1104664055.dbf RECID=36 STAMP=1107248477
deleted archived log
archived log file name=/home/oracle/1_25_1104664055.dbf RECID=37 STAMP=1107248494
deleted archived log
archived log file name=/home/oracle/1_26_1104664055.dbf RECID=38 STAMP=1107248708
deleted archived log
archived log file name=/home/oracle/1_27_1104664055.dbf RECID=39 STAMP=1107249210
deleted archived log
archived log file name=/home/oracle/1_28_1104664055.dbf RECID=40 STAMP=1107249384
deleted archived log
archived log file name=/home/oracle/1_29_1104664055.dbf RECID=41 STAMP=1107594979
deleted archived log
archived log file name=/home/oracle/1_30_1104664055.dbf RECID=42 STAMP=1107965313
deleted archived log
archived log file name=/home/oracle/1_31_1104664055.dbf RECID=43 STAMP=1109430200
deleted archived log
archived log file name=/home/oracle/1_32_1104664055.dbf RECID=44 STAMP=1109400986
deleted archived log
archived log file name=/home/oracle/1_33_1104664055.dbf RECID=45 STAMP=1109514747
deleted archived log
archived log file name=/home/oracle/1_34_1104664055.dbf RECID=46 STAMP=1109515327
deleted archived log
archived log file name=/home/oracle/1_35_1104664055.dbf RECID=47 STAMP=1109593810
deleted archived log
archived log file name=/home/oracle/1_36_1104664055.dbf RECID=48 STAMP=1109593862
deleted archived log
archived log file name=/home/oracle/1_37_1104664055.dbf RECID=49 STAMP=1109594665
deleted archived log
archived log file name=/home/oracle/1_38_1104664055.dbf RECID=50 STAMP=1109594666
Deleted 20 EXPIRED objects

-- 正式备份
RMAN> run{ 
2> allocate channel c1 device type disk;
3> backup database filesperset 3 format '/home/oracle/backup/db_%d_%T_%U'; 
4> backup archivelog all format '/home/oracle/backup/arc_%t_%s';  
5> backup current controlfile format '/home/oracle/backup/cntrl_%s_%p_%s'; 
6> release channel c1; 
7> } 

released channel: ORA_DISK_1
allocated channel: c1
channel c1: SID=33 device type=DISK

Starting backup at 2022-07-09 12:48:34
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/TEST/system01.dbf
channel c1: starting piece 1 at 2022-07-09 12:48:34
channel c1: finished piece 1 at 2022-07-09 12:48:41
piece handle=/home/oracle/backup/db_LHR11G_20220709_4k1264p2_1_1 tag=TAG20220709T124834 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:07
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00003 name=/u01/app/oracle/oradata/TEST/undotbs01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/TEST/example01.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/TEST/test02.dbf
channel c1: starting piece 1 at 2022-07-09 12:48:41
channel c1: finished piece 1 at 2022-07-09 12:48:44
piece handle=/home/oracle/backup/db_LHR11G_20220709_4l1264p9_1_1 tag=TAG20220709T124834 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:03
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00002 name=/u01/app/oracle/oradata/TEST/sysaux01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/TEST/users01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/TEST/test01.dbf
channel c1: starting piece 1 at 2022-07-09 12:48:44
channel c1: finished piece 1 at 2022-07-09 12:48:47
piece handle=/home/oracle/backup/db_LHR11G_20220709_4m1264pc_1_1 tag=TAG20220709T124834 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:03
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel c1: starting piece 1 at 2022-07-09 12:48:48
channel c1: finished piece 1 at 2022-07-09 12:48:49
piece handle=/home/oracle/backup/db_LHR11G_20220709_4n1264pf_1_1 tag=TAG20220709T124834 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 2022-07-09 12:48:49

Starting backup at 2022-07-09 12:48:50
current log archived
channel c1: starting archived log backup set
channel c1: specifying archived log(s) in backup set
input archived log thread=1 sequence=39 RECID=51 STAMP=1109594808
input archived log thread=1 sequence=40 RECID=52 STAMP=1109594809
input archived log thread=1 sequence=41 RECID=53 STAMP=1109594930
channel c1: starting piece 1 at 2022-07-09 12:48:50
channel c1: finished piece 1 at 2022-07-09 12:48:51
piece handle=/home/oracle/backup/arc_1109594930_152 tag=TAG20220709T124850 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 2022-07-09 12:48:51

Starting backup at 2022-07-09 12:48:51
channel c1: starting full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
channel c1: starting piece 1 at 2022-07-09 12:48:52
channel c1: finished piece 1 at 2022-07-09 12:48:53
piece handle=/home/oracle/backup/cntrl_153_1_153 tag=TAG20220709T124851 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 2022-07-09 12:48:53

released channel: c1

4.2 Restauración de la base de datos

Use la copia de seguridad para realizar diferentes recuperaciones de la máquina (se omite el proceso de copia de copia de seguridad, pfile, archivo de contraseña, etc.)

4.2.1 Iniciar la base de datos en estado nomount

SQL> startup nomount
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2260088 bytes
Variable Size             331350920 bytes
Database Buffers          729808896 bytes
Redo Buffers                5517312 bytes

4.2.2 Restauración de archivos de control

[oracle@ora11204 backup]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Sat Jul 9 12:51:00 2022

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: LHR11G (not mounted)

RMAN> restore controlfile from '/home/oracle/backup/cntrl_153_1_153';

Starting restore at 2022-07-09 12:51:01
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/TEST/control01.ctl
Finished restore at 2022-07-09 12:51:03

4.2.3 base de datos de montaje

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

4.2.4 restaurar base de datos

RMAN> restore database;

Starting restore at 2022-07-09 12:51:23
Starting implicit crosscheck backup at 2022-07-09 12:51:23
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
Crosschecked 22 objects
Finished implicit crosscheck backup at 2022-07-09 12:51:24

Starting implicit crosscheck copy at 2022-07-09 12:51:24
using channel ORA_DISK_1
Finished implicit crosscheck copy at 2022-07-09 12:51:24

searching for all files in the recovery area
cataloging files...
no files cataloged

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/TEST/system01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/db_LHR11G_20220709_4k1264p2_1_1
channel ORA_DISK_1: piece handle=/home/oracle/backup/db_LHR11G_20220709_4k1264p2_1_1 tag=TAG20220709T124834
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/TEST/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/TEST/example01.dbf
channel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/TEST/test02.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/db_LHR11G_20220709_4l1264p9_1_1
channel ORA_DISK_1: piece handle=/home/oracle/backup/db_LHR11G_20220709_4l1264p9_1_1 tag=TAG20220709T124834
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/TEST/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/TEST/users01.dbf
channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/TEST/test01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/db_LHR11G_20220709_4m1264pc_1_1
channel ORA_DISK_1: piece handle=/home/oracle/backup/db_LHR11G_20220709_4m1264pc_1_1 tag=TAG20220709T124834
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 2022-07-09 12:51:33

4.2.5 Ejecutar base de datos de recuperación en RMAN

RMAN> recover database;

Starting recover at 2022-07-09 12:51:49
using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 39 is already on disk as file /home/oracle/1_39_1104664055.dbf
archived log for thread 1 with sequence 40 is already on disk as file /home/oracle/1_40_1104664055.dbf
archived log for thread 1 with sequence 41 is already on disk as file /home/oracle/1_41_1104664055.dbf
Oracle Error: 
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01152: file 1 was not restored from a sufficiently old backup 
ORA-01110: data file 1: '/u01/app/oracle/oradata/TEST/system01.dbf'

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/09/2022 12:51:49
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 1 with sequence 38 and starting SCN of 4593111 found to restore
RMAN-06025: no backup of archived log for thread 1 with sequence 37 and starting SCN of 4591558 found to restore

Conclusión: usamos directamente el método tradicional para ejecutar la base de datos de recuperación en rman, y se informará un error. Necesita 37 y 38 registros de archivo que se han eliminado, y la recuperación no se puede completar.

4.2.6 Ejecutar recuperación de base de datos en SQLPLUS

-- 先恢复归档全备中的归档日志
RMAN> restore archivelog from logseq 39 thread 1;

Starting restore at 2022-07-09 13:02:02
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK

channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=39
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=40
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=41
channel ORA_DISK_1: reading from backup piece /home/oracle/backup/arc_1109594930_152
channel ORA_DISK_1: piece handle=/home/oracle/backup/arc_1109594930_152 tag=TAG20220709T124850
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 2022-07-09 13:02:03

-- 执行 recover database操作
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 4592370 generated at 07/09/2022 12:38:37 needed for thread 1
ORA-00289: suggestion : /home/oracle/1_37_1104664055.dbf
ORA-00280: change 4592370 for thread 1 is in sequence #37

Conclusión: cuando ejecutamos la base de datos de recuperación en sqlplus, también se informará un error. Necesita 37 y 38 registros de archivo que se han eliminado, y la recuperación no se puede completar.

4.3 Soluciones

4.3.1 Estado del archivo de datos de consulta

SQL> set line222
SQL> col name for a60
SQL> SELECT a.FILE#,a.NAME,a.RECOVER,a.CHECKPOINT_CHANGE#,status  FROM v$datafile_header a;

     FILE# NAME                                                      RECOVE CHECKPOINT_CHANGE# STATUS
---------- --------------------------------------------------------- ------ ------------------ -------------
         1 /u01/app/oracle/oradata/TEST/system01.dbf                                   4593921 ONLINE
         2 /u01/app/oracle/oradata/TEST/sysaux01.dbf                                   4593926 ONLINE
         3 /u01/app/oracle/oradata/TEST/undotbs01.dbf                                  4593924 ONLINE
         4 /u01/app/oracle/oradata/TEST/users01.dbf                                    4593926 ONLINE
         5 /u01/app/oracle/oradata/TEST/example01.dbf                                  4593924 ONLINE
         6 /u01/app/oracle/oradata/TEST/test01.dbf                                     4593926 ONLINE
         7 /u01/app/oracle/oradata/TEST/test02.dbf                                     4592370 ONLINE

7 rows selected.

SQL> select file#,name,status  from v$datafile;

     FILE# NAME                                                      STATUS
---------- --------------------------------------------------------- --------------
         1 /u01/app/oracle/oradata/TEST/system01.dbf                 SYSTEM
         2 /u01/app/oracle/oradata/TEST/sysaux01.dbf                 ONLINE
         3 /u01/app/oracle/oradata/TEST/undotbs01.dbf                ONLINE
         4 /u01/app/oracle/oradata/TEST/users01.dbf                  ONLINE
         5 /u01/app/oracle/oradata/TEST/example01.dbf                ONLINE
         6 /u01/app/oracle/oradata/TEST/test01.dbf                   ONLINE
         7 /u01/app/oracle/oradata/TEST/test02.dbf                   RECOVER

7 rows selected.

Podemos ver que en la vista v datafileheader, el estado del archivo de datos 7 aún está en línea, en la vista v datafile_header, el estado del archivo de datos 7 aún está en línea, en varchivo de datos _ _ _ _ _hEn opinión de ea der , el estado del archivo de datos 7 todavía está en línea , _ _ _El estado es recuperar en v archivo de datos .

4.3.2 Ejecutar operación de archivo de datos fuera de línea

SQL> alter database datafile 7 offline drop;

Database altered.

SQL> set line222
SQL> col name for a60
SQL> SELECT a.FILE#,a.NAME,a.RECOVER,a.CHECKPOINT_CHANGE#,status  FROM v$datafile_header a;

     FILE# NAME                                                 RECOVE CHECKPOINT_CHANGE# STATUS
---------- ---------------------------------------------------- ------ ------------------ --------------
         1 /u01/app/oracle/oradata/TEST/system01.dbf                              4593921 ONLINE
         2 /u01/app/oracle/oradata/TEST/sysaux01.dbf                              4593926 ONLINE
         3 /u01/app/oracle/oradata/TEST/undotbs01.dbf                             4593924 ONLINE
         4 /u01/app/oracle/oradata/TEST/users01.dbf                               4593926 ONLINE
         5 /u01/app/oracle/oradata/TEST/example01.dbf                             4593924 ONLINE
         6 /u01/app/oracle/oradata/TEST/test01.dbf                                4593926 ONLINE
         7 /u01/app/oracle/oradata/TEST/test02.dbf                                4592370 OFFLINE
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 4593921 generated at 07/09/2022 12:48:34 needed for thread 1
ORA-00289: suggestion : /home/oracle/1_41_1104664055.dbf
ORA-00280: change 4593921 for thread 1 is in sequence #41


Specify log: {
   
   <RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: change 4593946 generated at 07/09/2022 12:48:50 needed for thread 1
ORA-00289: suggestion : /home/oracle/1_42_1104664055.dbf
ORA-00280: change 4593946 for thread 1 is in sequence #42
ORA-00278: log file '/home/oracle/1_41_1104664055.dbf' no longer needed for
this recovery


ORA-00308: cannot open archived log '/home/oracle/1_42_1104664055.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

Conclusión: la recuperación ya no necesita los registros de archivo 37 y 38 que se han eliminado, y la operación de recuperación se completa normalmente.

4.3.3 Ver archivo de registro de rehacer y archivo temporal

-- 确保redo logfile & tempfile路径存在或者rename file
SQL> select member from v$logfile;

MEMBER
------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/TEST/redo01.log
/u01/app/oracle/oradata/TEST/redo02.log
/u01/app/oracle/oradata/TEST/redo03.log

SQL> select name from v$tempfile;

NAME
------------------------------------------------------------
/u01/app/oracle/oradata/TEST/temp01.dbf

4.3.4 base de datos abierta

SQL> alter database open resetlogs;

Database altered.

4.4 Validar datos

SQL> select count(*) from scott.test2 ;

  COUNT(*)
----------
    157838

SQL> select count(*) from scott.test1 ;
select count(*) from scott.test1
                         *
ERROR at line 1:
ORA-00376: file 7 cannot be read at this time
ORA-01110: data file 7: '/u01/app/oracle/oradata/TEST/test02.dbf'

4.5 Intenta eliminar el archivo de datos 7

SQL> alter tablespace test drop datafile '/u01/app/oracle/oradata/TEST/test02.dbf';
alter tablespace test drop datafile '/u01/app/oracle/oradata/TEST/test02.dbf'
*
ERROR at line 1:
ORA-03264: cannot drop offline datafile of locally managed tablespace

Conclusión: Datafile 7 elimina un error, si es necesario solucionarlo, bbed puede repararlo y eliminarlo.

Supongo que te gusta

Origin blog.csdn.net/u010674953/article/details/129667969
Recomendado
Clasificación