第一部分: 数据库备份与恢复

第一章: 备份恢复概述

1.1 备份的意义:

1)保护数据,避免因为各种故障而丢失数据。

2)MTBF: 平均故障间隔时间。

3)MTTR:平均恢复时间

1.2 数据库故障的类型:

1)user process failure:        pmon 自动处理

2) instance failure:              smon 自动处理

3) user errors :                    需要dba通过备份恢复解决。

4)media failure:                必须通过备份和日志恢复。

1.3 制定你的备份和恢复的计划:

1)根据生产环境的恢复周期,制定详细的备份计划,然后严格执行

2) 对备份,要在一定的时间内利用测试环境,进行故障恢复的练习。

1.4 备份恢复分类

1.4.1 逻辑备份与恢复----面向object

1) 传统的导入导出: exp/imp

2) 数据泵导入导出: expdp/impdp

// 逻辑备份就是热备数据库对象某一时刻状态,不能运用在media failure 上,逻辑备份的恢复就是还原备份,没有recover的概念。

1.4.2 物理备份与恢复---面向media failure

1) 手工备份与恢复, 也叫用户管理的备份与恢复,通过OS 的命令,完成备份与还原,然后再运用日志进行恢复。

2)自动备份与恢复,利用oracle 的备份恢复工具 rman(或其他备份恢复软件),还原与恢复过程自动完成,可以备份恢复ASM FILE。

// 物理备份从方式上可以有一致性备份(冷备)和非一致性备份(热备)

// 完整的备份应该以物理备份为主,逻辑备份辅助(用于备份一些重要的表)

1.4.3 闪回技术--面向人为的逻辑错误

一种利用undo数据或闪回日志的快速恢复技术。可以针对不同层面问题进行逻辑恢复,11g 支持七种flashback 方式。

1.5 完全恢复和不完全的恢复

media failure 后, 需要运用日志进行recovery.

1) 完全恢复:利用完整备份或部分备份,可以将datafile 恢复到failure 前得最后一次commit,不会出现数据丢失。

2)不完全恢复:需要运用完整备份和日志将database恢复到过去的某个时间点(或SCN),有数据丢失。

1.6 归档与非归档

归档模式: redo log 写入 archive log

非归档模式: 没有archive log, redo log 循环覆盖。

                  手工冷备   手工热备 RMAN 冷备 RMAN 热备 完整还原 完全恢复 不完全恢复    

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

归档模式:          yes            yes           yes           yes            yes                yes         yes 
 
非归档模式:     yes            no            yes            no             yes               no            no 

第二章: 手工备份与恢复

2.1 手工备份:

1)数据库全备: 备份database 的所有数据块(datafiles、controlfile)

2) 部分备份:只备份单个表空间或datafile(archivelog 模式)

3) 一致性备份(冷备份) : 在数据库正常关闭情况下做备份,数据库处于一致性状态。

4)非一致性备份(热备份):database在open 状态下备份。

2.2 手工备份和恢复的命令

1) 备份和还原使用OS命令

2) 恢复用sqlplus命令: recover

2.3 备份前应对数据库进行检查: 有关的视图: v$datafile\ v$datafile_header\v$controlfile\v$logfile\dba_tablespaces\dba_data_files

1) 检查需要备份的数据文件

SQL> select name from v$datafile;

SQL> select file_id,file_name,tablespace_name from dba_data_files;

2) 检查要备份控制文件。

SQL> select name from v$controlfile;

3) 在线redo 日志不需要做备份

2.4 手工非一致性备份(热备份)的执行方式及热备份的监控(v$backup)

Note : 对只读的表空间不能做热备份,临时表空间不需要备份,特别强调: NOARCHIVE 模式下不支持手工热备。

1) 在备份前进入backup mode (backup 模式)

即: 执行begin backup (在数据库文件上生成检查点,写入SCN,将来恢复的时候以此scn为起点)

SQL> alter database begin backup;                         // 对整个库做热备份

SQL > alter database end backup 

SQL> alter tablespace users begin backup;           // 对表空间做备份 

SQL>alter tablespace users end backup;              // 

2) 备份期间利用v$backup监控

SQL > alter tablespace test begin backup;

SQL> select file#,checkpoint_change# from v$datafile_header; // 在备份期间,scn 不发生变化。

SQL> select * from v$backup;

第三章完全恢复

3.1 完全恢复:通过备份、归档日志、current redo,将database 恢复到failure 前的最后一次commit 状态。

3.2 完全恢复的步骤:

1)restore : OS 拷贝命令还原所有或部分datafile

2)recover : SQL*PLUS利用归档日志和当前的redo日志做恢复。

3.3 手工完全恢复可以基于三个级别。

recover database: 所有或大部分datafile 丢失,一般是在mount状态完成。

recover tablespace: 非关键表空间损坏,表空间下某些数据文件不能访问,一般是在open下完成。

recover datafile: 单一或少数数据文件损坏,可以在mount或open 状态完成。

recover datafile : 单一或少数数据文件损坏,可以在mount或open 状态完成。

什么是关键文件: 如果关键文件损坏,数据库将不能维持在open 状态,或崩溃或死机。

考点:哪些文件时关键文件: 四个: 1)system01.dbf 2) undo tablespace,3) control file 4) current log file.

3.4 恢复过程可以查看的视图:

1)v$recover_file : 查看需要恢复的datafile

2) v$recovery_log: 查看 recover 需要的redo 日志

3)v$archived_log: 查看已经归档的日志。

3.5 非归档模式下只能做全备的完整还原,还原后仍会缺失联机日志文件(因为只备数据文件和控制文件),需要在mount下发出

alter database clear logfile group<组号>。(如果是在RMAN下还原,这一过程是自动完成的)。

3.6 归档模式下手工完全恢复的实验。

前提: 1) 有一套datafile 全备,2) 使用当前控制文件,3)自上次备份以来的归档日志和当前联机日志是完整的。

范例1:recover database

说明: 由于media failure 所有 datafile 丢失。

发布了39 篇原创文章 · 获赞 4 · 访问量 3472

猜你喜欢

转载自blog.csdn.net/u011868279/article/details/102408186