收藏 分享(赏)

备份和恢复.ppt

上传人:天天快乐 文档编号:1358467 上传时间:2018-07-02 格式:PPT 页数:74 大小:397.50KB
下载 相关 举报
备份和恢复.ppt_第1页
第1页 / 共74页
备份和恢复.ppt_第2页
第2页 / 共74页
备份和恢复.ppt_第3页
第3页 / 共74页
备份和恢复.ppt_第4页
第4页 / 共74页
备份和恢复.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、备份和恢复,主要内容,备份恢复闪回,备份和恢复概述,数据库的备份与恢复是保证数据库安全的一项重要内容,也是数据库管理员的重要职责。数据丢失的分类逻辑丢失:用户错误操作和应用程序错误造成物理丢失:数据库物理结构破坏,备份:复制数据,物理备份将数据库文件从一个位置复制到另一个位置。需要进行备份的数据库文件包括数据文件、归档日志文件和控制文件,以及其他文件逻辑备份利用Export等工具通过执行SQL语句的方式将数据库中的对象及数据读取出来,然后再写入到二进制文件中。在需要恢复时,可以利用import等工具从这个二进制文件中读取数据,并通过执行SQL语句的方式将它们写入数据库中。,联机备份和脱机备份联

2、机备份(热备份):在数据库打开并可操作时进行的脱机备份(冷备份):在数据库完全关闭时进行的,备份,完全备份和部分备份完全备份:对整个数据库进行备份部分备份:分别对表空间、数据文件、控制文件、归档重做日志文件进行备份,一致性备份和不一致性备份一致性备份在数据库以干净方式(normal, immediate, transactional方式)关闭后,对一个或多个数据文件进行备份利用一致备份进行数据库恢复时,只需利用备份修复损坏的数据文件,而不需要对修复后的数据文件应用重做日志进行恢复不一致备份在数据库打开或非正常关闭(abort方式)后对对一个或多个数据文件进行备份利用不一致备份进行数据库恢复时,

3、在修复损坏的数据文件之后,需要对修复后的数据文件应用重做日志进行恢复,恢复,指恢复数据库本身,即在故障引起数据库瘫痪以及状态不一致之后,将数据库恢复到某个正确状态或一致状态。数据库能否恢复,主要取决于在系统其他位置是否冗余地保存了当前数据库所包含的所有信息。修复(restore) (物理)利用备份的数据库文件来替换已经损坏的数据库文件,主要在操作系统级别上完成。恢复(recover) (逻辑)利用重做日志文件或数据库的增量备份文件重新建立已经丢失的数据,主要在数据库级别上完成。,介质恢复发生介质损坏的数据库(数据库文件丢失或损坏),需要进行介质恢复通过修复可以弥补数据库的物理缺失,即数据库文件

4、的损坏与丢失通过恢复可以弥补数据库的逻辑缺失,即数据库中逻辑数据的损坏与丢失崩溃恢复和实例恢复在Oracle数据库异常关闭的情况下(不存在数据文件的丢失或损坏)的情况下,Oracle会自动进行崩溃恢复和实例恢复,完全介质恢复和不完全介质恢复完全介质恢复:利用所有可用的归档或联机重做日志将数据库恢复到故障发生时的状态不完全介质恢复:利用部分归档或联机重做日志将数据库恢复到非当前时刻的状态,Oracle故障,有许多类型的错误与故障可能导致Oracle无法正常运行在进行数据库恢复之前,首先需要确定引发数据库错误的故障类型对于不同类型的错误和故障,DBA需要采取不同的备份和恢复策略在Oracle数据库

5、环境中,主要会发生以下几类需要进行恢复的错误和故障语句错误进程故障网络故障用户错误实例故障介质故障,语句故障,处理SQL语句时,出现逻辑错误出现语句错误时,Oracle Server(或操作系统)将返回给用户一些错误代码和错误信息通过查看错误代码和错误消息,应用开发人员和DBA可以确定错误原因,并解决这些错误语句故障不需要DBA采取任何干预措施,产生错误的SQL语句会被Oracle自动回退数据库不会因为语句故障而产生任何错误或不一致的状态,常见的语句故障,应用逻辑错误主要指SQL语句的编写错误解决:由应用开发人员解决输入错误数据用户试图输入违反约束规则的错误数据解决:应该仔细核对要输入的数据执

