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 / 问题 / 152
Accepted
Sathyajith Bhat
Sathyajith Bhat
Asked: 2011-01-05 05:39:33 +0800 CST2011-01-05 05:39:33 +0800 CST 2011-01-05 05:39:33 +0800 CST

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

  • 772

我在组织中看到的由 DBA 执行的“实践”之一是使用exp/之类的工具将完整的数据库导出expdp视为备份。

这是一个好习惯吗?与这种方法相比,使用 RMAN 有什么优势?

oracle backup
  • 3 3 个回答
  • 2746 Views

3 个回答

  • Voted
  1. Best Answer
    Gaius
    2011-01-05T12:44:57+08:002011-01-05T12:44:57+08:00

    RMAN 的优点是 PITR - 时间点恢复。您可以对 DBF 进行 RMAN 备份和对归档重做日志进行 RMAN 备份,并将数据库恢复到最近归档重做日志备份之前的任何时间点。这种方法的缺点是它的粒度非常粗——您只能在表空间级别进行恢复。

    exp/expdp 的优点是您拥有数据库的一致副本,您可以将其导入到新创建的空白数据库中。但是,您不能将其前滚——此时它是一个完全独立的、独立的数据库,与其原始数据库没有逻辑关系。但是很容易只恢复一个表,甚至从导出中恢复几行。

    一个好的方法是定期 RMAN 完整和增量数据文件备份、归档重做日志的连续备份(例如,一旦一个归档日志备份完成,立即启动下一个备份,以便将日志“流式传输”到磁带),然后教育您的用户在使用 exp/imp 时,他们可以执行自己的“备份”(在想要数据的实际副本的情况下)和闪回(这样他们可以在 DML 出错的情况下进行自己的恢复)。

    请记住 - 备份旨在让 DBA 从硬件的灾难性故障中恢复。这不是为了最终用户的利益(否则您将花费​​全部时间恢复到测试系统并将几行复制回原始系统!)。

    • 7
  2. REW
    2011-01-05T10:09:10+08:002011-01-05T10:09:10+08:00

    Exp/Expdp 作为备用解决方案就像说汽车配件商店是您的备用汽车。从技术上讲,它会让你重新振作起来,但它只会给你带来痛苦和折磨。

    Exp 或 Expdp 可用作文件系统冷备份或 rman 热备份或冷备份(其他 Oracle 备份客户端软件通常只运行 RMAN 命令)的辅助备份。

    典型的方法如下:

    1 cold backup weekly
    1 hot backup daily
    

    如果您真的想谨慎行事,请定期将存档的重做日志从服务器传输(每小时有效)或为第二个存档日志目标设置远程位置。

    -- RMAN *新 --

    我的典型 RMAN 会话:

    rman target=/
    
    backup as compressed backupset database plus archivelog delete input;
    
    delete obsolete;
    
    exit
    

    “备份为压缩备份集...”:您还可以制作一个图像,它是数据文件的字节副本。这就像每周备份一样好。

    “...数据库...”:很明显

    "...plus archivelogs..." :为我们提供时间点恢复(以及时间点克隆 [rman 中的重复命令])

    "...delete input" :删除已备份的归档日志。您还可以将其设置为删除已备份至少两次的文件等。

    “delete obsolete”:当您配置了 rman 保留策略(我的是 5 天)时,这将删除该窗口之外的备份。这并不意味着我们只能在 5 天前恢复。您仍然应该每天对闪回恢复区进行磁带/服务器外备份。这只是意味着在线您将有 5 天的恢复时间,之后您需要从磁带/服务器外备份中恢复闪存恢复区项目,然后在 rman 中注册以使用它们。

    这是来自会话的实际日志,针对路径等稍作修改:

    oracle@prodserver[PROD]$ rman target=/
    
    Recovery Manager: Release 10.2.0.4.0 - Production on Wed Jan 5 21:00:00 2011
    
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    
    connected to target database: PROD (DBID=randomnumber)
    
    RMAN> backup
    2> as compressed backupset
    3> database
    4> include current controlfile
    5> plus archivelog delete input;
    6> backup spfile;
    7> delete obsolete;
    8>
    
    Starting backup at 05-JAN-11
    current log archived
    using target database control file instead of recovery catalog
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: sid=291 devtype=DISK
    channel ORA_DISK_1: starting compressed archive log backupset
    channel ORA_DISK_1: specifying archive log(s) in backup set
    input archive log thread=1 sequence=743 recid=743 stamp=739623589
    input archive log thread=1 sequence=744 recid=744 stamp=739623940
    input archive log thread=1 sequence=745 recid=745 stamp=739624712
    input archive log thread=1 sequence=746 recid=746 stamp=739625380
    input archive log thread=1 sequence=747 recid=747 stamp=739659606
    channel ORA_DISK_1: starting piece 1 at 05-JAN-11
    channel ORA_DISK_1: finished piece 1 at 05-JAN-11
    piece handle=/u03/oraflash/PROD/backupset/2011_01_05/o1_mf_annnn_TAG20110105T210008_6lb8kb4o_.bkp tag=TAG20110105T210008 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:01:26
    channel ORA_DISK_1: deleting archive log(s)
    archive log filename=/u03/oraflash/PROD/archivelog/2011_01_05/o1_mf_1_743_6l95ckxx_.arc recid=743 stamp=739623589
    archive log filename=/u03/oraflash/PROD/archivelog/2011_01_05/o1_mf_1_744_6l95plo2_.arc recid=744 stamp=739623940
    archive log filename=/u03/oraflash/PROD/archivelog/2011_01_05/o1_mf_1_745_6l96gpok_.arc recid=745 stamp=739624712
    archive log filename=/u03/oraflash/PROD/archivelog/2011_01_05/o1_mf_1_746_6l973l32_.arc recid=746 stamp=739625380
    archive log filename=/u03/oraflash/PROD/archivelog/2011_01_05/o1_mf_1_747_6lb8k57v_.arc recid=747 stamp=739659606
    Finished backup at 05-JAN-11
    
    Starting backup at 05-JAN-11
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting compressed full datafile backupset
    channel ORA_DISK_1: specifying datafile(s) in backupset
    input datafile fno=00001 name=/u02/oradata/PROD/system01.dbf
    input datafile fno=00005 name=/u02/oradata/PROD/software.dbf
    input datafile fno=00003 name=/u02/oradata/PROD/sysaux01dbf
    input datafile fno=00002 name=/u02/oradata/PROD/undotbs01.dbf
    input datafile fno=00004 name=/u02/oradata/PROD/users.dbf
    channel ORA_DISK_1: starting piece 1 at 05-JAN-11
    channel ORA_DISK_1: finished piece 1 at 05-JAN-11
    piece handle=/u03/oraflash/PROD/backupset/2011_01_05/o1_mf_nnndf_TAG20110105T210135_6lb8n0y4_.bkp tag=TAG20110105T210135 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:01:45
    channel ORA_DISK_1: starting compressed full datafile backupset
    channel ORA_DISK_1: specifying datafile(s) in backupset
    including current control file in backupset
    including current SPFILE in backupset
    channel ORA_DISK_1: starting piece 1 at 05-JAN-11
    channel ORA_DISK_1: finished piece 1 at 05-JAN-11
    piece handle=/u03/oraflash/PROD/backupset/2011_01_05/o1_mf_ncsnf_TAG20110105T210135_6lb8qblm_.bkp tag=TAG20110105T210135 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
    Finished backup at 05-JAN-11
    
    Starting backup at 05-JAN-11
    current log archived
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting compressed archive log backupset
    channel ORA_DISK_1: specifying archive log(s) in backup set
    input archive log thread=1 sequence=748 recid=748 stamp=739659803
    channel ORA_DISK_1: starting piece 1 at 05-JAN-11
    channel ORA_DISK_1: finished piece 1 at 05-JAN-11
    piece handle=/u03/oraflash/PROD/backupset/2011_01_05/o1_mf_annnn_TAG20110105T210323_6lb8qf3l_.bkp tag=TAG20110105T210323 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
    channel ORA_DISK_1: deleting archive log(s)
    archive log filename=/u03/oraflash/PROD/archivelog/2011_01_05/o1_mf_1_748_6lb8qcrr_.arc recid=748 stamp=739659803
    Finished backup at 05-JAN-11
    
    Starting backup at 05-JAN-11
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting full datafile backupset
    channel ORA_DISK_1: specifying datafile(s) in backupset
    including current SPFILE in backupset
    channel ORA_DISK_1: starting piece 1 at 05-JAN-11
    channel ORA_DISK_1: finished piece 1 at 05-JAN-11
    piece handle=/u03/oraflash/PROD/backupset/2011_01_05/o1_mf_nnsnf_TAG20110105T210329_6lb8qlnm_.bkp tag=TAG20110105T210329 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
    Finished backup at 05-JAN-11
    
    RMAN retention policy will be applied to the command
    RMAN retention policy is set to recovery window of 5 days
    using channel ORA_DISK_1
    Deleting the following obsolete backups and copies:
    Type                 Key    Completion Time    Filename/Handle
    -------------------- ------ ------------------ --------------------
    Backup Set           55     30-DEC-10        
      Backup Piece       55     30-DEC-10          /u03/oraflash/PROD/backupset/2010_12_30/o1_mf_nnndf_TAG20101230T210026_6ktg9v8w_.bkp
    Backup Set           56     30-DEC-10        
      Backup Piece       56     30-DEC-10          /u03/oraflash/PROD/backupset/2010_12_30/o1_mf_ncsnf_TAG20101230T210026_6ktgdvnt_.bkp
    Backup Set           57     30-DEC-10        
      Backup Piece       57     30-DEC-10          /u03/oraflash/PROD/backupset/2010_12_30/o1_mf_annnn_TAG20101230T210204_6ktgdy5j_.bkp
    Backup Set           58     30-DEC-10        
      Backup Piece       58     30-DEC-10          /u03/oraflash/PROD/backupset/2010_12_30/o1_mf_nnsnf_TAG20101230T210210_6ktgf3pz_.bkp
    Backup Set           59     31-DEC-10        
      Backup Piece       59     31-DEC-10          /u03/oraflash/PROD/backupset/2010_12_31/o1_mf_annnn_TAG20101231T210008_6kx2ob5r_.bkp
    deleted backup piece
    backup piece handle=/u03/oraflash/PROD/backupset/2010_12_30/o1_mf_nnndf_TAG20101230T210026_6ktg9v8w_.bkp recid=55 stamp=739141227
    deleted backup piece
    backup piece handle=/u03/oraflash/PROD/backupset/2010_12_30/o1_mf_ncsnf_TAG20101230T210026_6ktgdvnt_.bkp recid=56 stamp=739141323
    deleted backup piece
    backup piece handle=/u03/oraflash/PROD/backupset/2010_12_30/o1_mf_annnn_TAG20101230T210204_6ktgdy5j_.bkp recid=57 stamp=739141326
    deleted backup piece
    backup piece handle=/u03/oraflash/PROD/backupset/2010_12_30/o1_mf_nnsnf_TAG20101230T210210_6ktgf3pz_.bkp recid=58 stamp=739141331
    deleted backup piece
    backup piece handle=/u03/oraflash/PROD/backupset/2010_12_31/o1_mf_annnn_TAG20101231T210008_6kx2ob5r_.bkp recid=59 stamp=739227610
    Deleted 5 objects
    
    
    Recovery Manager complete.
    
    • 5
  3. YasirA
    2011-01-05T05:49:36+08:002011-01-05T05:49:36+08:00

    RMAN 的优点如下:

    • 使用 Windows 概念实现的自动备份保留策略。您可以指定备份应保留的天数并选择保留它们的策略:它们一旦过期就会被删除,或者如果没有可用空间可用于新备份,它们就会被删除
    • 在写入媒体或使用多个磁盘控制器时使用通道来提高性能
    • 轻松还原 — 基本上,您只需列出您拥有的备份并指定要从中执行数据库还原的备份
    • RMAN 可以将其备份元数据保存在称为 RMAN 存储库的独立表中,该表可以保存您执行的所有备份的大量记录,而不是控制文件
    • 您可以指定备份副本的默认数量,而且后者可以保存在不同的物理磁盘(媒体)上
    • 4

相关问题

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

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

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

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

Sidebar

Stats

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

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

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

    • 4 个回答
  • Marko Smith

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

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +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
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +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