RMAN备份恢复 (数据文件)

          1

 

 

查看归档是否开启

SQL> archive log list;

Database log mode               No Archive Mode

Automatic archival               Disabled

Archive destination               USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     5

Current log sequence               7

 

开启归档

SQL> startup mount------------开启归档,数据库必须处于mount的状态;

ORACLE instance started.

 

Total System Global Area  830930944 bytes

Fixed Size                    2257800 bytes

Variable Size                  536874104 bytes

Database Buffers          285212672 bytes

Redo Buffers                    6586368 bytes

Database mounted.

 

SQL> alter database archivelog;

 

Database altered.

SQL> archive log list;

Database log mode               Archive Mode

Automatic archival               Enabled

Archive destination               USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     5

Next log sequence to archive   7

Current log sequence               7

 

2

查看日志的变化

SQL> desc v$log;

 Name                                           Null?    Type

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

 GROUP#                                             NUMBER

 THREAD#                                            NUMBER

 SEQUENCE#                                            NUMBER

 BYTES                                                    NUMBER

 BLOCKSIZE                                            NUMBER

 MEMBERS                                            NUMBER

 ARCHIVED                                            VARCHAR2(3)

 STATUS                                             VARCHAR2(16)

 FIRST_CHANGE#                                            NUMBER

 FIRST_TIME                                            DATE

 NEXT_CHANGE#                                            NUMBER

 NEXT_TIME                                            DATE

 

SQL> select GROUP# STATUS from v$log;

 

    STATUS

----------

 1

 2

 3

SQL> select group#,status,archived from v$log;

 

    GROUP# STATUS            ARC

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

 1 CURRENT            NO

 2 INACTIVE            YES--------------内存中的数据已经同步到数据文件中,而且也已经归档

 3 INACTIVE            YES--------------已经归档,但是还没有同步到数据文件中

 

SQL> alter system switch logfile;------------切换日志,然后再看一下状态;

 

System altered.

 

SQL> select group#,status,archived from v$log;

 

    GROUP# STATUS            ARC

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

 1 ACTIVE            YES

 2 CURRENT            NO

 3 INACTIVE            YES

 

3

SCN时间,一串数字,一直向前走,不会倒退的

SQL> select current_scn from v$database;

 

CURRENT_SCN

-----------

    1025790

 

SQL> /

 

CURRENT_SCN

-----------

    1025791

 

SQL> /

 

CURRENT_SCN

-----------

    1025792

每查一次,SCN号就涨一次;

控制文件中记录着数据文件最后被写的时间;

SQL> desc v$datafile;

 Name                                           Null?    Type

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

 FILE#                                                    NUMBER

 CREATION_CHANGE#                                    NUMBER

 CREATION_TIME                                            DATE

 TS#                                                    NUMBER

 RFILE#                                             NUMBER

 STATUS                                             VARCHAR2(7)

 ENABLED                                            VARCHAR2(10)

 CHECKPOINT_CHANGE#                                    NUMBER-------记录着数据文件最后被写的时间,记录在控制文件中

 CHECKPOINT_TIME                                    DATE

 UNRECOVERABLE_CHANGE#                                    NUMBER

 UNRECOVERABLE_TIME                                    DATE

 LAST_CHANGE#                                            NUMBER

 LAST_TIME                                            DATE

 OFFLINE_CHANGE#                                    NUMBER

 ONLINE_CHANGE#                                     NUMBER

 ONLINE_TIME                                            DATE

 BYTES                                                    NUMBER

 BLOCKS                                             NUMBER

 CREATE_BYTES                                            NUMBER

 BLOCK_SIZE                                            NUMBER

 NAME                                                    VARCHAR2(513)

 PLUGGED_IN                                            NUMBER

 BLOCK1_OFFSET                                            NUMBER

 AUX_NAME                                            VARCHAR2(513)

 FIRST_NONLOGGED_SCN                                    NUMBER

 FIRST_NONLOGGED_TIME                                    DATE

 FOREIGN_DBID                                            NUMBER

 FOREIGN_CREATION_CHANGE#                            NUMBER

 FOREIGN_CREATION_TIME                                    DATE

 PLUGGED_READONLY                                    VARCHAR2(3)

 PLUGIN_CHANGE#                                     NUMBER

 PLUGIN_RESETLOGS_CHANGE#                            NUMBER

 PLUGIN_RESETLOGS_TIME                                    DATE

