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