Oracle数据库备份与恢复实例讲解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Oracle数据库备份与恢复本章内容1数据库常见故障类型2数据库保护机制3数据库逻辑备份与恢复4脱机备份(冷备份)5联机备份(热备份)6使用OMS工具的备份与恢复向导7数据库恢复DBA的主要职责之一是备份数据库和在数据库发生故障时高效、安全地恢复数据库。备份方法冷备份热备份逻辑备份(Export/Import)恢复方法完全恢复不完全恢复RMAN备份恢复等方式1数据库常见故障类型系统崩溃或服务器崩溃用户错误、冲突或者磁盘失效导致的文件丢失SQL语句失败网络故障场地灾难2数据库保护机制Oracle数据库保护机制:数据库备份和事务日志。Oracle数据库事务日志数据库备份数据库备份一般来说,数据库备份可以分为物理备份和逻辑备份。物理备份可分为脱机备份和联机备份。脱机备份又称为冷备份,只能在数据库关闭后进行备份;联机备份又称为热备份,数据库没有关闭,用户还可以使用。逻辑备份是使用Export实用程序备份,当数据库出现故障,可以使用Oracle的Import实用程序恢复数据库。事务日志数据库的事务日志(TransactionLog)是一组操作系统文件,它记录了提交事务所做的数据库修改。日志主要是保护数据库,在数据库出现故障时执行恢复。为了防止日志本身的故障,Oracle允许在不同的物理磁盘上维护两个或多个日志的副本。举例,磁盘失效后如何保护和恢复数据库。(1)正常工作时,每天晚上备份数据库,包含所有数据文件。(2)某一天,包含数据库的某个数据文件的磁盘坏了,因此一部分数据不可用(做了磁盘容错的情况例外),因此需要执行数据库恢复。(3)把有问题的磁盘更换为新的磁盘。(4)将最近的数据库备份存入新的磁盘中以恢复丢失的数据文件,但是,恢复的数据文件丢失了备份发生后所提交的事务工作。(5)最后,执行数据库恢复工作。在恢复过程中,Oracle读取事务日志,把过去提交的事务工作重做,使数据库文件成为当前文件。(6)数据库恢复后,打开数据,供应用程序使用。ORACLE数据库两种运行方式归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复数据库,可以保证不丢失任何已提交的数据。不归档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份)。3数据库逻辑备份与恢复数据库逻辑备份:读一个数据库记录集,并以Oracle提供的内部格式写入一个二进制文件中。这些记录的读出与其物理位置无关。在Oracle中,Export实用程序执行逻辑备份。使用Oracle的Import实用程序执行数据库恢复。当用户导入导出时,有相应的权限要求。在OEM中,当用户连接到OracleManagementServer时,可以使用图形界面执行数据库的导入和导出。3.1导出Oracle的实用程序Export用来读取一个数据库,并把输入写入一个称为导出转储文件(exportdumpfile)的二进制文件。EXPUSERID=username/passwordPARAMETER=(value1,value2,..)可以通过如下命令来显示参数EXPHELP=Y导出方式:Full方式、User方式和Table方式。完全数据库导出expsystem/managerfull=Yconstraints=Yfile=f:\backup\test.dmp导出用户表expuser1/passwordtables=employeesfile=f:\backup\test.dmpexpuser1/passwordtables=(employees,jobs)file=f:\backup\test.dmp导出用户模式expuser1/passwordowner=user1file=test.dmp一旦数据已经导出,就可以通过Oracle的Import实用程序执行导入,来恢复数据库。Import实用程序读取由Export创建的二进制导出转储文件并执行其中的命令。IMPUSERID=username/passwordPARAMETER=(value1,value2,..)可以通过如下命令来显示参数IMPHELP=Y导出的数据可以导入到不同的数据库中,甚至可以导入到与生成导出转储文件不同的模式中;可以导入全部或部分已导出的数据。3.2导入导入用户自身所拥有的表IMPsystem/ora456tables=studentfile=f:\backuptest.dmpIMPsystem/ora456tables=(student,course)file=f:\backuptest.dmp导入用户模式impsystem/managerFROMUSER=scottTOUSER=systemtables=deptfile=f:\backup\test.dmp案例1,导出数据库表,用户误操作删除表,执行导入表,恢复数据库(1)TEST2数据库(System用户,口令为ora456),导出表student3.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)中的查询,验证导入成功4脱机备份(冷备份)脱机备份是最简单的一种数据库备份方式,在数据库关闭后进行备份,用户不能访问数据库,是一种完全备份。脱机备份一般需要备份如下文件:(1)所有数据文件(2)所有控制文件(3)所有联机重做日志(4)init.ora文件脱机备份步骤(1)以DBA或特权用户登录,对于需要的备份文件,用户也可通过下列SQL语句来了解数据文件、重演日志文件及控制文件的相应位置及名称。SELECT*FROMV$LOGFILE;SELECT*FROMV$DBFILE;SELECT*FROMV$CONTROLFILE;(2)关闭数据库SHUTDOWNNORMAL;或者执行SHUTDOWNIMMEDIATE;(3)复制数据文件用拷贝命令备份全部的数据文件、重做日志文件、控制文件、初始化参数文件等。简单的处理方法是将数据库所在路径下的文件全部复制备份。在下面实验案例中所用数据库TEST2的目录是:f:\oracle\oradata\test2(4)重新启动数据库STARTUP;脱机备份的优点:只需要拷贝文件,速度比较快。将文件拷贝回去,数据库就可以恢复到某个时间点。若结合数据库归档模式可以很好地恢复数据库。维护量相对较少,但安全性相对较高。脱机备份的缺点:脱机备份时,数据库必须关闭。单独使用脱机备份,数据库只能基于某一时间点恢复。若磁盘空间有限,使用磁带等外设时速度较慢。脱机备份不能按表或用户恢复。案例,脱机备份与不完全数据库恢复脱机备份数据库相应文件,由于误操作,删除了users表空间对象STUDENT表,将备份的数据文件复制到原来的位置,恢复数据库到执行误操作前的状态。以SYSDBA登录。数据字典DBA_TABLES可以查询表所在的表空间。(1)对象STUDENT,有两条记录(2)脱机备份shutdownimmediate;备份数据文件user01.dbf,控制文件,重做日志文件,或者直接将f:\oracle\oradata\test2目录下的文件全部备份。备份结束重启数据库startup;(3)对象student增加一条记录insertintosystem.studentvalues(‘1003’,’liming’,20,’CS’);(4)模拟误操作,删除了表STUDENTdroptablesystem.student;commit;(5)查询对象STUDENT,返回错误信息(6)关闭数据库shutdownimmediate;(7)复制原先备份的数据文件,控制文件,重做日志等到原来目录下,f:\oracle\oradata\test2(8)startupmount;(9)执行基于取消的恢复,recoverdatabaseuntilcancel(10)以RESETLOGS方式打开数据库(11)查询对象STUDENT,只有脱机备份的两条记录,备份后增加的记录没有恢复5联机备份(热备份)联机备份是在数据库运行时进行的备份,用户仍然可以访问数据库,一些关键行业的数据必须运行在7*24模式下,并不适合执行脱机备份,必须使用联机备份。联机备份要求数据库运行在归档(archivelog)模式下,该方式下,联机重做日志被归档,数据库中所有事务的完整记录由Oracle以循环方式写入联机重做日志文件。联机备份一般备份数据文件、控制文件和日志文件。(1)备份所有数据文件(2)备份所有归档的重做日志文件(3)备份一个控制文件(4)检查发生故障的数据文件,恢复数据文件联机备份的优点:可在表空间或数据文件级备份,备份时间短。备份时数据库仍可使用。可达到秒级恢复(恢复到某一时间点上)。可对几乎所有数据库实体作恢复。恢复快速,大多数情况下恢复不需要关闭数据库。联机备份的缺点:不能出错,否则后果严重。若联机备份不成功,所得结果不可用于时间点的恢复。因难于维护,所以要特别小心,不允许“以失败而告终”。案例,联机备份与完全数据库恢复在表空间APPL_DATA上建立对象COURSE,首先执行联机备份,在COURSE表上加入记录,然后删除数据文件APPL_DATA,最后执行恢复,数据文件重新联机,验证恢复成功。(1)在归档模式下,在表空间APPL_DATA上建立表COURSE,并插入两条记录(2)切换日志,查看v$log确认当前日志已经更改altersystemswitchlogfile;(3)备份控制文件(在本案例中可以不做)alterdatabasebackupcontrolfileto´f:\backup\backup.ctl´;(4)备份数据文件先将表空间APPL_DATA设置为备份模式altertablespaceappl_databeginbackup;拷贝表空间的数据文件APPL_DATA.ORA,其他数据文件不变。copyf:\oracle\oradata\test2\appl_data.oraf:\backup\appl_data.ora将表空间APPL_DATA设置为正常模式altertablespaceappl_dataendbackup;(5)在COURSE表上添加记录insertintocoursevalues(´30´,´database´,´20´,4);(6)使表空间脱机,删除数据文件APPL_DATA.ORAaltertablespaceappl_dataoffline;delf:\oracle\oradata\test2\appl_data.ora(7)将表空间联机,出现错误,提示恢复数据文件(8)将备份的数据文件复制到原来所在位置,执行数据文件恢复。copyf:\backup\appl_data.oraf:\oracle\oradata\test2\appl_data.ora然后,执行数据文件恢复命令,本例中文件号为11recoverdatafile11;(9)联机表空间(10)查询对象COURSE表,确认联机备份恢复成功,联机备份前的数据和备份后新增加的数据都存在6使用OMS工具的备份与恢复向导6.1Oracle管理服务器的配置使用备份向导实现联机备份与恢复,需要登录到Oracle管理服务器OMS。需要先配置Oracle管理服

1 / 112
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功