1、数据库导入导出关于 Oracle 数据库的份与恢复,以下方法, 有一些可能不能完全归纳为备份与恢复,但是作为开发 DBA,有时也是很有用的。对于生产库,一般还是推荐使用ARCHIVELOG 模式下的 OS 份或 RMAN 方法,要求比较高的可能还必须用到 RAC 等并行处理的架构,? exp/imp(导出与导入 装库与卸库) ? SQL*Loader ? User Managed Backup and Recovery (用户管理的备份与恢复) ? RMAN ? Flashback ? LogMiner Oracle 数据库有三种标准的备份方法,它们分别是导出导入(EXP/IMP) 、热备份和
2、冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。一、 导出导入(ExportImport )利用 Export 可将数据从数据库中提取出来,利用 Import 则可将提取出来的数据送回到 Oracle 数据库中去。、 简单导出数据(Export)和导入数据(Import)Oracle 支持三种方式类型的输出:() 、表方式(T 方式) ,将指定表的数据导出。() 、用户方式(U 方式) ,将指定用户的所有对象及数据导出。() 、全库方式(Full 方式) ,瘵数据库中的所有对象导出。数据导入(Import)的过程是数据导出(Export )的逆过程,分别将数据文件导入数据库和将数据库
3、数据导出到数据文件。、 增量导出导入增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为 SYSTEM 来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为 export.dmp,如果不希望自己的输出文件定名为 export.dmp,必须在命令行中指出要用的文件名。增量导出包括三种类型:() 、 “完全”增量导出(Complete)即备份三个数据库,比如:exp system/manager inctype=complete file=040731.dmp() 、 “增量型”增量导出备份上一次备份后改变的数据,比如:exp system/manager inc
4、type=incremental file=040731.dmp() 、 “累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:exp system/manager inctype=cumulative file=040731.dmp数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。比如数据库的被封任务可以做如下安排:星期一:完全备份(A)星期二:增量导出(B)星期三:增量导出(C)星期四:增量导出(D)星期五:累计导出(E)星期六:增量导出(F)星期日:增量导出(G)如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数
5、据库:第一步:用命令 CREATE DATABASE 重新生成数据库结构;第二步:创建一个足够大的附加回滚。第三步:完全增量导入 A:imp system/manager inctype=RESTORE FULL=y FILE=A第四步:累计增量导入 E:imp system/manager inctype=RESTORE FULL=Y FILE=E第五步:最近增量导入 F:imp system/manager inctype=RESTORE FULL=Y FILE=F二、 冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的
6、位置的一种说法。对于备份 Oracle 信息而言,冷备份时最快和最安全的方法。冷备份的优点是:、 是非常快速的备份方法(只需拷文件)、 容易归档(简单拷贝即可)、 容易恢复到某个时间点上(只需将文件再拷贝回去)、 能与归档方法相结合,做数据库“最佳状态”的恢复。、 低度维护,高度安全。但冷备份也有如下不足:、 单独使用时,只能提供到“某一时间点上”的恢复。、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。、 不能按表或按用户恢复。如果可能的话(主要看效率) ,应将信息
7、备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作) 。冷备份中必须拷贝的文件包括:、 所有数据文件、 所有控制文件、 所有联机 REDO LOG 文件、 Init.ora 文件(可选)值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。下面是作冷备份的完整例子。(1) 关闭数据库sqlplus /nologsql;connect /as sysdbasql;shutdown normal;(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件sql;cp ; ;(3)
8、 重启 Oracle 数据库sql;startup三、 热备份1. Oracle 数据库提供了多种数据库备份与恢复的解决方案,其中包括基于RMAN 的备份、用户管理的备份、Data Pump Export、闪回技术等,这些主流的备份方式有不同的特性,请结合您的经历谈谈您对它们的理解。RMAN、数据泵和 EXP 备份之前做过测试,感觉 RMAN 的特点是快,但是生成的备份文件最大,数据泵速度相对较慢,适合跨平台迁移,也适合作为备份,一般给客户做项目都是 RMAN 和逻辑的备份都做一遍,如果出现问题,使用逻辑备份在客户的其他可提供的机器上进行恢复。 (RMAN 的传输表空间木有在项目中用过)之前做
9、的测试文档,分享一下: Oracle datapump、exp 和 RMAN 的对比测试报告V2.0.pdf (486.28 KB, 下载次数: 111) 2.数据库管理员在制定数据库备份方案时应该考虑哪些原则与策略?存储设备(Disk or Tape) 、业务重要程度(确定备份间隔和增量方式) 、数据保存期限和恢复窗口。3.根据备份规模,Oracle 数据库分为完全备份和部分备份。按照备份状态,Oracle 数据库分为一致性与不一致性备份。为什么说一致性完全备份是数据库非归档模式下的唯一正确的备份?这样能保证改动的数据都在备份集中。4.请结合应用场景谈谈您对冷备份与热备份各自优缺点的认识。感
10、觉冷热备份都是存在即合理的,都有自己的应用场景,没有最好的只有最合适的。冷备:优点:如果客户的数据库空间有限,开归档比较费劲,我感觉可以做冷备做备份或者是在客户后续的硬件升级中进行迁移工作。冷备可以做一次性备份和迁移的使用。缺点:不能增量,在长期的备份工作中,占用的空间可能都比较大,因为每次都是全备。需要在业务时间段以外做备份,否则会是不一致的备份。热备:优点:增量备份体积小,备份不影响正常业务。缺点:对于备份集、日志文件和备份策略等需要有一定的维护成本和学习成本。从数据库备份的对象来看,备份工作可以使用 RMAN 进行物理方式的备份,也可以使用 exp/expdp 工具进行逻辑方式的备份。物
11、理备份又可以分为两种类型:1 镜像复制备份:把数据文件,控制文件,归档日志文件进行操作系统复制,通过 RMAN 的 copy 命令实现2 备份集备份:在 RMAN 中使用 backup 命令进行备份,则备份按照备份集的方式,备份集是以特定格式存储的操作系统文件,包含一个或者多个 oracle 备份片段,二进制文件,和数据文件不存在直接对应关系,只能用 rman 进行恢复1. Oracle 数据库提供了多种数据库备份与恢复的解决方案,其中包括基于RMAN 的备份、用户管理的备份、Data Pump Export、闪回技术等,这些主流的备份方式有不同的特性,请结合您的经历谈谈您对它们的理解。- R
12、MAN 备份不需要去理解它怎么工作,备份的文件比较全面,参数/控制/数据/归档文件,特别还原的时候很方便( 基于时间点、SCN 、日记序列等.)总的来说 RMAN 备份提供比较灵活/ 自动化的备份方案,使用比较普遍。- 用户管理的备份,通常会有一个 shell 脚本,该脚本是由用户编写的,这容易出错,而且脚本也容易混乱。如果你把脚本搞乱了,那么你不会得到Oracle 的帮助,同样地面临的还原也是比较麻烦,需要特别注意,当然如果你很熟悉是可以采用的,至少是廉价的,不用像 RMAN 备份需要购买。- Data Pump Export,提供了一种基于服务器的数据导出导入使用程序,支持 完全导出模式(
13、full export mode)/schema 模式(schema mode)/表模式(table mode)和表空间模式(tablespace mode ),注意经授权的用户。- 闪回技术 分不通粒度的闪回,对误删的表,只要没有使用 PURGE 永久删除选项,那么可以从 flash back 区恢复回来,例如 flashback table t_dept to before drop ,11g 中,Oracle 继续对该技术进行改进和增强,增加了闪回数据归档目录功能 ,闪回数据库能够使数据库迅速回滚到以前的某个时间点或者某个 SCN 上。2.数据库管理员在制定数据库备份方案时应该考虑哪些原
14、则与策略?a、数据库性质,大小,重要性程度,b、恢复时间,如 ONLINE 性质的,要求恢复快c、是否允许停止服务,这就考虑冷热备份 、 物理逻辑备份d、热备份的话,需要考虑系统时间点,负载等方面,一般是 Agent 到哪个时间点备份e、磁盘容量考虑,全备/增量备份 .3.根据备份规模,Oracle 数据库分为完全备份和部分备份。按照备份状态,Oracle 数据库分为一致性与不一致性备份。为什么说一致性完全备份是数据库非归档模式下的唯一正确的备份?所谓一致性完全备份,是所有文件拥有相同的 SCN,在非归档模式下时,REDO LOG 日记文件是被覆盖的,非归档模式只能做冷备份,并且恢复时只能做完
15、全备份,最近一次完全备份到系统出错期间的数据不能恢复。4.请结合应用场景谈谈您对冷备份与热备份各自优缺点的认识。冷备份,备份比较简单,拷贝数据库文件,恢复时直接拷贝替换,可以准确到哪个“点” ,但是需要停止服务,很多 online 线上系统不允许热备份,提供的备份方式比较灵活,库、表空间、表.,较之冷备份,相对备份方式比较复杂繁琐,但热备份的时候数据库处于服务状态目前多数使用的多为热备份,当然需要根据不通场合选择不同的备份方式,毕竟数据库操作是比较灵活的。Oracle 数据库有三种标准的备份方法,它们分别是导出导入(EXP/IMP) 、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物
16、理备份。一、 导出导入(ExportImport )利用 Export 可将数据从数据库中提取出来,利用 Import 则可将提取出来的数据送回到 Oracle 数据库中去。、 简单导出数据(Export)和导入数据(Import)Oracle 支持三种方式类型的输出:() 、表方式(T 方式) ,将指定表的数据导出。() 、用户方式(U 方式) ,将指定用户的所有对象及数据导出。() 、全库方式(Full 方式) ,瘵数据库中的所有对象导出。数据导入(Import)的过程是数据导出(Export )的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。、 增量导出导入增量导出是一种
17、常用的数据备份方法,它只能对整个数据库来实施,并且必须作为 SYSTEM 来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为 export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。增量导出包括三种类型:() 、 “完全”增量导出(Complete)即备份三个数据库,比如:exp system/manager inctype=complete file=040731.dmp() 、 “增量型”增量导出备份上一次备份后改变的数据,比如:exp system/manager inctype=incremental file=0407
18、31.dmp() 、 “累积型”增量导出累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:exp system/manager inctype=cumulative file=040731.dmp数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。比如数据库的被封任务可以做如下安排:星期一:完全备份(A)星期二:增量导出(B)星期三:增量导出(C)星期四:增量导出(D)星期五:累计导出(E)星期六:增量导出(F)星期日:增量导出(G)如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:第一步:用命令 CREATE DATABASE
19、 重新生成数据库结构;第二步:创建一个足够大的附加回滚。第三步:完全增量导入 A:imp system/manager inctype=RESTORE FULL=y FILE=A第四步:累计增量导入 E:imp system/manager inctype=RESTORE FULL=Y FILE=E第五步:最近增量导入 F:imp system/manager inctype=RESTORE FULL=Y FILE=F二、 冷备份冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份 Oracle 信息而言,冷
20、备份时最快和最安全的方法。冷备份的优点是:、 是非常快速的备份方法(只需拷文件)、 容易归档(简单拷贝即可)、 容易恢复到某个时间点上(只需将文件再拷贝回去)、 能与归档方法相结合,做数据库“最佳状态”的恢复。、 低度维护,高度安全。但冷备份也有如下不足:、 单独使用时,只能提供到“某一时间点上”的恢复。、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。、 不能按表或按用户恢复。如果可能的话(主要看效率) ,应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备
21、份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作) 。冷备份中必须拷贝的文件包括:、 所有数据文件、 所有控制文件、 所有联机 REDO LOG 文件、 Init.ora 文件(可选)值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。下面是作冷备份的完整例子。(1) 关闭数据库sqlplus /nologsql;connect /as sysdbasql;shutdown normal;(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件sql;cp ; ;(3) 重启 Oracle 数据库sql;startup三、 热备份