SQL> select NAME,CHECKPOINT_CHANGE# from v$datafile;

 

NAME

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

CHECKPOINT_CHANGE#

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

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1024754-----------此数据文件最后被修改的SCN

 

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1024754

 

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1024754

 

 

NAME

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

CHECKPOINT_CHANGE#

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

/u01/app/oracle/oradata/enmoedu/users01.dbf

   1024754

 

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1024754

 

SQL> desc v$datafile_header;----------去抓现在文件的时间是多少?

 Name                                           Null?    Type

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

 FILE#                                                    NUMBER

 STATUS                                             VARCHAR2(7)

 ERROR                                                    VARCHAR2(18)

 FORMAT                                             NUMBER

 RECOVER                                            VARCHAR2(3)

 FUZZY                                                    VARCHAR2(3)

 CREATION_CHANGE#                                    NUMBER

 CREATION_TIME                                            DATE

 TABLESPACE_NAME                                    VARCHAR2(30)

 TS#                                                    NUMBER

 RFILE#                                             NUMBER

 RESETLOGS_CHANGE#                                    NUMBER

 RESETLOGS_TIME                                     DATE

 CHECKPOINT_CHANGE#                                    NUMBER

 CHECKPOINT_TIME                                    DATE

 CHECKPOINT_COUNT                                    NUMBER

 BYTES                                                    NUMBER

 BLOCKS                                             NUMBER

 NAME                                                    VARCHAR2(513)

 SPACE_HEADER                                            VARCHAR2(40)

 LAST_DEALLOC_CHANGE#                                    VARCHAR2(16)

 UNDO_OPT_CURRENT_CHANGE#                            VARCHAR2(40)

SQL>  select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile_header;

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile;

 

  

 

4

数据文件丢了恢复的过程;

普通数据文件的恢复;

首先查看一下都有什么表空间,然后删除;

SQL> select tablespace_name from dba_tablespaces;

 

TABLESPACE_NAME

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

SYSTEM

SYSAUX

UNDOTBS1

TEMP

USERS

EXAMPLE

 

6 rows selected.

 

SQL> archive log list;

Database log mode               Archive Mode

Automatic archival               Enabled

Archive destination               USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     6

Next log sequence to archive   8

Current log sequence               8

SQL> desc dba_data_files;

 Name                                           Null?    Type

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

 FILE_NAME                                            VARCHAR2(513)

 FILE_ID                                            NUMBER

 TABLESPACE_NAME                                    VARCHAR2(30)

 BYTES                                                    NUMBER

 BLOCKS                                             NUMBER

 STATUS                                             VARCHAR2(9)

 RELATIVE_FNO                                            NUMBER

 AUTOEXTENSIBLE                                     VARCHAR2(3)

 MAXBYTES                                            NUMBER

 MAXBLOCKS                                            NUMBER

 INCREMENT_BY                                            NUMBER

 USER_BYTES                                            NUMBER

 USER_BLOCKS                                            NUMBER

 ONLINE_STATUS                                            VARCHAR2(7)

SQL> alter system switch logfile;------切换日志

 

System altered.

SQL> alter system archive log current;----切换日志

 

System altered.

SQL>  select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile;

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1026253

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1026253

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1026253

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1026253

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1026253

 

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile_header;---------直接从数据文件中读

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1026596

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1026596

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1026596

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1026596

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1026596

可以看出我们的example01.dbfSCN号是不一样的;

 

5

RMAN备份;

[oracle@enmoedu dbs]$ rman target/

 

Recovery Manager: Release 11.2.0.4.0 - Production on Sun Mar 13 10:49:42 2016

 

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

 

connected to target database: ENMOEDU (DBID=163971148)

RMAN> backup as copy database ;

 

Starting backup at 13-MAR-16

