oracle数据库的备份与恢复.ppt_第1页
oracle数据库的备份与恢复.ppt_第2页
oracle数据库的备份与恢复.ppt_第3页
oracle数据库的备份与恢复.ppt_第4页
oracle数据库的备份与恢复.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库的备份与恢复,Question,1、创建一个概要文件,要求登录尝试3次,被锁口令3天后自动解除。并使用户user01采用该概要文件。 2、禁用所有角色。,假设各用户初始时都不具有权限,经过下列语句的执行 问myuser1, myuser2,user1, user2和user3各具有什么权限? SQLgrant create table to myrole1 with admin option; SQLgrant create session to myrole1; SQLgrant myrole1 to myrole2 with admin option; SQLgrant myrole1 to myuser1; SQLgrant myrole2 to myuser2 with admin option; SQLconn myuser1/abc SQLgrant myrole1 to user1; SQLconn user1/123 SQLgrant create session to user2; SQLconn myuser2 /abc SQLgrant create table to user3;,目标,在完成本章学习后,你将掌握下列技能: 数据库备份和恢复策略 逻辑备份和恢复的方式 归档模式的设置 物理备份和恢复的方式 闪回操作,本章内容,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份(热备份) 数据库的手动恢复 闪回操作,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,数据库备份和恢复概述 备份和恢复的概念,备份与恢复是数据库管理中最重要的方面之 一。如果数据库崩溃却没有办法恢复它,那么会对企业造成毁灭性的结果。 数据库的备份是数据库中数据的副本,它可以保护数据在出现意外损失时最大限度的恢复。 Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。,数据库备份和恢复概述 数据库系统故障类型,故障类型,语句故障,介质故障,实例故障,用户进程故障,导致数据库操作中止的故障包括四种类型:,在执行 SQL 语句过程中发生的逻辑故障可导致语句故障。如果用户编写的 SQL 语句无效,就会发生逻辑故障,当用户程序出错而无法访问数据库时发生用户进程故障。导致用户进程故障的原因是异常断开连接或异常终止进程,当 Oracle 的数据库实例由于硬件或软件问题而无法 继续运行时,就会发生实例故障,在数据库无法正确读取或写入某个数据库文件时, 会发生介质故障,Oracle数据库的备份包括以下两种类型:,备份,物理备份,逻辑备份,对数据库的操作系统物理文件(如数据文件、控制文件和重做日志文件等)的备份 有脱机备份(冷备份)和联机 备份(热备份),对数据库逻辑组件(如表、视 图和存储过程等数据库对象) 的备份 有导出/导入(EXPORT/IMPORT),数据库备份和恢复概述 备份类型,导出/导入(EXPORT/IMPORT) 将ORACLE中数据移出/移入数据库。 导出实用程序将数据库中的对象定义和数据备份到一个操作系统二进制文件中。 导入实用程序读取二进制导出文件并将对象和数据载入数据库中。,数据库备份和恢复概述 逻辑备份和恢复,数据库备份和恢复概述 物理备份类型,冷备份 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。 冷备份时将关键性文件拷贝到另外的位置。 热备份 数据库需要二十四小时运行,而且随时有新的数据加入。,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,逻辑备份和恢复(导出/导入) 三种工作方式,使用以下三种方法调用导出和导入实用程序,调用导出和导入程序,命令行参数,参数文件,交互提示符,在命令行指定执行程序的参数和参数值。,以交互的方式提示用户逐个输入参数的值。,允许用户将运行参数和参数值存储在参数文件中, 以便重复使用参数,逻辑备份和恢复(导出/导入) 三种模式,用户模式(U方式) 导出用户所有对象以及对象中的数据 表模式(T方式) 导出用户所有表或者指定的表 整个数据库(E方式) 导出数据库中所有对象,逻辑备份和恢复(导出/导入) 增量导出/导入,增量导出是一种常用的数据备份方法,它只能由SYSTEM对整个数据库来实施。 三种类型: 完全型(COMPLETE EXPORT):备份整个数据库 积累型(COMULATIVE EXPORT):备份上一次积累型备份所改变的数据 增量型(INCREAMENTAL EXPORT):备份上一次备份后改变的数据,导出工具exp交互式命令行方式使用的例子 $exp test/testhdu Enter array fetch buffer size: 4096 回车 Export file: expdat.dmp c:mybak.dmp 生成导出的文件名 (1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U 3 Export table data (yes/no): yes 回车 Compress extents (yes/no): yes 回车 Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set About to export specified tables via Conventional Path . Table(T) or Partition(T) to be exported: (RETURN to quit) stu 要导出的表名 . . exporting table CMAMENU 4336 rows exported Table(T) or Partition(T) to be exported: (RETURN to quit) 要导出的表名n Table(T) or Partition(T) to be exported: (RETURN to quit) 回车 Export terminated successfully without warnings.,逻辑备份和恢复(导出/导入) 交互式导出exp,导入工具imp交互式命令行方式使用的例子 $ imp Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001 (c) Copyright 1999 Oracle Corporation. All rights reserved. 用户名:test 口令:* 连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production With the Partitioning option JServer Release 8.1.6.0.0 - Production 导入文件: expdat.dmp c:mybak.dmp 输入插入缓冲区大小(最小为 8192 ) 30720 经由常规路径导出由EXPORT:V08.01.06创建的文件 已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入,逻辑备份和恢复(导出/导入) 交互式导入imp,导入工具imp交互式命令行方式使用的例子(续) 只列出导入文件的内容(yes/no):no 由于对象已存在, 忽略创建错误(yes/no):no yes 导入权限(yes/no):yes 导入表数据(yes/no):yes 导入整个导出文件(yes/no):no yes . 正在将TEST的对象导入到TEST . . 正在导入表 “stu“ 21行被导入 成功终止导入,但出现警告。,逻辑备份和恢复(导出/导入) 交互式导入imp,导出工具exp非交互式命令常用例子 $ exp help=y 获取帮助 $ exp system/manager file=bible_db log=dible_db full=y 导出一个完整数据库 $ exp system/manager file=bible_db log=dible_db full=y rows=n 导出数据库定义而不导出数据 $ exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold) 导出一个或一组指定用户所属的全部表、索引和其他对象 $ exp seapark/seapark file=tank log=tank tables=tank $ exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist) 导出一个或多个指定表,逻辑备份和恢复(导出/导入) 命令行导出exp,导入工具imp非交互式命令常用例子 $ imp help=y 获取帮助 $ imp system/manager file=bible_db log=dible_db full=y ignore=y 导入一个完整数据库 $ imp system/manager file=seapark log=seapark fromuser=seapark 导入一个或一组指定用户所属的全部表、索引和其他对象 $ imp system/manager file=tank fromuser=seapark touser=seapark_copy ignore=y 将一个用户所属的数据导入另一个用户 $ imp system/manager file=tank log=tank fromuser=seapark tables=(a,b) 导入一个指定表,逻辑备份和恢复(导出/导入) 命令行导入imp,逻辑备份和恢复(导出/导入) exp常用参数,逻辑备份和恢复(导出/导入) imp常用参数,数据库对象已经存在 一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等。数据库对象已经存在, 按缺省的imp参数, 则会导入失败;如果用了参数ignore=y, 会把exp文件内的数据内容导入;如果表有唯一关键字的约束条件, 不合条件将不被导入;如果表没有唯一关键字的约束条件, 将引起记录重复。 权限不够 把A用户数据导入B用户下, A用户要有imp_full_database权限。,逻辑备份和恢复(导出/导入) 导入过程常见问题,数据库对象有主外键约束 不符合主外键约束时, 数据会导入失败。解决办法: 先导入主表, 再导入依存表disable目标导入对象的主外键约束, 导入数据后, 再enable它们。 imp和exp使用的字符集不同 如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息. 导入完成后再改回来。,逻辑备份和恢复(导出/导入) 导入过程常见问题,导入大表( 大于80M ) 时, 存储分配失败 默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上。导入时, 如果不存在连续一个大数据块, 则会导入失败。导出80M以上的大表时, 记得compress= N, 则不会引起这种错误。 imp和exp版本不能往上兼容 imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件。,逻辑备份和恢复(导出/导入) 导入过程常见问题,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,归档模式的设置 数据库归档模式概述,Oracle 数据库可以运行在两种模式: 非归档日志模式 归档日志模式 非归档日志方式可以避免实例故障,但无法避免介质故障。在此方式下,数据库只能实施冷备份。 归档日志方式产生归档日志,用户可以使用归档日志完全恢复数据库。,表空间脱机,备份表空间,恢复表空间,表空间联机,归档模式的设置 非归档模式下数据库工作原理,日志文件1填满,清空日志文件 2,向日志文件2写入信息,准备向日志文件 2 写入信息,备份日志文件2,归档模式的设置 归档模式下数据库工作原理,归档模式的设置,关闭数据库:shutdown immediate 以mount启动数据库:startup mount 设置为归档模式:alter database archivelog; 打开数据库: alter database open; 查看归档信息:archive log list,归档模式的设置 三个关键系统参数,log_archive_start 自动存档启用还是禁用。 Oracle 9i这个参数一定要设置为true,Oracle 10g可以省略不设置,把该参数设置和归档模式设置绑定在一起。 Log_archive_format 指定归档日志命名格式。 log_archive_format=arc%t%s.arc。%t是线程号(thread),%s是序号(产生日志的序号)。 log_archive_dest 指定归档日志文件存储位置。,可以通过数据字典视图查看归档日志信息 V$ARCHIVE_DEST:显示当前所有归档日志存储位置及其状态 SQL select dest_id,dest_name,status,destination from v$archive_dest where status=valid; V$ARCHIVE_LOG :显示历史归档日志信息 SQL select dest_id,name,archived from v$archived_log;,归档模式的设置 获取归档日志信息,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,脱机备份和恢复 脱机备份步骤,找到所有需要备份的文件 show parameter pfile找初始化参数文件 select name from v$controlfile;找控制文件 select file_name from dba_data_files;找数据文件 select member from v$logfile;找重做日志文件 select name, sequence#, first_change# from v$archived_log;找归档日志文件 shutdown 关闭数据库 将所有文件复制到备份硬盘或磁带上 startup 启动数据库,脱机备份和恢复 脱机备份的恢复步骤,shutdown 关闭数据库 将备份的数据文件和控制文件复制到数据库中原来的位置 也可将备份的重做日志文件、参数文件、口令文件复制到数据库中原来的位置(该操作不是必需的) startup 启动数据库,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,联机备份,联机备份(热备份)数据库的前提条件 数据库运行在归档模式 Oracle数据库安装默认运行在非归档模式 日志处理 Oracle数据库的redo日志记录在数据库上进行的所有活动。LGWR后台进程以一种循环方式写这些日志文件,从第一个redo日志到下一个,直到该组的最后一个,然后由从第一个日志写起。,联机备份,在非归档模式下,当循环写到最后一个日志文件后,就重写第一个日志。因此,非归档模式下唯一的数据库恢复办法就是使用冷备份。 在归档模式下,当redo日志满时,一个ARCH后台进程就读取全部redo日志,然后将其写到归档日志。因此,可以使用热备份和点恢复。在归档日志模式下,如果归档日志目的空间已满,数据库活动将暂时停止,只有释放一些空间后,数据库才能继续运行。,联机备份 联机备份举例,联机备份数据文件 设置表空间为备份状态 alter tablespace 表空间名 begin backup; 备份表空间的数据文件 回复表空间为正常状态 alter tablespace 表空间名 end backup; 备份控制文件 alter database backup controlfile to 备份文件名;,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,数据库的手动恢复 概述,数据库恢复就是根据归档日志或联机日志文件中的记录,以及数据库备份,把数据库复原到最近的状态。由于数据库出现的故障主要包括实例故障和介质故障,因此数据库的恢复也分为实例恢复和介质恢复。 实例故障是指数据库系统本身发生故障,如操作系统错误、意外断电、或使用shutdown abort终止数据库实例所发生的故障。一般来说,实例恢复是数据库系统自动完成的。,数据库的手动恢复 介质恢复,介质恢复主要用于介质故障引起的数据库文件的破坏。 介质恢复必须由数据库管理员手工完成最新数据库备份和日志文件备份的装入,并执行各种恢复命令才能够恢复。 分为两大类:完全恢复和不完全恢复。,数据库的手动恢复 完全恢复,完全恢复指将数据库恢复到发生故障的时间点,不丢失任何数据。 完全恢复步骤 以管理员登录系统 立刻关闭数据库 启动数据库mount状态,将数据库处在非归档模式下,打开数据库 关闭数据库,备份所有相关文件 以相反方式恢复数据库,不完全恢复指将数据库恢复到发生故障前的某一个时间点,此时间点以后的所有改动将会丢失。 不完全恢复的方式 基于时间的恢复 recover database until time 时间点; 基于撤销的恢复 recover database until cancel; 基于更改的恢复 recover database until change SCN;,数据库的手动恢复 不完全恢复,本章内容导航,数据库备份和恢复概述 逻辑备份和恢复(导出/导入) 归档模式的设置 脱机备份(冷备份)和恢复 联机备份 数据库的手动恢复 闪回操作,闪回查询(Flashback Query) 查询过去某个指定时间、指定实体的数据。 闪回表(Flashback Table) 使表返回到过去某一时间的状态。 闪回删除(Flashback Drop) 恢复被drop的表或者索引。 闪回数据库(Flashback Database) 使数据库迅速地回滚到以前的某个时间点或者某个SCN(系统更改号)上,而不需要进行时间点的恢复操作。 基于闪回日志。,闪回操作 闪回的种类,基于回滚数据(undodata),TO_TIMESTAMP函数格式为: TO_TIMESTAMP(timepoint,format) timepoint表示时间点 format表示需要把timepoint转化为何种格式 闪回查询举例:查询某一时间点A表的数据 SQLselect * from A as of timestamp to_timestamp(2009-07-05 14:10:00, yyyy-mm-dd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论