备份是可以用来重建数据的数据库的数据拷贝。备份可以是物理备份或逻辑备份。
物理备份是用来存储和恢复数据库的物理文件的拷贝。这些文件包括数据文件,控制文件,和归档redo日志。最重要地,每个物理备份是存储数据库信息到另外一个位置的文件拷贝,不管是位于磁盘还是脱机的存储介质如磁带。
逻辑备份包含逻辑数据比如表和存储过程。可以使用Oracle Data Pump来导入逻辑数据到二进制文件,可以在后来导入到数据库。Data Pump命令行客户端expdp和impdp使用DBMS_DATAPUMP和DBMS_METADATA PL/SQL包。
物理备份是任何可靠的备份和恢复策略的基础。逻辑备份在很多情况下是物理备份有用的补充,但如果没有物理备份的话,对数据丢失不能提供足够的保护。
除了以其他方式特别说明,在备份和恢复文档中的术语备份指的是物理备份。备份一个数据库是做一个物理备份的动作。在备份和恢复文档中的重点几乎仅仅是物理备份。
文档的大部分是集中在基于RMAN(Recovery Manager)的备份和恢复。最值得注意的是以下方面:
1)增量备份
增量备份只存储自前一个备份以来更改过的数据块。因此,它们提供更紧凑的备份和更快的恢复,因此在数据文件介质恢复过程中降低应用redo的需求。如果启用块更改跟踪,那么可以避免全面扫描每个输入的数据文件,从而提高备份的性能。使用BACKUP INCREMENTAL来执行增量备份。
2)块介质恢复
可以修复只有少量的损坏数据块的数据文件而不用将它脱机或从备份还原它。使用RECOVER BLOCK来执行块介质恢复。
可以使用多种技术来创建Oracle数据库的备份。下面比较RMAN(Recovery Manager),用户管理的备份和数据泵(Data Pump)技术的特性。
Oracle闪回技术提供一系列特性来补充物理备份和恢复策略。
Oracle闪回技术提供一个数据保护的附加层。确切地说,可以使用Oracle闪回的各种特性来查看过去的数据状态和倒回数据库而不需要还原备份或执行时间点恢复。总之,闪回特性在它们可以应用的大部分情形下比介质恢复更高效和更少引起中断。
Oracle闪回技术让你可以使用以下功能:
1) 逻辑闪回特性
2) 闪回数据库
Oracle数据库逻辑层闪回特性不依赖于RMAN,不管RMAN是否是备份策略的一部分,闪回都是可用的。
大部Oracle的闪回特性在逻辑层操作,让你可以查看和操作数据库对象。除了Oracle Flashback Drop,这个逻辑闪回特性依赖于undo数据,它们是每次数据库更新作用的记录和更新操作中被覆盖的值。
Oracle数据库包括以下逻辑闪回特性:
1)Oracle闪回查询
可以指定一个目标时间和对数据库运行查询,查看出现在目标时间的结果。为了从一个不想要的更改比如对表进行的一个更新,可以选择一个在错误之前的目标时间,运行查询来找回丢失行的内容。《Oracle Database Development Guide》讲解了如何使用这个特性。
2)Oracle闪回版本查询
可以查看一个指定的时间间隔里在一个或多个表存在的所有行的所有版本。也可以检索关于行的不同版本的元数据,包括起始和结束时间,操作,和创建版本的事务的ID。可以使用这个特性来恢复丢失的数据值和审计对查询的表的更改。《Oracle Database Development Guide》讲解了如何使用这个特性。
3)Oracle闪回事务查询
可以查看由一个单一的事务所做的更改,或在一个指定时间段由所有事务所做的更改。《Oracle Database Development Guide》讲解了如何使用这个特性。
4)Oracle闪回事务
可以撤销一个事务。Oracle数据库确定事务之间的依赖性,实际上创建一个抵销事务来撤消不想要的更改。数据库倒回到一个状态,如同事务和任何依赖它的事务从未发生过。《Oracle Database Development Guide》讲解了如何使用这个特性。
5)Oracle闪回表
可以恢复表或一组表到指定的早些的时间点而不需要将任何一部分数据库脱机。在很多情况下,闪回表消除了执行更多复杂的时间点恢复操作的需要。闪回表还原表的同时自动维护关联的属性例如当前索引,触发器和约束,在这种方式中让你避免寻找和还原数据库特定的属性。“使用闪回表倒回表”章节讲解了如何使用这个特性。
6) Oracle Flashback Drop
可以撤消DROP TABLE语句的效果。“使用Flash Drop倒回一个DROP表”章节讲解了如何使用这个特性。
闪回数据归档让你使用一些逻辑闪回特性来访问过去很久的数据。闪回数据归档包含一个或多个表空间或表空间的部分内容。当你创建一个闪回数据归档时,可以指定名称,保留时长和表空间。也可以指定一个缺省的闪回数据归档。数据库自动清除旧的超过保留期限的历史数据。
可以为个别的表打开和关闭闪回归档。缺省情况下,闪回归档为每个表关闭。
闪回数据库让你可以复原数据库到以前的一个时间点。
在物理层面,Oracle闪回数据库提供一个相对于数据库时间点恢复(DBPITR,database point-in-time recovery)更高效的数据保护选择。如果当前数据文件有不想要的更改,那么可以使用RMAN命令FLASHBACK DATABASE来复原数据文件到过去时间的内容。最终结果和DBPITR的结果非常类似,但一般会更快,因为它不需要从备份中还原数据文件和比介质恢复需要更少的redo。
闪回数据库使用闪回日志来访问过去的数据块版本和归档redo日志的某些信息。闪回数据库要求为数据库配置一个快速恢复区域,因为闪回日志只能存放在那里。闪回日志缺省情况下没有启用。闪回日志使用的空间由数据库自动管理,与在快速恢复区域的其它文件要求的空间保持平衡。
Oracle数据库连同闪回数据库和备份与恢复一起也支持还原点。还原点是一个相当于系统更改号(SCN,system change number)的别名。可以在任何时候创建一个还原点,如果预料需要返回部分或全部数据库到那个时间里的内容。一个保证的还原点确保可以使用闪回数据库返回数据库到还原点的时间。
来源:《Oracle Database Backup and Recovery User’s Guide,19c》