专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Oracle数据库备份的方法

Oracle数据库备份的方法

更新时间:2022-01-19 11:32:37 来源:动力节点 浏览2265次

联机或热备份是在数据库联机且可用于读/写操作时执行的备份。除了 Oracle 导出,您只能在 ARCHIVELOG模式下运行时执行在线备份。脱机或冷备份是在数据库处于脱机状态且对其用户不可用时执行的备份。

本主题的其余部分说明 Oracle 支持的备份类型,并提供有关执行 Oracle 备份的建议。

Oracle 备份类型

通常,Oracle DBA 使用以下一个或多个选项来备份 Oracle 数据库。

进出口

导出是 将逻辑定义和数据从数据库提取到文件的逻辑数据库备份。

导出备份是跨平台的,可以轻松地从一个操作系统移动到另一个操作系统。

冷备份或离线备份

这些备份需要关闭数据库实例并复制所有数据、日志和控制文件。

热备份或在线备份

当数据库可用并在 ARCHIVELOG 模式下运行时,会进行这些备份。要执行这种类型的备份,表空间需要处于备份模式,并且必须备份与表空间关联的所有数据文件。备份控制文件和归档重做日志文件非常重要。

RMAN 备份

当数据库处于脱机或联机状态时,DBA 可以使用 RMAN 实用程序来备份数据库。

导出/导入数据泵

导出泵和导入泵是 Oracle 10g 的新增功能。 Expdp和 Impdp 是跨平台的,可以很容易地从一个操作系统移动到另一个操作系统。

Oracle 逻辑数据库备份

Oracle 导出是 逻辑数据库备份(不是物理备份),因为它们将数据库中的数据和逻辑定义提取到文件中。其他备份策略通常备份物理数据文件。导出的优点之一是您可以有选择地重新导入表。但是,您不能从已恢复的导出文件前滚。要从导出文件中完全恢复数据库,您几乎需要重新创建整个数据库。逻辑备份在特定时间拍摄数据库模式的快照。

Oracle 离线/冷数据库备份

数据库关闭时执行的备份称为脱机备份或冷备份。您必须使用操作系统复制实用程序复制数据文件、控制文件和在线重做日志文件。这被认为是数据库的完整备份。如果数据库在NOARCHIVELOG模式下运行,则在此备份之后所做的任何更改都无法恢复 。无论数据库是否归档,所有事务都记录在联机重做日志文件中。归档重做日志时(ARCHIVELOG 模式),Oracle 允许您在恢复损坏的文件后应用这些事务(假设活动的重做日志文件不在损坏的文件中)。

每当数据库的模式发生变化时,例如当你添加一个新的数据文件,重命名一个文件,或者创建或删除一个表空间时,你必须关闭数据库并至少复制控制文件和新添加的数据文件。最好对数据库进行完整备份。

在执行冷备份之前,必须获取所有需要备份的 Oracle 文件的列表。运行以下查询将提供所有文件的列表。

从 sys.v_$datafile 中选择名称;
从 sys.v_$logfile 中选择成员;
从 sys.v_$controlfile 中选择名称;

从 SQL*Plus 或服务器管理器关闭数据库。将所有文件备份到辅助存储(例如磁带)。确保备份所有数据文件、所有控制文件和所有日志文件。完成后,重新启动数据库。

注意:如果您的数据库处于 ARCHIVELOG模式,您仍然可以使用归档日志文件从脱机备份前滚。如果您无法在方便的时候关闭数据库进行离线备份,请将数据库切换到 ARCHIVELOG模式并执行在线备份。

Oracle 在线/热数据库备份

在数据库实例运行时执行的备份称为在线备份或热备份。在线备份在数据库实例必须每天 24 小时运行且离线备份不可行的客户站点中非常重要。在联机备份期间,数据库仍可用于读取和更新。对于这种备份,数据库必须处于 ARCHIVELOG 模式。只需要备份数据文件和当前控制文件。与离线备份不同,在线备份的单位是一个表空间,任何或所有的表空间都可以在需要的时候进行备份。可以在不同时间备份不同的数据文件。

要执行在线备份,请在复制文件之前将表空间切换到“备份模式”,如下例所示。

ALTER TABLESPACE xyz 开始备份;
!cp xyfFile1 /backupDir/
更改表空间 xyz 结束备份;

备份单个表空间比同时将所有表空间置于备份模式更好。单独备份它们会产生更少的开销。完成表空间备份后,备份控制文件很重要,如下例所示。

更改系统切换日志文件;-- 强制日志切换更新控制文件头
ALTER DATABASE BACKUP CONTROLFILE TO '/<目录名>/control.dbf';

在线备份的频率与发生介质故障时恢复所需的时间成反比。备份越旧,需要应用的重做日志文件就越多,恢复时间也会增加。备份策略应在用于保护生产数据库之前进行测试。

我们强烈建议您在非高峰时段访问数据库最少的时候运行在线备份。在备份模式下,Oracle 将完整的数据库块而不是正常的增量写入重做日志文件。这会导致过多的数据库归档甚至数据库冻结。

Oracle RMAN 数据库备份

Recovery Manager (RMAN) 是一种 Oracle 工具,可让 DBA 备份和恢复 Oracle 数据库。RMAN 允许您执行完整备份(数据库联机或脱机)、块级别的增量备份以及联机重做日志和控制文件的备份。

在数据库上运行 RMAN 需要 SYSDBA 权限。RMAN 备份的其他好处是您可以:

跟踪对数据库执行的所有备份和恢复操作。

管理企业的集中备份和恢复程序。

识别损坏的块。

仅备份那些实际包含数据的块。这可以显着节省备份空间需求。

支持增量备份。增量备份仅备份自上次备份以来已更改的块。这有助于磁盘空间使用并显着减少备份时间。Oracle 10g 引入了一个名为“块更改训练”的新特性。此功能为增量备份提供了显着改进。请联系您的 DBA,了解如何实现此功能。

以下 RMAN 备份和还原示例非常简单,用于说明基本概念。默认情况下,Oracle 使用数据库控制文件来存储有关备份的信息。通常,您更愿意设置 RMAN 目录数据库来存储 RMAN 元数据。

rman target sys/*** nocatalog
 跑 { 
  分配通道 t1 类型磁盘; 
  备份格式'/app/oracle/db_backup/%d_t%t_s%s_p%p'(数据库);
  释放通道 t1;
 }
示例 RMAN 还原:
 rman target sys/*** nocatalog
 跑 {
  分配通道 t1 类型磁盘;
  恢复表空间用户;
  恢复表空间用户;
  释放通道 t1;
 }  

Oracle 导出/导入数据泵

Oracle 在 10g 版本中引入了导出/导入数据泵。进口泵比传统进口实用程序快二十倍。导出/导入数据泵实用程序是 逻辑数据库备份(不是物理备份),因为它们将数据库中的数据和逻辑定义提取到文件中。导出/导入数据泵实用程序不适合 24/7 模式,因为它们不提供前滚功能。导出数据泵提供数据库模式在特定时间的快照。

Oracle 数据库备份建议

如果您的企业想要在 24/7 环境中运行 StarTeam Server 实例,我们强烈建议使用 RMAN 备份。RMAN 在过去几年中不断发展,Oracle Corporation 继续添加使灾难恢复更容易、更可靠和更快的特性。

通过上述介绍相信大家对Oracle数据库备份的方法已经有所了解,大家如果想了解更多相关知识,不妨来关注一下动力节点的Java在线学习,里面的课程从入门到精通,细致全面,通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>