资源预览内容
第1页 / 共113页
第2页 / 共113页
第3页 / 共113页
第4页 / 共113页
第5页 / 共113页
第6页 / 共113页
第7页 / 共113页
第8页 / 共113页
第9页 / 共113页
第10页 / 共113页
亲,该文档总共113页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第九章 Oracle数据库备份与恢复,本章内容,9.1 数据库常见故障类型 9.2 数据库保护机制 9.3 数据库逻辑备份与恢复 9.4 脱机备份(冷备份) 9.5 联机备份(热备份) 9.6 使用OMS工具的备份与恢复向导 9.7 数据库恢复,DBA的主要职责之一是备份数据库和在数据库发生故障时及时、高效、安全地恢复数据库。 备份方法 冷备份 热备份 逻辑备份(Export/Import) 恢复方法 完全恢复 不完全恢复 RMAN备份恢复等方式,9.1 数据库常见故障类型,系统崩溃或服务器崩溃 用户错误、冲突或者磁盘失效导致的文件丢失 SQL语句失败 网络故障 场地灾难,9.2 数据库保护机制,Oracle数据库保护机制:数据库备份和事务日志。,一般来说,数据库备份可以分为物理备份和逻辑备份 物理备份可分为脱机备份和联机备份。脱机备份又称为冷备份,只能在数据库关闭后进行备份;联机备份又称为热备份,数据库没有关闭,用户还可以使用。 逻辑备份是使用Export实用程序备份,当数据库出现故障,可以使用Oracle的Import实用程序恢复数据库,数据库备份,数据库的事务日志(Transaction Log)是一组操作系统文件,它记录了提交事务所做的数据库修改。 日志主要是保护数据库,在数据库出现故障时执行恢复。 为了防止日志本身的故障,Oracle允许在不同的物理磁盘上维护两个或多个日志的副本。,事务日志,(1)正常工作时,每天晚上备份数据库,包含所有数据文件。 (2)某一天,包含数据库的某个数据文件的磁盘坏了,因此一部分数据不可用(做了磁盘容错的情况例外),因此需要执行数据库恢复。 (3)把有问题的磁盘更换为新的磁盘。 (4)将最近的数据库备份存入新的磁盘中以恢复丢失的数据文件,但是,恢复的数据文件丢失了备份发生后所提交的事务工作。 (5)最后,执行数据库恢复工作。在恢复过程中,Oracle读取事务日志,把过去提交的事务工作重做,使数据库文件成为当前文件。 (6)数据库恢复后,打开数据,供应用程序使用。,举例,磁盘失效后如何保护和恢复数据库 。,归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复数据库,可以保证不丢失任何已提交的数据。 不归档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份)。,ORACLE数据库两种运行方式,9.3 数据库逻辑备份与恢复,数据库逻辑备份:读一个数据库记录集,并以Oracle提供的内部格式写入一个二进制文件中。这些记录的读出与其物理位置无关。 在Oracle中,Export实用程序执行逻辑备份。 使用Oracle的Import实用程序执行数据库恢复。 当用户导入导出时,有相应的权限要求。 在OEM中,当用户连接到Oracle Management Server时,可以使用图形界面执行数据库的导入和导出。,9.3.1 导出,Oracle的实用程序Export 用来读取一个数据库,并把输入写入一个称为导出转储文件(export dump file)的二进制文件。 EXP USERID=username/password PARAMETER=(value1,value2,) 可以通过如下命令来显示参数 EXP HELP=Y,导出方式:Full方式、User方式和Table方式。 完全数据库导出 exp system/manager full=Y constraints=Y file=f:backuptest.dmp 导出用户表 exp user1/password tables=employees file=f:backuptest.dmp exp user1/password tables=(employees,jobs) file=f:backuptest.dmp 导出用户模式 exp user1/password owner=user1 file=test.dmp,Oracle的Import实用程序执行导入,来恢复数据库。Import实用程序读取由Export创建的二进制导出转储文件并执行其中的命令 。 IMP USERID=username/password PARAMETER=(value1,value2,) 可以通过如下命令来显示参数 IMP HELP=Y 导出的数据可以导入到不同的数据库中,甚至可以导入到与生成导出转储文件不同的模式中;可以导入全部或部分已导出的数据 。,9.3.2 导入,导入用户自身所拥有的表 IMP system/ora456 tables=student file=f:backuptest.dmp IMP system/ora456 tables=(student, course) file=f:backuptest.dmp 导入用户模式 imp system/manager FROMUSER=scott TOUSER=system tables=dept file=f:backuptest.dmp,案例1,导出数据库表,用户误操作删除表,执行导入表,恢复数据库 (1)TEST2数据库(System用户,口令为ora456),导出表student,9.3.3 逻辑备份案例,(2)删除表student中的数据,或者将整个表删除,数据已经不存在,或者表被删除,(3)导入表student,恢复数据库,(4)查询表和数据,验证导入是否成功,案例2,导入其他方案的表。将Scott的表dept导入System (1)System下没有Scott的表dept,注意,这不同与查询时使用scott.dept,(2)在system下,导出Scott的表dept,导出文件test2.dmp,(3)将Scott的表dept导入到System中 (4)再次执行步骤(1)中的查询,验证导入成功,9.4 脱机备份(冷备份),脱机备份是最简单的一种数据库备份方式,在数据库关闭后进行备份,用户不能访问数据库,是一种完全备份。 脱机备份一般需要备份如下文件: (1)所有数据文件 (2)所有控制文件 (3)所有联机重做日志 (4)init.ora文件,脱机备份步骤 (1)以DBA或特权用户登录,对于需要的备份文件,用户也可通过下列SQL语句来了解数据文件、重演日志文件及控制文件的相应位置及名称。 SELECT * FROM V$LOGFILE; SELECT * FROM V$DBFILE; SELECT * FROM V$CONTROLFILE;,(2)关闭数据库 SHUTDOWN NORMAL; 或者执行 SHUTDOWN IMMEDIATE;,(3)复制数据文件 用拷贝命令备份全部的数据文件、重做日志文件、控制文件、初始化参数文件等。 简单的处理方法是将数据库所在路径下的文件全部复制备份。在下面实验案例中所用数据库TEST2的目录是:f:oracleoradatatest2,(4)重新启动数据库 STARTUP;,脱机备份的优点: 只需要拷贝文件,速度比较快。 将文件拷贝回去,数据库就可以恢复到某个时间点。 若结合数据库归档模式可以很好地恢复数据库。 维护量相对较少,但安全性相对较高。,脱机备份的缺点: 脱机备份时,数据库必须关闭。 单独使用脱机备份,数据库只能基于某一时间点恢复。 若磁盘空间有限,使用磁带等外设时速度较慢。 脱机备份不能按表或用户恢复。,案例,脱机备份与不完全数据库恢复 脱机备份数据库相应文件,由于误操作,删除了users表空间对象STUDENT表,将备份的数据文件复制到原来的位置,恢复数据库到执行误操作前的状态。以SYSDBA登录。数据字典DBA_TABLES可以查询表所在的表空间。,(1)对象STUDENT,有两条记录,(2)脱机备份 shutdown immediate; 备份数据文件user01.dbf,控制文件,重做日志文件, 或者 直接将f:oracleoradatatest2目录下的文件全部备份。 备份结束重启数据库 startup;,(3)对象student增加一条记录 insert into system.student values(1003,liming,20,CS);,(4)模拟误操作,删除了表STUDENT drop table system.student; commit;,(5)查询对象STUDENT,返回错误信息,(6)关闭数据库 shutdown immediate; (7)复制原先备份的数据文件,控制文件,重做日志等到原来目录下,f:oracleoradatatest2 (8)startup mount;,(9)执行基于取消的恢复,recover database until cancel,(10)以RESETLOGS方式打开数据库,(11)查询对象STUDENT,只有脱机备份的两条记录,备份后增加的记录没有恢复,9.5 联机备份(热备份),联机备份是在数据库运行时进行的备份,用户仍然可以访问数据库,一些关键行业的数据必须运行在7*24模式下,并不适合执行脱机备份,必须使用联机备份。 联机备份要求数据库运行在归档(archivelog)模式下,该方式下,联机重做日志被归档,数据库中所有事务的完整记录由Oracle以循环方式写入联机重做日志文件 。 联机备份一般备份数据文件、控制文件和日志文件。,(1)备份所有数据文件 (2)备份所有归档的重做日志文件 (3)备份一个控制文件 (4)检查发生故障的数据文件,恢复数据文件,联机备份的优点: 可在表空间或数据文件级备份,备份时间短。 备份时数据库仍可使用。 可达到秒级恢复(恢复到某一时间点上)。 可对几乎所有数据库实体作恢复。 恢复快速,大多数情况下恢复不需要关闭数据库。,联机备份的缺点: 不能出错,否则后果严重。 若联机备份不成功,所得结果不可用于时间点的恢复。 因难于维护,所以要特别小心,不允许“以失败而告终”。,案例,联机备份与完全数据库恢复 在表空间APPL_DATA上建立对象COURSE,首先执行联机备份,在COURSE表上加入记录,然后删除数据文件APPL_DATA,最后执行恢复,数据文件重新联机,验证恢复成功。,(1)在归档模式下,在表空间APPL_DATA上建立表COURSE,并插入两条记录,(2)切换日志,查看v$log确认当前日志已经更改 alter system switch logfile; (3)备份控制文件(在本案例中可以不做) alter database backup controlfile to f:backupbackup.ctl; (4)备份数据文件 先将表空间APPL_DATA设置为备份模式 alter tablespace appl_data begin backup; 拷贝表空间的数据文件APPL_DATA.ORA,其他数据文件不变。 copy f:oracleoradatatest2appl_data.ora f:backupappl_data.ora 将表空间APPL_DATA设置为正常模式 alter tablespace appl_data end backup;,(5)在COURSE表上添加记录 insert into course values(30, database, 20, 4);,(6)使表空间脱机,删除数据文件APPL_DATA.ORA alter tablespace appl_data offline; del f:oracleoradatatest2appl_data.ora,(7)将表空间联机,出现错误,提示恢复数据文件,(8)将备份的数据文件复制到原来所在位置,执行数据文件恢复。 copy f:backupappl_data.ora f:oracleoradatatest2appl_data.ora 然后,执行数据文件恢复命令,本例中文件号为
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号