6、行未授权的操作超出空间配额解决:DBA执行:alter user smith quota 100M on users;表空间无足够空间解决:DBA扩展表空间:,用户进程故障,指用户进程在运行过程中的异常情况当出现用户进程错误时,DBA不需要进行任何干预,后台进程PMON可以自动检测被意外中止的用户进程,回退该进程未完成的事务,并且释放它在服务器端所占用的资源和锁用户进程错误主要有以下几种情况用户执行了断开连接的异常操作用户进程被意外终止,如重启了客户端或内存例外DBA终止了服务器进程,网络故障,当出现网络失败时,不需要DBA进行干预,Oracle Server可以自动处理,例程故障,例程故障主

7、要有以下几种情况电源断电硬件故障,如CPU故障、内存损坏某个必需的后台进程(DBWR、LGWR、PMON、SMON、CKPT)出现故障例程故障类似于执行shutdown abort命令关闭数据库,在解决了硬件问题和电源断电等问题后,DBA只需执行startup命令启动例程和数据库就可以了。,用户错误,drop table 误操作trucate table误操作DML误操作,逻辑备份,利用工具expdp将数据库部分或全部对象的结构及其数据导出并存储到一个二进制(.dmp)文件中使用Expdp的权限:默认情况下,只能导出自己方案的对象如果要导出其他方案中的对象,需要被授予exp_full_data

8、base角色,准备工作,在使用Expdp,Impdp程序之前需要创建DIRECTORY对象,并将该对象的READ,WRITE权限授予用户。例如: CREATE OR REPLACE DIRECTORY mydir AS D:ORACLEBACKUP;GRANT READ,WRITE ON DIRECTORY mydir TO SCOTT;如果用户要导出或导入非同名模式的对象,还需要具有EXP_FULL_DATABASE和IMP_FULL_DATABASE权限。例如: GRANT EXP_FULL_DATABASE, IMP_FULL_DATABASE TO SCOTT;,Expdp的四种方式,

9、(1)命令行参数方式C:expdp 用户名/口令 参数=值 参数=值 (2)参数文件方式C:expdp 用户名/口令 parfile=参数文件参数文件的内容 参数=值 参数=值 参数=值(3)通过OEM调用,常用参数的含义,USERID指定执行导出操作的用户名、口令和连接字符串注意:当以特权身份导出时,必须用单引号引住用户名和口令,如userid=sys/口令 as sysdbaFULL指定数据库导出模式,默认为N。当设置该选项为Y时,导出除sys外的所有其他方案的对象BUFFER指定在提取数据时缓冲区的大小。它决定了导出操作每次提取的记录行数OWNER指定用户导出模式,TABLES指定导出表

10、GRANTS指定是否要导出对象权限信息ROWS指定是否指定导出表行数据,默认值为Y。为N时,指导出表结构。PARFILE参数文件的名称CONSTRAINTS指定是否导出表的约束条件,默认值为Y,LOG用于指定导出日志文件的名称例如:exp scott/tiger tables=emp file=a.dmp log=a.logTRIGGER指定是否导出触发器QUERY指定where条件子句,从而导出部分数据。例:exp scott/tiger tables=emp file=a.dmp query=WHERE deptno=10,导出,表导出C:expdp scott/tiger DIRECTO

11、RY=dumpdir DUMPFILE=emp_dept.dmp TABLES=emp,dept,导出,模式导出C:expdp scott/tiger DIRECTORY=dumpdir DUMPFILE=scott.dmp SCHEMAS=scott,导出,表空间导出C:expdp scott/tiger DIRECTORY=dumpdir DUMPFILE=tsp.dmp TABLESPACES=example,users,导出,整个数据库导出C:expdp scott/tiger DIRECTORY=dumpdir DUMPFILE=expfull.dmp FULL=Y,导出,按条件查询

