Oracle 数据库基础教程2007
1
第 12章 数据库备份与恢复
Oracle 数据库基础教程2007
2
本章内容
备份与恢复概述
物理备份与恢复
逻辑备份与恢复
Oracle 数据库基础教程2007
3
本章要求
了解备份与恢复的重要性和概念
掌握数据库的冷备份
掌握数据库的热备份
掌握逻辑备份和恢复 (export / Import)
Oracle 数据库基础教程2007
4
12.1 备份与恢复概述
备份与恢复的基本概念
备份的原则与策略
恢复的原则与策略
Oracle 数据库基础教程2007
5
备份与恢复的必要性
数据库备份与恢复的目的
数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分或全部丢失。
数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。
数据库的不一致状态
如果数据库系统在运行中发生故障,有些提交的事务对数据库所做的修改有一部分写入物理数据库,这时数据库就处于一种不正常的状态,或者说是不一致的状态。
Oracle 数据库基础教程2007
6
备份与恢复的基本概念
备份分为物理备份和逻辑备份
物理备份,是指通过将重要的物理文件备份起来,
以避免物理故障造成的损失。
逻辑备份,通常是 SQL语句的集合。
在实际应用中,应该以物理备份为主,逻辑备份作为补充。
Oracle 数据库基础教程2007
7
恢复类型
完全恢复
从一个物理备份中恢复一个已丢失的数据文件的拷贝,然后根据从此刻起的所有归档日志文件与重做日志文件进行恢复,这样能够得到从备份以来发生的所有变化,这种恢复称为完全恢复。
不完全恢复
如果归档日志文件有丢失的情况发生,那么数据库只能恢复到这个归档日志文件以前的状态,没有得到从备份以来的所有变化,这种恢复称为不完全恢复。
Oracle 数据库基础教程2007
8
物理备份
物理备份分为冷备份与热备份。
冷备份又称为脱机备份。是在数据库保持关闭状态下,把数据库的配置文件、数据文件、控制文件、
重做日志文件和归档日志文件复制到其他地方保存起来。
热备份又称为联机备份或者归档备份。是在数据库保持开放状态下对数据库进行备份,热备份的好处是不必关闭数据库,不影响数据库系统的正常运行,
但是热备份的操作要比冷备份复杂。
Oracle 数据库基础教程2007
9
12.2 物理备份与恢复
冷备份与恢复
热备份与恢复
不完全恢复
Oracle 数据库基础教程2007
10
物理备份方法
Oracle 数据库基础教程2007
11
12.2.1 冷备份与恢复
冷备份
关闭数据库实例,用操作系统的实用工具备份数据文件。
如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。
Oracle 数据库基础教程2007
12
关闭数据库,
开始备份故障时刻备份恢复 重装备份副本 恢复丢失数据备份完成冷备份
如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。
Oracle 数据库基础教程2007
13
冷备份步骤
步骤:
1、关闭数据库
2、备份所有相关的数据库文件:
数据文件控制文件
Redo 日志归档的 Redo 日志初始化文件
Oracle 数据库基础教程2007
14
冷备份的恢复
非归档模式下恢复
关闭数据库
用备份文件覆盖原有文件
重新启动数据库
Oracle 数据库基础教程2007
15
热备份是备份数据库的最佳方法。
系统工作在归档模式下。
转到归档模式后,应立即进行热备份。
12.2.2 热备份与恢复
Oracle 数据库基础教程2007
16
热备份
热备份
当数据库正在运行时进行的数据库备份过程。当数据库处在可归档日志模式下,可使用热备份。
有些关键数据库应用系统可能需要数据库每天 24小时,
每周 7天的运行,就应该使用热备份。
热备份的优点:
备份时,数据库可以是打开的。
可用来全面恢复数据库(可用来在任何一点上恢复)。
Oracle 数据库基础教程2007
17
设置归档模式
SHUTDOWN
STARTUP MOUNT
ALTER DATABASE ARCHIVELOG
ALTER DATABASE OPEN
ALTER SYSTEM ARCHIVE LOG START
ALTER SYSTEM SET
log_archive_dest=e:\archives
ALTER SYSTEM SET log_archive_format
=? oracle1%S.ARC
Oracle 数据库基础教程2007
18
热备份:备份数据文件
查询视图 v$datafile 和视图 v$tablespace决定需要备份的数据文件
将某个表空间设为备份模式
ALTER TABLESPACE name BEGIN BACKUP;
使用操作系统命令将该表空间所有数据文件备份
结束该表空间的备份模式
ALTER TABLESPACE name BEGIN BACKUP;
对数据库的每个表空间,执行步骤 3,4,5操作。
Oracle 数据库基础教程2007
19
ALTER DATABASE BACKUP CONTROLFILE TO
‘ d:\back\control.bkp’ reuse;
ALTER DATABASE BACKUP CONTROLFILE TO
TRACE
热备份:备份控制文件
Oracle 数据库基础教程2007
20
归档当前的联机日志文件
备份归档日志文件
备份初始化参数文件热备份:备份的其他文件
Oracle 数据库基础教程2007
21
热备份下的数据库恢复
利用热备份恢复语法
RECOVER [AUTOMATIC]
{DATABASE|TABLESPACE tabname
|DATAFILE dfname}
[{UNTIL {CANCEL|TIME time|CHANGE scn}
USING BACKUP CONTROLFILE}]
Oracle 数据库基础教程2007
22
数据文件级别的恢复
将受损的数据文件脱机
ALTER DATAFILE datafile OFFLINE
用备份的数据文件覆盖受损的数据文件
恢复数据文件
RECOVER DATAFILE datafile ;
将数据文件联机
ALTER DATAFILE datafile ONLINE;
将数据库修改为打开状态
ALTER DATABASE OPEN;
Oracle 数据库基础教程2007
23
表空间级别的恢复
用备份的表空间对应的所有数据文件复制到原来的目录,覆盖受损的数据文件。
恢复表空间
RECOVER TABLESPACE tablespacename;
将数据库修改为打开状态
ALTER DATABASE OPEN;
Oracle 数据库基础教程2007
24
数据库完全恢复步骤
确保数据库已经关闭(使用 ABORT操作 )
SHUTDOWN ABORT;
用最后的数据库备份恢复数据文件。
如果当前控制文件丢失,使用镜像版本复制到已修好的磁盘中,或者重新创建控制文件。
还原所有已归档的日志。
如果服务器参数文件损坏,则利用备份的初始化参数文件创建服务器参数文件。
CREATE SPFILE FROM PFILE;
Oracle 数据库基础教程2007
25
数据库完全恢复步骤(续)
将数据库启动到 MOUNT状态,
STARTUP MOUNT;
使用 RECOVER命令进行恢复。命令如下:
RECOVER DATABASE;
将数据库修改为打开状态:
ALTER DATABASE OPEN; RECOVER DATABASE;
恢复完成后,重新打开数据库
ALTER DATABASE OPEN;
Oracle 数据库基础教程2007
26
12.2.3 不完全恢复
基于 CANCEL的恢复
基于时间的恢复
基于 SCN的恢复
Oracle 数据库基础教程2007
27
基于 CANCEL的恢复
关闭数据库
SHUTDOWN IMMEDIATE;
把原来备份的文件拷贝到对应路径
加载数据库
STARTUP MOUNT;
对数据库进行恢复
RECOVER DATABASE UNTIL CANCEL ;
打开数据库
ALTER DATABASE OPEN RESETLOG;
或 ALTER DATABASE OPEN NORESETLOG;
Oracle 数据库基础教程2007
28
基于时间的恢复
关闭数据库
SHUTDOWN IMMEDIATE;
把原来备份的文件拷贝到对应路径
加载数据库
STARTUP MOUNT;
对数据库进行恢复
RECOVER DATABASE UNTIL TIME ’ 12月 -
10-2003,19,23,39’
打开数据库
ALTER DATABASE OPEN RESETLOG;
或 ALTER DATABASE OPEN NORESETLOG;
Oracle 数据库基础教程2007
29
基于 SCN的恢复
关闭数据库
SHUTDOWN IMMEDIATE;
把原来备份的文件拷贝到对应路径
加载数据库
STARTUP MOUNT;
对数据库进行恢复
RECOVER DATABASE UNTIL CHANGE
87654;
打开数据库
ALTER DATABASE OPEN RESETLOG;
或 ALTER DATABASE OPEN NORESETLOG;
Oracle 数据库基础教程2007
30
12.3 逻辑备份与恢复
优点:
能容易快速地进行一个或更多单个表或行恢复。
升级数据库时,更加方便。
跨平台移动数据库时,更加方面。
数据库可一直运行。
目的:
挽救由用户或应用错误造成的损失
(用户或应用偶尔删除一行和数据库表造成的数据丢失)
Oracle 数据库基础教程2007
31
注意事项:
1、逻辑备份不能代替冷备份或热备份。冷备份或热备份是对物理数据库文件的冷备份或热备份。逻辑备份是对特定的逻辑对象的备份。
2、冷备份或热备份用于数据库发生介质故障时的恢复。
逻辑备份用于用户或应用偶而删除一行和数据库表造成的数据丢失的恢复。
3、不可能在导入中应用归档日志文件从而使它恢复到导出执行后的某一时间点。
Oracle 数据库基础教程2007
32
使用方法
命令行 EXP/IMP,指定需要的参数
Enterprise Manager
Oracle 数据库基础教程2007
33
12.3.1 使用 EXP/IMP命令导出和导入数据
EXP/IMP命令
交互式数据导出和导入
命令行模式的数据导出与导入
参数模式的数据导出与导入
Oracle 数据库基础教程2007
34
导出模式