using target database control file instead of recovery catalog--------备份到控制文件中

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=10 device type=DISK-----进程信息

channel ORA_DISK_1: starting datafile copy

input datafile file number=00001 name=/u01/app/oracle/oradata/enmoedu/system01.dbf

output file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_system_cg9nvvbr_.dbf tag=TAG20160313T104203 RECID=2 STAMP=906374531

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00002 name=/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

output file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_sysaux_cg9nwbfk_.dbf tag=TAG20160313T104203 RECID=3 STAMP=906374541

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

input datafile file number=00005 name=/u01/app/oracle/oradata/enmoedu/example01.dbf

output file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_example_cg9nwfhp_.dbf tag=TAG20160313T104203 RECID=4 STAMP=906374543

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

input datafile file number=00003 name=/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

output file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_undotbs1_cg9nwjpk_.dbf tag=TAG20160313T104203 RECID=5 STAMP=906374545

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting datafile copy

copying current control file

output file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/controlfile/o1_mf_TAG20160313T104203_cg9nwkvd_.ctl tag=TAG20160313T104203 RECID=6 STAMP=906374547

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

input datafile file number=00004 name=/u01/app/oracle/oradata/enmoedu/users01.dbf

output file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_users_cg9nwo1y_.dbf tag=TAG20160313T104203 RECID=7 STAMP=906374549

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

including current SPFILE in backup set

channel ORA_DISK_1: starting piece 1 at 13-MAR-16

channel ORA_DISK_1: finished piece 1 at 13-MAR-16

piece handle=/u01/app/oracle/fast_recovery_area/ENMOEDU/backupset/2016_03_13/o1_mf_nnsnf_TAG20160313T104203_cg9nwp91_.bkp tag=TAG20160313T104203 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished backup at 13-MAR-16

SQL> alter system switch logfile;

 

System altered.

 

SQL> /

 

System altered.

 

SQL> /

 

System altered.

切换日志,代表过了好几天了

此时再查一下;

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile_header;

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1026829

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1026829

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1026829

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1026829

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1026829

 

SQL>  select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile;     

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1026829

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1026829

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1026829

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1026829

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1026829

 

 

 

6

SQL> alter database datafile 5 offline;----告诉控制文件,让丢失的数据文件先下线;

 

Database altered.
 

SQL> select FILE#        ,CHECKPOINT_CHANGE#        ,NAME, STATUS from v$datafile;

 

     FILE# CHECKPOINT_CHANGE#

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

NAME

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

STATUS

-------

 1               999895

/u01/app/oracle/oradata/enmoedu/system01.dbf

SYSTEM

 

 2               999895

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

ONLINE

 

     FILE# CHECKPOINT_CHANGE#

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

NAME

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

STATUS

-------

 

 3               999895

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

ONLINE

 

 4               999895

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE# CHECKPOINT_CHANGE#

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

NAME

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

STATUS

-------

ONLINE

 

 5               999895

/u01/app/oracle/oradata/enmoedu/example01.dbf

RECOVER

 

 

 

SQL> select file#,CHECKPOINT_CHANGE#,NAME,STATUS from v$datafile_header;

 

     FILE# CHECKPOINT_CHANGE#

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

NAME

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

STATUS

-------

 1               999895

/u01/app/oracle/oradata/enmoedu/system01.dbf

ONLINE

 

 2               999895

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

ONLINE

 

     FILE# CHECKPOINT_CHANGE#

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

NAME

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

STATUS

-------

 

 3               999895

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

ONLINE

 

 4               999895

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE# CHECKPOINT_CHANGE#

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

NAME

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

STATUS

-------

ONLINE

 

 5                    0

 

OFFLINE

 

因为数据文件丢失,所以SCN号是不一样的;

我们恢复数据文件再查看一下;

RMAN> restore datafile 5;

 

Starting restore at 13-MAR-16

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=10 device type=DISK

 

channel ORA_DISK_1: restoring datafile 00005

input datafile copy RECID=4 STAMP=906374543 file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_example_cg9nwfhp_.dbf

