AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 163309
Accepted
SHS
SHS
Asked: 2017-02-06 22:54:56 +0800 CST2017-02-06 22:54:56 +0800 CST 2017-02-06 22:54:56 +0800 CST

使用 RMAN 进行数据库备份

  • 772

我们计划使用 RMAN 备份数据库,但由于我是数据库管理的新手,所以我对这方面的知识不多。

不过我有一些疑问。
目前我们在 noarchivelog 模式下使用 Oracle 11g 数据库。据我所知,在归档日志模式下运行数据库,备份是在很短的时间间隔内进行的,我不喜欢这样。我只需要每天进行一次备份,而且不需要关闭我的数据库。那可能吗?

哪个更好的选择,数据库以存档模式或非存档模式运行?另外,如果我要使用非存档模式,我需要手动删除备份还是自动删除备份?

oracle backup
  • 2 2 个回答
  • 1151 Views

2 个回答

  • Voted
  1. atokpas
    2017-02-06T23:12:25+08:002017-02-06T23:12:25+08:00

    据我所知,在归档日志模式下运行数据库,备份是在很短的时间间隔内进行的,我不喜欢这样。

    不,归档日志模式和备份频率彼此无关。由您定义备份间隔。

    我只需要每天进行一次备份,而且不需要关闭我的数据库。那可能吗?

    不,不可能在 noarchivelog 模式下进行热备份。

    当数据库关闭且处于一致状态时,您只能在 NOARCHIVELOG 模式下备份数据库。

    -Oracle 文档。

    哪个更好的选择,数据库以存档模式或非存档模式运行?

    Oracle 建议将数据库置于归档日志模式。如果媒体或磁盘出现故障,您可能会丢失数据。

    另外,如果我要使用非存档模式,我需要手动删除备份还是自动删除备份?

    无论您是在 archivelog 模式还是 noarchivelog 模式下操作,您都需要照顾好它。但是,您可以定义备份保留策略

    文档:

  2. 配置 RMAN 环境
  3. 备份与恢复简介

  • 3
  • Best Answer
    Md Haidar Ali Khan
    2017-02-07T00:36:12+08:002017-02-07T00:36:12+08:00

    目前我们在 noarchivelog 模式下使用 Oracle 11g 数据库。据我所知,在归档日志模式下运行数据库,备份是在很短的时间间隔内进行的,我不喜欢这样。我只需要每天进行一次备份,而且不需要关闭我的数据库。那可能吗。

    首先我想说的是在不关闭数据库的情况下。可以通过 RMAN 进行备份。

    什么是 RMAN?

    Recovery Manager (RMAN) 是一个 Oracle 数据库客户端,它对您的数据库执行备份和恢复任务,并自动管理您的备份策略。它极大地简化了备份、还原和恢复数据库文件的过程。

    RMAN 环境需要多少组件?

    RMAN 环境由在备份数据中发挥作用的实用程序和数据库组成。至少,RMAN 的环境必须包括以下组件:

    1. A target database

    2. The RMAN client

    3. A flash recovery area

    4. A media manager

    5. A recovery catalog

    当您在不关闭数据库的情况下通过 RMAN 获取数据库时,该过程称为“热备份”。

    即使在用户访问数据库时也可以进行热备份,但是如果在备份期间数据被更改,则可能会不一致。热备份也会影响数据库性能,因为它使用计算资源。热备份服务器通常从生产服务器接收持续更新,并准备好在故障转移事件关闭生产服务器后立即接管。

    在热备份中,服务器处于开机状态,但不执行任何工作,或者不时打开以从正在备份的服务器获取更新。热备份通常用于镜像或​​复制。

    当您通过 RMAN 关闭数据库进行数据库备份时,该过程称为“冷备份”。

    冷备份,也称为离线备份,是一种数据库备份,在此期间数据库处于离线状态,无法访问更新。这是最安全的备份方式,因为它避免了复制可能正在更新的数据的风​​险。但是,冷备份涉及停机时间,因为用户在备份期间无法访问数据库。

    冷备份可确保一致的备份,但不能不用于任何需要连续 24/7 运行的系统。不应让任何用户登录,也不应进行任何活动以确保文件在备份期间不会以任何方式更改。如果将数据备份到异地设施,则可以从数据副本执行冷备份。数据文件在冷备份过程中不会发生变化,确保数据库在恢复正常运行时处于一致的状态。

    哪个更好的选择,数据库以存档模式或非存档模式运行?

    准备使用Oracle Suggested Backup StrategyARCHIVELOG模式。

    备份 ARCHIVELOG 数据库

    如果你在 ARCHIVELOG 模式下运行你的数据库,那么归档器归档联机重做日志文件组。因此,归档重做日志与联机重做日志和数据文件备份相结合,可以保护数据库免受磁盘故障的影响,提供从磁盘故障到故障发生那一刻(或所需的非当前时间)的完全恢复。

    ARCHIVELOG 模式数据库的常用备份策略

    1. 创建数据库后备份整个数据库。这个初始的整个数据库备份是备份的基础,因为它提供了所有数据文件和相关数据库的控制文件的备份。

      注意:当您执行此初始整个数据库备份时,请确保数据库首先处于 ARCHIVELOG 模式。否则,备份控制文件将包含 NOARCHIVELOG 模式设置。

    2. 在数据库打开或关闭时备份表空间,以使数据库备份保持最新。只要您有必要的存档日志来恢复备份,就永远不必关闭数据库来进行备份。

    3. 尤其要经常备份大量使用的表空间的数据文件,以减少数据库恢复时间。如果更新的数据文件备份恢复了损坏的数据文件,那么您需要对恢复的数据文件应用较少的重做(或增量备份)以将其前滚到故障时间。

    4. 您还可以使用在数据库打开且表空间在线时获取的数据文件副本来恢复数据文件。您必须将适当的重做日志文件应用于这些已恢复的数据文件,以使数据保持一致并将其提前到指定的时间点。

    5. 每次对数据库进行结构更改时备份控制文件。如果您以 ARCHIVELOG 模式运行并且数据库处于打开状态,则使用 RMAN 或 SQL 语句 ALTER DATABASE BACKUP CONTROLFILE。经常备份归档日志。强烈建议您至少保留两份存档日志副本:一份在磁盘上,另一份在离线存储(磁带、光盘等)上。尽可能长时间地将日志保存在磁盘上,但要尽快备份它们。

    备份 NOARCHIVELOG 数据库

    如果您在 NOARCHIVELOG 模式下运行数据库,Oracle 不会归档已填充的联机重做日志文件组。因此,防止磁盘故障的唯一方法是对数据库进行最新的完整备份。

    以下是在 NOARCHIVELOG 模式下运行的数据库的常见备份策略:

    1. 根据您可以承受的工作量,定期备份整个数据库。例如,如果您可以承受失去一周内完成的工作量,那么每周进行一次一致的整个数据库备份。如果您可以承受只丢失一天的工作,那么每天都进行一致的整个数据库备份。对于具有大量活动的大型数据库,您通常无法承受丢失工作的后果。在这种情况下,您应该以 ARCHIVELOG 模式操作数据库。

    2. 每当您更改以 NOARCHIVELOG 模式运行的数据库的物理结构时,请立即进行一致的整个数据库备份。一个完整的数据库备份充分反映了数据库的新结构。

    另外,如果我要使用非存档模式,我需要手动删除备份还是自动删除备份?

    我想说,首先您要检查 RMAN 备份的保留策略。

    您应如何检查保留政策?

    您可以通过此 RMAN 命令查看保留策略

    show all;
    

    例如,很多选项都是这样的

    RMAN configuration parameters for database with db_unique_name PROD1 are:
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
    CONFIGURE BACKUP OPTIMIZATION ON;
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
    CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;
    CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(OB_DEVICE=tape1)';
    CONFIGURE MAXSETSIZE TO UNLIMITED; # default
    CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
    CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/disk1/oracle/dbs/snapcf_ev.f'; # default
    

    或者您也可以通过“显示”命令查看上述任何选项。

    假设您想通过 RMAN 命令查看数据库的保留策略,那么您只需键入

    SHOW RETENTION POLICY;
    

    它将显示您的数据库保留策略,例如

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
    

    如上所示,您的恢复窗口保留政策为 3 天。所以,在这里你的备份最多只保留 3 天。您还可以通过 RMAN 命令将 Retention day 值增加 3 天以上。

    什么是保留政策?

    用户定义的策略,用于确定备份和存档日志需要保留多长时间以进行介质恢复。您可以根据备份冗余或恢复窗口定义保留策略。RMAN 保留满足当前保留策略所需的数据文件备份,以及完全恢复这些数据文件备份所需的任何归档重做日志。

    供您进一步参考:RMAN 入门、配置 RMAN 环境及此处

    • 0
  • 相关问题

    • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

    • ORDER BY 使用文本列的自定义优先级

    • 舒服的sqlplus界面?[关闭]

    • 如何在数据库中找到最新的 SQL 语句?

    • 如何使用正则表达式查询名称?

    Sidebar

    Stats

    • 问题 205573
    • 回答 270741
    • 最佳答案 135370
    • 用户 68524
    • 热门
    • 回答
    • Marko Smith

      连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

      • 12 个回答
    • Marko Smith

      如何让sqlplus的输出出现在一行中?

      • 3 个回答
    • Marko Smith

      选择具有最大日期或最晚日期的日期

      • 3 个回答
    • Marko Smith

      如何列出 PostgreSQL 中的所有模式?

      • 4 个回答
    • Marko Smith

      列出指定表的所有列

      • 5 个回答
    • Marko Smith

      如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

      • 4 个回答
    • Marko Smith

      你如何mysqldump特定的表?

      • 4 个回答
    • Marko Smith

      使用 psql 列出数据库权限

      • 10 个回答
    • Marko Smith

      如何从 PostgreSQL 中的选择查询中将值插入表中?

      • 4 个回答
    • Marko Smith

      如何使用 psql 列出所有数据库和表?

      • 7 个回答
    • Martin Hope
      Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
    • Martin Hope
      Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
    • Martin Hope
      Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
    • Martin Hope
      Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
    • Martin Hope
      haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
    • Martin Hope
      qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
    • Martin Hope
      markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
    • Martin Hope
      Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
    • Martin Hope
      Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
    • Martin Hope
      Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

    热门标签

    sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

    Explore

    • 主页
    • 问题
      • 最新
      • 热门
    • 标签
    • 帮助

    Footer

    AskOverflow.Dev

    关于我们

    • 关于我们
    • 联系我们

    Legal Stuff

    • Privacy Policy

    Language

    • Pt
    • Server
    • Unix

    © 2023 AskOverflow.DEV All Rights Reserve