导出表定义、数据、授权、索引、约束
用户
导出指定用户模式下的所有表定义、数据、授权、索引、约束
全数据库
导出数据库中所有表定义、数据、授权、索引、约束
Oracle 数据库基础教程2007
35
EXPORT命令
语法:
exp keyword=(value1,value2,…,valuen)
举例:
exp scott/tiger TABLES=(emp,dept)
rows=y file=exptable.dmp
exp system/manager OWNER=scott
file=d:\exptable.dmp
exp system/manager FULL=y
inctype=cumulative file=d:\exptable.dmp
Oracle 数据库基础教程2007
36
IMPORT命令
语法:
imp keyword=(value1,value2,…,valuen)
举例:
imp scott/tiger TABLES=(emp,dept)
rows=y file=exptable.dmp
imp system/manager FROMUSER=scott
file=d:\exptable.dmp
imp system/manager
file=d:\exptable.dmp
Oracle 数据库基础教程2007
37
导入过程
1,创建新的表和索引
2,数据导入,索引更新
3,触发器导入,在新表上建立完整性约束
Oracle 数据库基础教程2007
38
13.2 使用 OMS导出 /导入
准备工作
首先需要在 OMS设置首选身份证明
并设置节点的本地安全策略
Oracle 数据库基础教程2007
39
Oracle 数据库基础教程2007
40
导出
Oracle 数据库基础教程2007
41
Oracle 数据库基础教程2007
42
Oracle 数据库基础教程2007
43
Oracle 数据库基础教程2007
44
Oracle 数据库基础教程2007
45
Oracle 数据库基础教程2007
46
Oracle 数据库基础教程2007
47
Oracle 数据库基础教程2007
48
Oracle 数据库基础教程2007
49
导入
Oracle 数据库基础教程2007
50
Oracle 数据库基础教程2007
51
Oracle 数据库基础教程2007
52
可以在作业活动窗口中看到作业提交及运行情况
Oracle 数据库基础教程2007
53
小结
数据库的备份与恢复机制
冷备份和热备份与恢复
Export/import的方法