destination for restore of datafile 00005: /u01/app/oracle/oradata/enmoedu/example01.dbf

channel ORA_DISK_1: copied datafile copy of datafile 00005

output file name=/u01/app/oracle/oradata/enmoedu/example01.dbf RECID=0 STAMP=0

Finished restore at 13-MAR-16

 

RMAN> recover datafile 5;

 

Starting recover at 13-MAR-16

using channel ORA_DISK_1

 

starting media recovery

 

archived log for thread 1 with sequence 8 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_8_cg9o32xp_.arc

archived log for thread 1 with sequence 9 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_9_cg9o43cm_.arc

archived log for thread 1 with sequence 10 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_10_cg9onn02_.arc

archived log for thread 1 with sequence 11 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_11_cg9onog0_.arc

archived log for thread 1 with sequence 12 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_12_cg9onp7p_.arc

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_8_cg9o32xp_.arc thread=1 sequence=8

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_9_cg9o43cm_.arc thread=1 sequence=9

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_10_cg9onn02_.arc thread=1 sequence=10

media recovery complete, elapsed time: 00:00:00

Finished recover at 13-MAR-16

 

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile;

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1030301

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1030301

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1030301

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1030301

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1027456

 

 

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile_header;

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1030301

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1030301

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1030301

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1030301

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1027456

恢复刚刚丢失的数据文件之后,发现他们的SCN号是一致的

 

7

数据库在丢失了system表空间和undo表空间是不能打开的;

假如我把system表空间和undo表空间给删除了;

[oracle@enmoedu enmoedu]$ ls

control01.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf

example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf

[oracle@enmoedu enmoedu]$ rm system01.dbf

[oracle@enmoedu enmoedu]$ rm undotbs01.dbf

SQL> startup

ORACLE instance started.

 

Total System Global Area  830930944 bytes

Fixed Size                    2257800 bytes

Variable Size                  536874104 bytes

Database Buffers          285212672 bytes

Redo Buffers                    6586368 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

ORA-01110: data file 1: '/u01/app/oracle/oradata/enmoedu/system01.dbf'

由此可以看出,数据库已经起不来了。

那么下面我们就恢复我们删掉的表空间,然后再看能否起来

RMAN> restore datafile 1;

 

Starting restore at 13-MAR-16

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=10 device type=DISK

 

channel ORA_DISK_1: restoring datafile 00001

input datafile copy RECID=2 STAMP=906374531 file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_system_cg9nvvbr_.dbf

destination for restore of datafile 00001: /u01/app/oracle/oradata/enmoedu/system01.dbf

channel ORA_DISK_1: copied datafile copy of datafile 00001

output file name=/u01/app/oracle/oradata/enmoedu/system01.dbf RECID=0 STAMP=0

Finished restore at 13-MAR-16

RMAN> recover datafile 1;

 

Starting recover at 13-MAR-16

using channel ORA_DISK_1

 

starting media recovery

 

archived log for thread 1 with sequence 8 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_8_cg9o32xp_.arc

archived log for thread 1 with sequence 9 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_9_cg9o43cm_.arc

archived log for thread 1 with sequence 10 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_10_cg9onn02_.arc

archived log for thread 1 with sequence 11 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_11_cg9onog0_.arc

archived log for thread 1 with sequence 12 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_12_cg9onp7p_.arc

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_8_cg9o32xp_.arc thread=1 sequence=8

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_9_cg9o43cm_.arc thread=1 sequence=9

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_10_cg9onn02_.arc thread=1 sequence=10

media recovery complete, elapsed time: 00:00:01

Finished recover at 13-MAR-16

 

RMAN> restore datafile 3;

 

Starting restore at 13-MAR-16

using channel ORA_DISK_1

 

channel ORA_DISK_1: restoring datafile 00003

input datafile copy RECID=5 STAMP=906374545 file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/datafile/o1_mf_undotbs1_cg9nwjpk_.dbf

destination for restore of datafile 00003: /u01/app/oracle/oradata/enmoedu/undotbs01.dbf

channel ORA_DISK_1: copied datafile copy of datafile 00003

