Backup & Recovery 目的:
 1.保护数据
 2.保存数据
 3.传输数据

备份的概念:
 A backup is a copy of data of a database that you can use to reconstruct data;

备份的解决方案角度分类:
 1.rman备份和恢复的方案

 2.用户管理的备份与恢复

 3.第三方的备份与恢复
  NBU

备份的分类:
 物理备份:
  物理备份是将数据库的物理文件复制到其他的位置,
  保存数据数据的方式;
 逻辑备份:
  逻辑备份只对数据库的数据感兴趣,只备份数据;
  逻辑备份通过导入导出工具来完成的;
  是物理备份的一种补充形似;

 *****************************************************
 冷备份:
  表示在数据库关闭的情况下,进行的备份,也叫脱机备份;
  将数据文件进行镜像拷贝,保存在其他地方;
  这个时候,数据库要进行一致性关闭;

 热备份:
  数据库在启动的状态下,进行的备份,称之为热备份;
  这样的状态下产生的备份是不一致备份;
  利用这样的创建的备份需要日志作为恢复的补充;
  所以说,如果要进行热备份,需要将数据库置为归档模式;


备份的whole&&full:
 full  backup:
  完全备份;
 incremental  backup:
  differential incremental backup:差异增量备份;
  Cumulative incremental backup: 累计增量备份;




 指的是备份级别
  level 0 就是全备,所有的数据都备份;

  level 1 和前一次备份比较,将这个期间改变的数据备份下来;

  level 1c 累计增量备份,和比他小得级别相比,改变的数据备份;

 whole backup:
  整个数据库的备份,全备;

完全恢复&不完全恢复:
 完全恢复:
  可以利用备份文件和日志文件,将数据库信息恢复到最新状态;
  可能会利用归档日志和在线重做日志;
  将系统恢复到崩溃前的最新状态;

  能够将数据库通过ALTER DATABASE OPEN打开;
  这个时候,提交的事物数据不会有任何丢失;
  未提交的事物回滚;

 不完全恢复:
  1.人为的不完全恢复
  因为发生了数据库的数据操作错误,希望把数据库导回发生错误之前;
  2.系统的日志不完整;

  数据库打开需要:alter database open resetlogs;
  数据库启动之后,需要做全库备份;

 

 

 

System Change Numbers (SCNs)
System Commit Numbers

 系统改变号
 系统提交号

 A system change number (SCN) is a logical, internal time stamp 
 used by Oracle Database;

 SCN是单调递增的序列;

明确几种数据库SCN:

 1.数据库当前的SCN

SYS@orcl11g> select current_scn from v$database;

  CURRENT_SCN
  -----------
      1676329

SYS@orcl11g> select dbms_flashback.get_system_change_number() from dual;

  DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER()
  -----------------------------------------
                                    1676342

SYS@orcl11g> l
    1  select dbms_flashback.get_system_change_number() from dual
    2  union all
    3* select current_scn from v$database
SYS@orcl11g> /

  DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER()
  -----------------------------------------
                                   1676392
                                     1676393

 2.数据库的检查点scn -- 查询来源控制文件
SYS@orcl11g> select checkpoint_change#,current_scn from v$database;

  CHECKPOINT_CHANGE# CURRENT_SCN
  ------------------ -----------
             1666278     1676455

 3.数据文件的检查点scn -- 查询来源控制文件
SYS@orcl11g> select file#,checkpoint_change# from v$datafile order by 1;

       FILE# CHECKPOINT_CHANGE#
  ---------- ------------------
           1            1666278
           2            1666278
           3            1666278
           4            1666278
           5            1666278
           6            1666278
           7            1384282
           8            1666278
           9            1666278

  9 rows selected.

SYS@orcl11g> select tablespace_name,file_id from dba_data_files
    2  where file_id=7;

  TABLESPACE_NAME                   FILE_ID
  ------------------------------ ----------
  TBS02                                   7

SYS@orcl11g> select tablespace_name,status from dba_tablespaces 
    2  where tablespace_name='TBS02';

  TABLESPACE_NAME                STATUS
  ------------------------------ ---------
  TBS02                          OFFLINE


 4.数据文件头部的检查点信息 -- 来源于数据文件头部

SYS@orcl11g> select file#,checkpoint_change# from v$datafile_header;

      FILE# CHECKPOINT_CHANGE#
  ---------- ------------------
           1            1676699
           2            1676699
           3            1676699
           4            1676699
           5            1676699
           6            1676699
           7            1676699
           8            1676699
           9            1676699

  9 rows selected.


 5.数据文件的last_change#,数据文件的关闭SCN(结束SCN)

SYS@orcl11g> select file#,checkpoint_change#,last_CHANGE# from v$datafile;

       FILE# CHECKPOINT_CHANGE# LAST_CHANGE#
  ---------- ------------------ ------------
           1            1737727 (null)
           2            1737727 (null)
           3            1737727 (null)
           4            1737727 (null)
           5            1737727 (null)
           6            1737727 (null)
           7            1737727 (null)
           8            1737727 (null)
           9            1737727 (null)

  9 rows selected.

TIME & SCN的相互转换函数:

SYS@orcl11g> select scn_to_timestamp(1906338) from dual;

SCN_TO_TIMESTAMP(1906338)
---------------------------------------------------------------------------
26-JUN-13 10.52.09.000000000 AM


SYS@orcl11g> select timestamp_to_scn(to_timestamp('2013-06-26 10:53:27','yyyy-mm-dd hh24:mi:ss')) from dual;

TIMESTAMP_TO_SCN(TO_TIMESTAMP('2013-06-2610:53:27','YYYY-MM-DDHH24:MI:SS'))
---------------------------------------------------------------------------
                                                                    1906370