12、导出C:expdp scott/tiger DIRECTORY=dumpdir DUMPFILE=exp2.dmp TABLES=emp QUERY=emp:WHERE deptno=10 AND sal2000,逻辑恢复,利用导入工具impdp将备份的.dmp文件中的信息导入到数据库中,实现逻辑恢复,物理备份,脱机备份(冷备份):在数据库完全关闭时进行的联机备份(热备份):在数据库打开时进行的,脱机备份,步骤:关闭数据库(shutdown)复制所有数据文件和控制文件到备份目录复制初始化参数文件和口令文件到备份目录(可选)启动数据库(startup)实现的是一致性备份,联机备份,数据库必须运行

13、在归档模式下修改数据库的归档模式,步骤:SQLshutdown immediateSQLstartup mountSQLalter database archivelog;SQLalter database open;联机备份实现的是非一致性备份,按表空间进行联机备份,设置表空间进入备份状态SQL alter tablespace users begin backup;利用操作系统对表空间的所有数据文件进行备份C: copy c:oracleoradatausers01.dbf k:backupusers01.bak将表空间退出备份状态SQL alter tabelspace users en

14、d backup;对所有未归档的联机重做日志文件进行手工归档SQL alter system archive log current;,备份控制文件,控制文件备份为二进制文件SQL alter database backup controlfile to f:orclebackupcfile.bak reuse;控制文件备份到跟踪文件(文本文件)SQL alter database backup controlfile to trace;查看跟踪文件存储目录SQL Show parameter user_dump_dest,备份其他文件,备份归档日志SQL host copy d:orclar

15、chive*.log d:backuparchive备份参数文件SQL create pfile=d:backupdemo.par from spfile;备份口令文件SQL host copy %ORACLE_HOME%databasepwdorcl.ora d:backup,恢复,利用逻辑备份恢复(impdp)Impdp的使用方法和expdp一样利用物理备份恢复,利用物理备份恢复,必须具有SYSDBA权限数据库中没有其他活动的会话连接,利用脱机备份的恢复,步骤:关闭数据库(shutdown)将备份所有文件文件替换掉原来的文件启动数据库(startup)让用户重新输入自从上一次备份以来做的所

16、有更改。,归档模式下利用联机备份的恢复,完全恢复:数据库级完全恢复表空间级数据文件级,归档模式下,数据库级的完全恢复:关闭数据库,将备份的数据文件复制到原来位置启动数据库到装载状态(startup mount)执行Recover database打开数据库(alter database open),归档模式下,表空间级的完全恢复:关闭数据库,将备份的数据文件复制到原来位置,替换坏掉的原数据文件启动数据库到装载状态(startup mount)执行Recover tablespace 表空间名打开数据库(alter database open),归档模式下,数据文件损坏或丢失,恢复步骤:关闭数据

17、库,将备份的数据文件复制到原来位置,替换坏掉的文件启动数据库到装载状态(startup mount)执行Recover datafile 文件号或者 Recover datafile 文件名打开数据库(alter database open),归档模式下不完全恢复,关闭数据库,将备份的数据文件复制到原来位置,替换坏掉的文件启动数据库到装载状态(startup mount)执行不完全恢复命令 Recover database until time 时间 或Recover database until cancel 或Recover database until change scn打开数据库(a

18、lter database open resetlogs),丢失了重做日志文件,如果丢失了重做日志文件组中的某个成员,只要组中至少还有一个成员,那么: 1.不会影响实例的正常操作。 2.预警日志中会收到一条消息,通知您无法找到某个成员。 3.通过从同一组中复制一个剩余文件可还原缺失的日志文件。,非当前日志文件损坏或丢失,如果损坏的是非当前日志,恢复步骤:启动数据库到mount状态SQLAlter database clear logfile 损坏的日志文件名SQLAlter database open 打开数据库,当前日志文件损坏或丢失,如果损坏的是当前日志,恢复步骤:启动数据库到mount状

19、态SQLAlter system set “_ALLOW_RESETLOGS_CORRUPTION”=TRUE scope=spfileSQLRecover database until cancelSQLAlter database open resetlogs;,丢失了一个控制文件,如果丢失或损坏了控制文件,实例通常会中止,此时必须执行以下步骤: 1.关闭实例(如果它仍处于打开状态) 。2.通过复制现有控制文件还原缺失的控制文件。3.启动实例。,控制文件损坏或丢失,如果有备份的控制文件,恢复步骤将备份的控制文件复制到原来位置SQLstartup mountSQLrecover databa