output file name=/u01/app/oracle/oradata/enmoedu/undotbs01.dbf RECID=0 STAMP=0

Finished restore at 13-MAR-16

 

RMAN> recover datafile 3;

 

Starting recover at 13-MAR-16

using channel ORA_DISK_1

 

starting media recovery

 

archived log for thread 1 with sequence 8 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_8_cg9o32xp_.arc

archived log for thread 1 with sequence 9 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_9_cg9o43cm_.arc

archived log for thread 1 with sequence 10 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_10_cg9onn02_.arc

archived log for thread 1 with sequence 11 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_11_cg9onog0_.arc

archived log for thread 1 with sequence 12 is already on disk as file /u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_12_cg9onp7p_.arc

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_8_cg9o32xp_.arc thread=1 sequence=8

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_9_cg9o43cm_.arc thread=1 sequence=9

archived log file name=/u01/app/oracle/fast_recovery_area/ENMOEDU/archivelog/2016_03_13/o1_mf_1_10_cg9onn02_.arc thread=1 sequence=10

media recovery complete, elapsed time: 00:00:00

Finished recover at 13-MAR-16

SQL> startup

ORACLE instance started.

 

Total System Global Area  830930944 bytes

Fixed Size                    2257800 bytes

Variable Size                  536874104 bytes

Database Buffers          285212672 bytes

Redo Buffers                    6586368 bytes

Database mounted.

Database opened.

现在我们的数据库已经起来了;

下面我们查看一下控制文件和数据文件头部是否同步;

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile;    

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1031442

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1031442

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1031442

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1031442

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1027456

 

 

SQL> select FILE#,NAME,CHECKPOINT_CHANGE# from v$datafile_header;

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 1

/u01/app/oracle/oradata/enmoedu/system01.dbf

   1031442

 

 2

/u01/app/oracle/oradata/enmoedu/sysaux01.dbf

   1031442

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

 

 3

/u01/app/oracle/oradata/enmoedu/undotbs01.dbf

   1031442

 

 4

/u01/app/oracle/oradata/enmoedu/users01.dbf

 

     FILE#

----------

NAME

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

CHECKPOINT_CHANGE#

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

   1031442

 

 5

/u01/app/oracle/oradata/enmoedu/example01.dbf

   1027456

由此可以看出数据问价头部和控制文件是同步的;

 

8

CKPT

控制文件记录着数据文件最后一次被写的时间;

ckpt通知dbwr进程,赶紧把内存中的赃数据写到数据文件中,同时跟新数据文件头和控制文件;

检查点被记录的地方(数据文件头部和控制文件);

检查点的目的-----把赃数据写到数据文件中;保证数据一致性;减少实例恢复;

检查点队列:redo.log中的一个链。

检查点队列(检查点只是一个数据库事件,它存在的根本意义在于减少崩溃恢复时间),在BH中有一个ckptq项,双向链表.

  (1)只有脏块才会在检查点队列中,非脏块的ckptq为空。

  (2)当块首次被更改时,块会立即被加进检查点队列。 如果检查点队列中的脏块再次被修改,并不会改变其在

检查点队列中的位置。

  (3)检查点队列中脏块的排列顺序:根据第2,所有脏块按照首次被更改的时间的顺序排列。 更准确点说:

照块的lrba排列。

 

 

 

9

快速恢复区;

SQL> show parameter db_recovery;

 

NAME                                     TYPE         VALUE

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

db_recovery_file_dest                     string         /u01/app/oracle/fast_recovery_

 area

db_recovery_file_dest_size             big integer 4182M

SQL> alter system set db_recovery_file_dest_size=5000m;-------设置快速恢复区的大小;

 

System altered.

SQL> show parameter db_recovery;

 

NAME                                     TYPE         VALUE

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

db_recovery_file_dest                     string         /u01/app/oracle/fast_recovery_

 area

db_recovery_file_dest_size             big integer 5000M

SQL> alter system reset db_recovery_file_dest='u01/junxiao';---------如果想要修改快速恢复区的位置,必须是reset,而不是set

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30606702/viewspace-2058423/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30606702/viewspace-2058423/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值