ORACLEOracle数据库备份与恢复鲁东大学信息与电气工程学院主要内容数据库备份概述物理备份物理恢复逻辑备份逻辑恢复备份与恢复的必要性数据库的不一致状态如果数据库系统在运行中发生故障,有些提交的事务对数据库所做的修改只是部分写入物理数据库,这时数据库就处于不一致的状态。数据库备份与恢复的目的数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分或全部丢失。数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。备份与恢复的基本概念备份就是数据库信息的一个拷贝。对于Oracle而言,这些信息包括控制文件、数据文件以及重做日志文件等。备份类型物理备份,是指通过将重要的物理文件备份起来,以避免物理故障造成的损失。逻辑备份,通常利用导出工具导出到二进制文件。在实际应用中,应该以物理备份为主,逻辑备份作为补充。恢复类型完全恢复从一个物理备份中恢复一个已丢失的数据文件的拷贝,然后根据从此刻起的所有归档日志文件与重做日志文件进行恢复,这样能够得到从备份以来发生的所有变化,这种恢复称为完全恢复。不完全恢复如果归档日志文件有丢失的情况发生,那么数据库只能恢复到这个归档日志文件以前的状态,没有得到从备份以来的所有变化,这种恢复称为不完全恢复。备份原则数据库文件备份应使用单独磁盘或磁盘组保存。增加、重命名、删除日志文件和数据文件,数据库结构改变时,控制文件都应备份。应保持控制文件的多个拷贝,控制文件的拷贝应置于不同磁盘控制器下的不同磁盘设备上。联机日志文件应为多个,每个组至少应保持两个成员。日志组的多个成员应该分散保存在不同磁盘上。归档日志文件及其拷贝最好不要与数据库文件或联机重做日志文件存储在同一个物理磁盘上。主要内容数据库备份概述物理备份物理恢复逻辑备份逻辑恢复物理备份物理备份分为冷备份与热备份。冷备份又称为脱机备份。是在数据库保持关闭状态下,把数据库的配置文件、数据文件、控制文件、重做日志文件和归档日志文件复制到其他地方保存起来。热备份又称为联机备份或者归档备份。是在数据库保持开放状态下对数据库进行备份,热备份的好处是不必关闭数据库,不影响数据库系统的正常运行,但是热备份的操作要比冷备份复杂。冷备份与恢复冷备份关闭数据库实例,用操作系统的实用工具备份数据文件。如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。关闭数据库,开始备份故障时刻备份恢复重装备份副本恢复丢失数据备份完成冷备份如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。冷备份步骤1、关闭数据库2、备份所有相关的数据库文件(物理拷贝)数据文件控制文件Redo日志归档的Redo日志初始化文件冷备份的恢复非归档模式下恢复关闭数据库用备份文件覆盖原有文件重新启动数据库热备份热备份当数据库正在运行时进行的数据库备份过程。当数据库处在归档日志模式下,可使用热备份。有些关键数据库应用系统可能需要数据库每天24小时,每周7天的运行,就应该使用热备份。热备份的优点:备份时,数据库可以是打开的。可用来全面恢复数据库(可用来在任何一点上恢复)。设置归档模式SHUTDOWNSTARTUPMOUNTALTERDATABASEARCHIVELOGALTERDATABASEOPENALTERSYSTEMSETlog_archive_start=TRUEALTERSYSTEMSETlog_archive_dest=e:\archives热备份:备份数据文件查询视图v$datafile和视图v$tablespace决定需要备份的数据文件;将某个表空间设为备份模式;ALTERTABLESPACEnameBEGINBACKUP;使用操作系统命令将该表空间所有数据文件备份;结束该表空间的备份模式ALTERTABLESPACEnameENDBACKUP;对数据库的每个表空间,执行步骤3、4、5操作。ALTERDATABASEBACKUPCONTROLFILETO‘d:\back\control.bkp’;ALTERDATABASEBACKUPCONTROLFILETOTRACE;热备份:备份控制文件归档当前的联机日志文件备份归档日志文件备份初始化参数文件热备份:备份其他文件热备份下的数据库恢复利用热备份恢复语法RECOVER[AUTOMATIC][FROM'location'][DATABASE|TABLESPACEtspname|DATAFILEdfname]数据文件级别的恢复将受损的数据文件脱机ALTERDATAFILEdatafileOFFLINE用备份的数据文件覆盖受损的数据文件恢复数据文件RECOVERDATAFILEdatafile;将数据文件联机ALTERDATAFILEdatafileONLINE;将数据库修改为打开状态ALTERDATABASEOPEN;表空间级别的恢复用备份的表空间对应的所有数据文件复制到原来的目录,覆盖受损的数据文件。恢复表空间RECOVERTABLESPACEtablespacename;将数据库修改为打开状态ALTERDATABASEOPEN;数据库完全恢复步骤确保数据库已经关闭(使用ABORT操作)SHUTDOWNABORT;用最后的数据库备份恢复数据文件。如果当前控制文件丢失,使用镜像版本复制到已修好的磁盘中,或者重新创建控制文件。还原所有已归档的日志。如果服务器参数文件损坏,则利用备份的初始化参数文件创建服务器参数文件。CREATESPFILEFROMPFILE;数据库完全恢复步骤(续)将数据库启动到MOUNT状态,STARTUPMOUNT;使用RECOVER命令进行恢复。RECOVERDATABASE;将数据库修改为打开状态:ALTERDATABASEOPEN;主要内容数据库备份概述物理备份物理恢复逻辑备份逻辑恢复逻辑备份导出是将数据库中数据备份到一个称为“导出转储文件”的二进制系统文件中。使用EXP命令3种类型:完全型(CompleteExport):对所有表执行全数据库导出或仅对上次导出后修改过的表执行全数据库导出。积累型(Cumulative):备份上一次完全备份后改变的数据。增量型(Incremental):备份上一次备份后改变的数据。逻辑备份—导出模式表导出表定义、数据、授权、索引、约束用户导出指定用户模式下的所有表定义、数据、授权、索引、约束全数据库导出数据库中所有表定义、数据、授权、索引、约束EXPORT命令语法:expkeyword=(value1,value2,…,valuen)使用方式交互模式命令行模式参数文件模式举例:expscott/tigerTABLES=(emp,dept)rows=yfile=exptable.dmpexpsystem/managerOWNER=scottfile=d:\exptable.dmpexpsystem/managerFULL=yinctype=cumulativefile=d:\exptable.dmpEXPORT命令选项EXPORT命令选项(续)【例】以交互模式进行数据库XSCJ的表XS的导出。C:\exp/*在命令提示符下输入EXP,然后回车*/Export:Release10.2.0.1.0–Productionon星期四6月815:18:182006CopyrightC1982,2005,Oracle.Allrightsreserved.用户名:admin/*输入用户名和口令*/口令:连接到:OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0–ProductionWiththePartitioning,OLAPandDataMiningoptions输入数组提取缓冲区大小:4096/*这里使用默认值,直接回车即可*/导出文件:EXPDAT.DMPXS.DMP/*输入导出文件名称*/(1)E(完整的数据库),(2)U(用户)或(3)T(表):(2)UT/*选择导出的类型,选择表*/导出表数据(yes/no):yes/*使用默认设置,导出表数据*/压缩区(yes/no):yes/*使用默认设置,压缩区*/已导出ZHS16GBK字符集和AL16UTF16NCHAR字符集即将导出指定的表通过常规路径…要导出的表(T)或分区(T:P):(RETURN退出)XS/*在此输入要导出的表*/…正在导出表XS22行被导出要导出的表(T)或分区(T:P):(RETURN以退出)/*导出表XS完毕,按回车*/导出实例主要内容数据库备份概述物理备份物理恢复逻辑备份逻辑恢复逻辑恢复逻辑恢复通过Oracle的Import实用程序导入。可以导入全部或部分数据使用IMP命令使用方式交互方式命令方式Import命令选项Import命令选项(续)IMPORT命令语法:impkeyword=(value1,value2,…,valuen)举例:impscott/tigerTABLES=(emp,dept)rows=yfile=exptable.dmpimpsystem/managerFROMUSER=scottfile=d:\exptable.dmpimpsystem/managerfile=d:\exptable.dmp【例】以交互模式进行XSCJ数据库中XS表的导入。导入实例D:\imp/*在命令提示符下输入IMP,然后回车*/Import:Release10.2.0.1.0–Productionon星期四6月815:38:182006CopyrightC1982,2005Oracle.Allrightsreserved.用户名:admin/*输入用户名和口令*/口令:连接到:OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0–ProductionWiththePartitioning,OLAPandDataMiningoptions导入文件:EXPDAT.DMPXS.DMP/*输入要导入的导出转储文件名*/输入插入缓冲区大小(最小为8192)30720/*使用默认设置,然后回车*/经由常规路径导出由EXPORT:V10.02.00创建的文件已经完成ZHS16GBK字符集和AL16UTF16NCHAR字符集中的导入只列出导入文件的内容(yes/no):no导入实例(续)由于对象已存在,忽略创建错误(yes/no):no导入权限(yes/no):yes导入表数据(yes/no):yes导入整个导出文件(yes/no):no用户名:admin/*输入用户名,导入的数据将会在此用户模式下创建*/输入表(T)或分区(T:P)名称。空列表表示用户的所有表输入表(T)或分区(T:P)名称或。如果完成:XS/*输入要创建的表的名称*/输入表(T)或分区(T:P)名称或。如果完成:正在将ADMIN的对象导入到ADMIN…正在导入表“XS”22行被导入准备启用约束条件…成功终止导入,但出现警告。逻辑备份与恢复优点:能容易快速地进行一个或更多单个表或行恢复。升级数据库时,更加方便。跨平台移动数据库时,更加方便。数据库可一直运行。目的:挽救由用户或应用错误造成的损失备份策略比较冷备份或热备份是对数据库物理文件的冷备份或热备份。逻辑备份是对特定的逻辑对象的备份。冷备份或热备份用于数据库发生介质故障时的恢复。逻辑备份用于用户或应用偶而删除一行和数据库表造成的数据丢失的恢复。逻辑备份不能代替冷备份或热备份。在实际应用中,应该以物理备份为主,逻辑备份作为补充.小结数据库备份概述逻辑备份逻辑恢复物理备份物理恢复ThankYou!