20、se until cancel using backup controlfile;SQLalter database open resetlogs;,控制文件损坏或丢失,如果没有多路复用的控制文件,或者都损坏,则:SQLstartup nomountSQLcreate controlfile.SQLrecover database;SQLalter database open resetlogs;如果备份到跟踪文件,按照跟踪文件中的步骤做,Rman(恢复管理器),Oracle恢复管理器(RMAN)是随Oracle服务器软件一同安装的Oracle工具软件,专门用于对数据库进行备份、修复和恢复操作

21、,使用RMAN的原因,基于RMAN的备份和恢复要比用户自定义的方式更为常用,更可靠和高效RMAN的特点所有的备份、修复和恢复操作都可以在RMAN中统一完成可以进行更为灵活和复杂的备份与恢复操作,如增量备份可以降低在备份和恢复操作过程中出现错误与故障的可能性可以与第三方的介质管理软件协同工作RMAN使用服务进程来执行备份和恢复操作,并且将备份与恢复过程中生成的管理信息保存在RMAN档案库中,Rman备份,RMAN备份指使用恢复管理器备份数据文件、控制文件、归档日志和spfile的方法。RMAN不能备份重做日志备份集(Backup Set)用于存储一个或多个备份信息的一种逻辑结构备份片(Backu

22、p Piece)存储备份集信息的二进制文件备份集通常由一个或多个备份片组成,并且每个备份片对应一个OS文件影像副本(Image Copy)单个数据文件、单个控制文件或单个归档日志文件的完整备份与源文件的大小完全一样(占用更多的存储空间)只能备份到磁盘,Rman备份模式,完全式:备份所有的内容增量式:级别04差异备份:备份最近同级或低级增量备份以来改变的内容累积备份:备份最近低级增量备份以来改变的内容,Rman的运行模式,进行备份时,rman要把备份的信息()进行存储,根据存储位置的不同,rman的运行模式分为Nocatalog模式:备份信息存在目标数据库的控制文件中Catalog模式:单独创建

23、一个数据库,存储备份信息,Catalog模式,创建一个新的数据库,作为目录数据库在目录数据库上做以下操作:创建表空间,存储备份信息创建rman用户并授权启动rman,做下列操作创建恢复目录注册目标数据库,RMAN的组成(1),目标数据库(Target Database)要执行备份、转储和恢复操作的数据库RMAN使用目标数据库的控制文件来收集关于数据库文件的相关信息,并且使用控制文件来存储相关的RMAN操作信息实际的备份、修复和恢复操作也是由目标数据库的服务进程来执行的RMAN命令执行器(RMAN Executable)目标数据库的一个客户端应用程序对命令进行解释,然后利用Oracle网络服务来

24、建立到目标数据库的连接,并调用服务进程来执行实际的备份和恢复操作使用RMAN时,只有目标数据库和RMAN命令执行器两个组件是必须的,其他组件都是可选的,RMAN的组成(2),RMAN资料档案库(RMAN Repository)进行备份、修复和恢复操作时用到的管理信息和数据,包括从目标数据库的控制文件中收集到的该目标数据库的物理结构的信息对目标数据库进行备份、修复和恢复时以及对RMAN进行维护的过程中生成的信息可以完全保存在目标数据库的控制文件中,也可以保存在一个可选的恢复目录数据库中RMAN恢复目录方案在RMAN恢复目录数据库中,拥有RMAN资料档案库的用户方案RMAN通过这个用户方案来使用和

25、维护它自己的恢复目录,RMAN的组成(3),RMAN恢复目录(数据库)用于存放RMAN元数据。不使用恢复目录时,备份信息存放在目标数据库的控制文件中;使用恢复目录时,备份信息还会存放在恢复目录中创建恢复目录的步骤每个数据库中已经有了RMAN用户,恢复目录也有了先要解除RMAN用户的锁定,然后用SQL*PLUS登录修改其密码,RMAN 通道(channel),表示了一个到存储设备的数据流,对应于一个目标数据库中的服务进程凡是在执行需要与目标数据库或操作系统进行交互操作的命令之前,都必须首先为这个命令分配一个通道在分配一个通道时,RMAN命令执行器将建立一个到目标数据库的连接,并且在目标数据库的实

