1、11/11/20221Oracle数据库应用数据库应用与开发案例教程与开发案例教程主编 王红 中国水利水电出版社11/11/20222Oracle数据库应用数据库应用与开发案例教程与开发案例教程第十章第十章 数据库备份数据库备份与恢复与恢复11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程3第十章第十章 数据库备份与恢复数据库备份与恢复10.1 Oracle的备份与恢复机制10.2 使用EXP/IMP进行逻辑备份10.3 使用RMAN工具进行数据备份与恢复11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开
2、发案例教程410.1 Oracle的备份与恢复机制的备份与恢复机制l数据库的备份与恢复机制是指防止数据库受损或者受损后进行数据重建的各种策略。备份是将数据库中部分或全部数据复制到转储设备的过程,是数据库处于故障状态时用于重建数据库的重要信息拷贝。当故障发生后利用已有的备份将数据库从故障状态恢复到故障前正常状态的处理过程称为数据库恢复。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程5备份的内容备份的内容1.数据文件l数据文件主要是指表空间中包含的各个物理文件,其中存放了各种系统和用户数据。2.控制文件l控制文件中主要记录了数据库的名称、数据文
3、件和联机日志文件的名称及位置、当前的日志序列号和表空间等信息。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程6备份的内容备份的内容3.重做日志文件 l当用户对数据库执行添加,删除和修改等各种DML操作时,这些修改信息会记录到重做日志文件中。4.服务器参数文件SPFILEl参数文件中记录着数据库名称,控制文件的路径,SGA内存结构,可选的oracle特性和后台进程的配置参数等信息。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程7备份的类型备份的类型l物理备份和逻辑备份l物理备份就是转储数据
4、库中的数据文件、控制文件、归档日志文件和服务器参数文件SPFILE等物理文件。l逻辑备份就是利用工具或命令将用户、表和存储过程等数据库对象导出到一个二进制文件中。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程8备份的类型备份的类型2.全数据库备份和部分数据库备份 l全数据库备份是经常进行的数据库备份方式,备份的内容包含控制文件以及属于该数据库的所有数据文件,但不包括联机重做日志文件。l部分数据库备份是指只备份某段时间内数据库的某些组成部分,如表空间备份、数据文件备份或控制文件备份等。11/11/2022Java Web开发技术数据库应用与开
5、发技术数据库应用与开发案例教程开发案例教程9备份的类型备份的类型3.冷备份(脱机备份)和热备份(联机备份)l冷备份又称为脱机备份或者一致备份,是指数据库关闭时,即数据文件或表空间脱机后进行的备份。l热备份又称为联机备份或者不一致备份,是指在数据库打开状态下进行的备份,属于不一致备份。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程10备份的类型备份的类型4.完全备份与增量备份 l完全备份是指将数据文件的所有数据块全部备份出来。l增量备份是指在创建上一次备份后,对从特定时间点以来发生变化的数据块进行的备份。11/11/2022Java Web开
6、发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程11归档模式与非归档模式归档模式与非归档模式 l进行数据库备份时,归档模式下可以进行完全备份和部分备份,备份可以是一致性备份也可以是不一致性备份,也可以进行热备份和冷备份。在非归档模式下只能进行完全的、一致性的备份。【例题【例题10-1】将数据库ZCGL由非归档模式设置为归档模式。【例题【例题10-2】将数据库ZCGL由归档模式设置为非归档模式。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程12使用使用EXP/IMP进行逻辑备份进行逻辑备份 lEXPORT和IMPORT数据导入/
7、导出是Oracle提供的两个命令行工具,简写形式为EXP和IMP,主要用来完成Oracle数据库的数据导入导出和逻辑备份与恢复等工作。lEXP/IMP特别适用于小型数据库的转储。EXP命令的主要功能是将数据库对象或整个数据库导出到一个二进制文件中。IMP命令的主要功能是根据系统的需要将备份的二进制文件导入到数据库中。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程13 EXP导出数据导出数据 l1.查看EXP命令的常用参数C:Documents and SettingsAdministratorEXP HELP=Yl2.EXP命令的启动方式和
8、导出模式。表模式 用户模式 完全模式 表空间模式 11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程14 EXP导出数据导出数据 l3.应用举例【例题【例题10-3】以完全模式导出将整个数据库ZCGL导出到E:BAK_ZCGL文件夹下,导出的文件名为zcgl_full.dmp。【例题【例题10-4】以用户模式,导出ZCGL数据库用户方案zcgl_oper的所有对象。【例题【例题10-5】以表模式导出ZCGL数据库中的下列表:S C O T T.e m p、S C O T T.d e p t 和zcgl_oper.zichanmingxi。11/
9、11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程15 IMP导入数据导入数据 l1.IMP命令的启动方式和导入模式 1)完全模式:2)表空间模式 3)用户模式 4)表模式 l2.查看IMP命令的常用参数lSQL HOST IMP HELP=Y11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程16 IMP导入数据导入数据 l3.应用举例【例题【例题10-6】用例题10-5的导出文件para_full.dat,将用户scott的表dept和emp导入到用户hr模式中。【例题【例题10-7】利用例题10-
10、4中的导出文件zcgl_oper_schema.dmp,将zcgl_oper用户模式下的表导入到yh02模式下。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程17恢复管理器恢复管理器RMAN l恢复管理器RMAN(Recovery Manager)是Oracle推荐的以客户机/服务器方式运行的高效备份和恢复工具,在RMAN环境中利用RMAN命令可以完成所有的备份与恢复操作。l1.RMAN组件1)RMAN命令执行器(RMAN Executable)2)目标数据库(Target Database)3)RMAN恢复目录(RMAN Recover
11、Catalog)4)RMAN档案数据库(RMAN Repository)5)恢复目录数据库(RMAN Catalog Database)11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程18 RMAN常用命令常用命令 11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程19 RMAN常用命令常用命令 l2.启动和退出RMAN 的命令 l1)不使用恢复目录时使用RMAN时必须以隐式的SYSDBA身份建立RMAN客户端与目标数据库的连接。lCONNECT TARGET 连接标识符 目标数据库l2)连接
12、到恢复目录数据库恢复目录是RMAN用来存储备份信息的一种存储对象,RMAN根据恢复目录中的信息从目标数据库的控制文件中获取信息,达到维护备份信息的目的。【例题【例题10-8】在RMAN中创建恢复目录,并利用恢复目录与目标数据库建立连接。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程20 RMAN常用命令常用命令 l3.分配通道命令11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程21 RMAN常用命令常用命令 l3.分配通道命令在RMAN中分配通道有两种方式:自动分配通道和手工分配通道。AL
13、LOCATE CHANNEL为手工分配通道的方式,分配通道命令格式如下所示:ALLOCATE CHANNEL 通道名DEVICE TYPE=设备描述符11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程22 RMAN常用命令常用命令 l4.改变数据库命令ALTER DATABASE OPEN|MOUNTl5.配置命令RMAN SHOW ALL;【例题【例题10-9】在归档模式下备份整个数据库ZCGL,请为此次备份手动分配三个通道。备份文件名由系统自动生成。【例题【例题10-10】将例题10-9中通道设备类型修改为sbt,为RMAN分配两个磁带通道
14、,并将控制文件的备份状态设置为自动备份。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程23 RMAN常用命令常用命令 l6.启动和关闭数据库命令11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程24 RMAN常用命令常用命令 l6.启动和关闭数据库命令l2)关闭数据库命令不退出RMAN的情况下关闭ORACLE数据库,命令如下所示:SHUTDOWN ORMAL|ABORT|TRANSACTIONAL|IMMEDIATE 11/11/2022Java Web开发技术数据库应用与开发技术数据库应用
15、与开发案例教程开发案例教程25 RMAN备份应用举例备份应用举例 l1.BACKUP命令l使用RMAN进行备份的命令格式如下所示:BACKUP FULL|INCREMENTAL(backup_type option);说明:1)FULL:表示完全备份;2)INCREMENTAL:表示增量备份;3)backup_type:备份对象 11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程26 RMAN备份应用举例备份应用举例 l2.备份整个数据库【例题【例题10-11】在归档模式下备份整个数据库zcgl。【例题【例题10-12】在非归档模式下备份整个数
16、据库zcgl。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程27 RMAN备份应用举例备份应用举例 l3.备份表空间在RMAN中对一个或者多个表空间进行备份时,首先启动RMAN连接到目标数据库,在RMAN提示符下输入BACKUP TABLESPACE命令即可进行备份,此时目标数据库需要是加载或者打开状态。【例题【例题10-13】备份数据库ZCGL的表空间SYSTEM。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程28 RMAN备份应用举例备份应用举例 l4.备份数据文件l当数据库运行在归
17、档模式下时,使用RMAN的BACKUP DATAFILE命令对数据文件或数据文件镜像复制进行备份。【例题【例题10-14】备份数据库ZCGL的数据文件。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程29 RMAN备份应用举例备份应用举例 l5.备份控制文件l使用BACKUP命令进行数据库备份时,如果在命令中添加了INCLUDING CURRENT CONTROLFILE子句,系统在备份数据文件的同时会将控制文件一同备份到备份集中。如果只需要备份数据库的控制文件,可以使用BACKUP CURRENT CONTROLFILE命令。【例题【例题1
18、0-15】备份数据库ZCGL的控制文件。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程30 RMAN备份应用举例备份应用举例 l6.进行增量备份l增量备份是一个在基线备份基础上进行的备份。进行增量备份时,RMAN会读取整个数据文件,然后只备份那些与前一次备份相比发生变化的数据块。RMAN既可以对整个数据库进行增量备份,也可以只对数据文件或表空间进行增量备份。【例题【例题10-16】使用增量备份,建立数据库ZCGL的表空间zcgl_tbs1的0级备份和1级备份。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案
19、例教程开发案例教程31 RMAN恢复恢复 l当数据库文件出现介质错误时,可以使用RMAN将数据库恢复到某个状态。l1.恢复数据库【例题【例题10-17】请对数据库ZCGL进行一次完全介质修复。l2.恢复数据文件【例题【例题10-18】对数据库ZCGL的表空间zcgl_tbs1进行恢复操作 11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程32 RMAN恢复恢复 l当数据库文件出现介质错误时,可以使用RMAN将数据库恢复到某个状态。l1.恢复数据库【例题【例题10-17】请对数据库ZCGL进行一次完全介质修复。l2.恢复数据文件【例题【例题10-18】对数据库ZCGL的表空间zcgl_tbs1进行恢复操作 l3.恢复重做日志文件【例题【例题10-19】对数据库ZCGL进行重做日志恢复操作。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程33本章小结本章小结本章主要介绍了如何使用EXP/IMP进行逻辑备份,以及如何使用RMAN工具进行数据库的备份与恢复。11/11/2022Java Web开发技术数据库应用与开发技术数据库应用与开发案例教程开发案例教程34本章结束,谢谢大家!本章结束,谢谢大家!休息一会儿。休息一会儿。