1、Oracle数据库的备份与恢复,Chap08 Oracle数据库的备份与恢复机制,本章学习目标,了解备份与恢复的重要性 理解数据库备份一些基本概念 理解冷备份与热备份的区别 理解归档备份与非归档备份对恢复的影响 理解几种不同的恢复机制,8.1 理解数据库备份,备份是一个数据的COPY,其中包括数据库的重要部分:控制文件和数据文件。 备份目的:为了防止意外的数据丢失和应用错误。 备份分为物理备份和逻辑备份 物理备份:复制物理的数据文件, 逻辑备份:指使用oracle Export程序将数据从数据库中抽取出来存在一个二进制的文件中。可作为物理备份的补充。 还原(restore)一个备份:重新构造它
2、并使用可以被oracle server使用。 恢复(recovery)一个已还原数据文件是指用重写日志记录(redolog record)来更新它,比如数据库备份以后所修改的记录。,例程恢复的操作:前滚(rolling forward)和回滚(rolling back) 数据库失败的几种可能: 语句错误 进程失败 用户错误 介质失败 用户设计、实现并使用其备份策略: 设计备份与恢复策略 定期测试备份和恢复策略 确保操作系统级的备份脱离数据库服务器 修改前后的数据库备份 动态数据的表空间的频繁备份 保存较老的备份 定期导出数据库 高利用率应用程序的分布式数据库备份,8.2 冷备份与热备份,冷备份
3、:停机备份,冷物理备份一般涉及生成所有必要的数据库元素(配置文件、数据文件、控制文件、重做日志和归档日志)的一个文件COPY。备份是应保持足够长时间的脱机状态。 热备份:不停机备份,要进行热备份数据库必须处于归档日志状态下。使用热备份的好处在于当一个数据文件或表空间处于备份状态时,用户仍然可以访问其他部分。,8.3 归档备份与非归档备份对恢复的影响,归档日志状态下 可以进行完全恢复和不完全恢复 可以使在线备份即热备份成为可能。 可以使standby系统成为可能。,8.3 归档备份与非归档备份对恢复的影响,非归档日志状态下 没有归档日志文件产生,对数据库的更改也就没有被完整保存下来,可以节省磁盘
4、空间提高系统性能,但使得数据库处于一种危险状态。,8.3 归档备份与非归档备份对恢复的影响,配置系统模式 归档模式的配置方法:归档模式在数据库创建时可以设定,也可以使用alter database archivelog命令实现,使用该命令时需使得数据库处于mounted状态。 sqlshutdown immediate Sqlstartup mount Sqlalter database archivelog 2 / Sqlalter database open 2 /,8.3 归档备份与非归档备份对恢复的影响,检查方法 查看初始化文件init.ora的参数log_archive_start是
5、否为true 执行archivelog list 查看操作系统的进程 查看视图V$database sqlselect dbid,name,log_mode from V$database Alter system swithlogfile; 检查log_archive_dest所指定的路径下是否有归档日志文件生成。,8.4 理解几种不同的恢复机制,完全恢复 控制文件、重做日志文件和归档日志文件 序列号(sequence number)记录 不完全恢复 遗失归档日志文件,只能执行不完全恢复。 备份测试一个未经过测试的备份与恢复方案比没有方案还糟糕。,Chap 9 非RMAN下物理备份与恢复实现
6、COME IN,Chap 09 非RMAN下物理备份与恢复实现,RMANRecovery Manage,学习目标,掌握数据库的冷备份方法 掌握数据库的热备份方法 掌握控制文件的备份方法 掌握几种不同的数据库恢复方法,非RMAN下的物理备份包括冷物理备份和热物理备份,9.1 数据库的冷备份,冷备份涉及生成所有必要的数据库元素,包括数据文件、控制文件、重做日志文件、归档日志文件和系统配置参数文件。 实现步骤: 关闭数据库 sqlshutdown immediate 不可使用shutdown abort,只能使用shutdown Normal, shutdown immediate 复制所有数据库到
7、目标路径 打开数据库 sqlstartup,9.2 数据库的热备份,数据库的热备份也是通过操作系统的COPY来实现。 步骤: 查询视图V$DATAFILE和视图V$TABLESPACE来决定需要备份的数据文件 使表空间处于备份状态 sqlalter tablespace users begin backup 2 / 操作系统COPY数据文件 结束备份状态 sqlalter tablespace users end backup 2 /,9.3 控制文件的备份,当加入一个新的表空间、数据文件或撤销一个现存的表空间、数据文件时,或者重建控制文件时,一定要立刻通过alter database bac
8、kup controlfile to trace命令备份控制文件。这个命令可以在数据库打开的情况下运行。它将转储生成一个包含create controlfile命令的跟踪文件,数据库利用这个跟踪文件保证在需要的时候重建控制文件。不管有没有resetlogs选项,创建的跟踪文件都可以在请求恢复时立即生效。,9.3 控制文件的备份,控制文件的备份方式 备份为二进制 sqlalter database backup controlfile to 2 f:orclcf.ctl.bak; 备份为asc文件:此ASC文件为所生成的跟踪文件的COPY.此文件存在于user_dump_dest所指定的目录下。
9、Ueser_dump_dest参数可以在init.ora文件中找到。 Sql alter database backup controlfile to 2 trace;,9.4 几种不同的恢复方式,非归档日志下的数据库恢复 当系统丢失了一个或者多个数据文件的时候,需要对整个数据库进行还原(restore),实现的方式是关闭数据库(shutdown immediate),采用从冷备份中复制数据文件。 归档日志下对丢失部分数据文件的恢复 当系统运行于归档日志状态下,如果丢失了一个或多个数据文件,可以对数据文件进行逐个恢复 实验:现运用alter tablespace命令进行表空间(比如:users
10、)备份,在本例中先在表空间users创建一个test表格并insert记录。测试中删除users对应的数据文件,使得模拟介质破坏。 恢复过程:在startup启动例程时发现数据文件丢失,可根据提示参考DBWR跟踪文件,查看Alert文件.恢复过程先使得数据文件处于脱机状态(alter database datafile f:. offline;),然后用行操作系统命令,从备份中COPY到原始位置,最后recover datafile f:,再使得数据文件online.,9.4 几种不同的恢复方式,丢失整个数据库情况下的恢复 对整个数据库进行热备份: sqlalter tablespace us
11、ers begin backup 2 / 使用操作命令COPY数据文件到另一路径 sqlalter tablespace users end backup 2 / sqlalter tablespace system begin backup 2 / 使用操作命令COPY数据文件到另一路径 sqlalter tablespace system end backup 2 / 向表格插入数据,以模拟完全备份厚数据库的更改 恢复过程: sqlstartup mount; 把所有数据文件COPY到原来路径 sqlrecover database; sqlalter database open;,9.5
12、 非完全恢复,基于Cancel的恢复(Cancel-based Recovery):可以把数据库恢复到错误发生前的某一状态。 Sqlrecover database until cancel Sqlalter database open resetlogs; (noresetlogs;) 通常执行完resetlogs/noresetlogs要对数据库进行备份 基于Time的恢复(Time-based Recovery):使数据库恢复到某一特定时间。 Sqlrecover database until time 12月-10-2001,19:23:39; sqlalter database op
13、en resetlogs;,9.5 非完全恢复,基于SCN的恢复(change-based Recovery): 使数据库恢复到某一事务前。 事务的具体信息可以通过视图V$LOG_HISTORY获得。 Sql recover database until change 87654321;,Chap 10 逻辑备份与恢复 Please come in,Chap 10 逻辑备份与恢复,Computer Science Department Xiamen University By xiaohua,数据库的逻辑备份即把数据库相关的权限约束等均导出到操作系统文件当中,在两个远程数据库之间进行大量数据传
14、输时也会用到数据的导入和导出。EXPORT工具可以对数据库进行逻辑备份IMPORT工具可以对数据库进行逻辑恢复在本章中主要掌握运用EXPORT AND IMPORT工具进行逻辑备份及恢复运用ORACLE企业管理器对数据库进行备份与恢复(操作演示详见ORACLE 9i系统),EXPORT工具可以对数据库进行逻辑备份,进入命令提示符 exp help=y 可以显示所有的数据导出关键字。,IMPORT工具可以对数据库进行逻辑恢复,IMP help=y 可以显示所有的数据导入关键字,数据库逻辑备份与恢复的实现,C:exp 用户名: 口令 C:imp 用户名: 口令 ,使用企业管理器,实现数据库的备份与恢复 (详见Oracle 9i系统/企业管理器的导出向导),