26、例中启动一个服务进程RMAN中的所有备份、修复和恢复操作都将由这个服务进程来完成RMAN会话将通过为它分配的通道独享这个服务进程,分配通道,手工分配通道执行backup、restore、delete等命令时RMAN run allocate channel d1 device type disk format = J:oraclebackup%U;backup datafile %ORACLE_BASE%oradataorclusers01.dbf;release channel d1;自动分配通道RMAN中预设置了一个使用本地硬盘作为存储设备的DISK通道RMAN configure def

27、ault device type to sbt;RMAN configure default device type clear;,连接到RMAN,使用RMAN时,目标数据库必须处于加载或打开状态查看rman命令的选项说明c: rman help连接到目标数据库,可以直接在命令行连接,或者在rman提示符下使用connect命令进行连接没有恢复目录C:rman target system/oracleorcl nocatalog或C: rman nocatalogrman connect target sys/oracleorcl 有恢复目录C: rman target system/orac

28、leorcl catalog rman/rmanoemrep,RMAN命令(1),独立命令关闭、启动目标数据库RMAN shutdown immediate RMAN startupRMAN startup mountRMAN sql alter database open;备份users表空间RMAN backup format d:backup%d_%s.bak tablespace users;,RMAN命令(2),作业命令:以成组方式执行命令RMAN run allocate channel d1 device type disk;backup format e:oraclebacku

29、p%d_%s.bak tablespace users;release channel d1;注意:connect、createdeleteupdate catalog、createdeletereplace script、list等RMAN命令不能放在RUN块内,RMAN命令(3),运行SQL命令RMAN sql alter system switch logfile;注意:在RMAN中不能运行select语句。如果SQL字符串中包含单引号,则必须使用两个单引号,并且SQL字符串需要双引号引住。RMAN sql “create tablespace usesr03 datafile d:or

30、acleoradataorclusers03.dbf size=100M”;运行操作系统命令RMAN run host “dir d:backup”; 运行存储脚本(使用恢复目录时)RMAN run execute script s1; ,RMAN命令(4),运行RMAN命令交互式C: rman target system/oracleorclRMAN run allocate channel d1 device type disk;backup format d:backup%d_%s.bak tablespace users;release channel d1; 批处理方式C: rman

31、 target system/oracleorcl nocatalog c:bak_users.cmd log a.log,备份数据库RMAN run allocate channel dev1 device type disk;backup database;release channel dev1;,备份表空间RMAN run allocate channel dev1 device type disk;backup tablespace users;release channel dev1;,备份日志文件RMAN run allocate channel dev1 device type

32、 disk;backup archive log all; release channel dev1;,Rman恢复数据库,RMAN run shutdown immediate;startup mount; restore database; recover database;alter database open;,闪回,简单理解,就是将数据库回到过去某个时刻Oracle提供的一种简单的处理用户错误的方法,如误操作一些数据,误删除了表等包括:查询闪回表闪回数据库闪回,查询闪回,查询过去某个时刻表中的数据Select 列 from 表 as of timestamp 过去某个时间点,表闪回,

33、flashback table 表名 to timestamp 时间点如果不小心删除了某个表,可以使用flashback table 表名 to before drop把该表恢复其实,利用的是回收站的原理Drop table并不会真正地删除表,而是放到回收站中Purge 表名可以彻底删除表Purge recyclebin 清空回收站注意:system表空间的对象不放入回收站,数据库闪回,将整个数据库闪回到过去某个时刻,步骤SQLstartup mount;SQLFlashback database to timestamp 时刻点SQLalter database open resetlogs;要求数据库运行在归档模式下,数据库闪回,相关参数Db_recovery_file_dest:恢复区位置Db_recovery_file_dest_size:恢复区大小Db_flashback_retention_target:恢复信息的保存时间,单位秒,默认值1天,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经济财会 > 经济学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报