`
aroundworld2008
  • 浏览: 47798 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

转 Workdocuments]Oracle数据库RMAN备份与恢复技术

阅读更多

[Workdocuments]Oracle数据库RMAN备份与恢复技术

作者:罗立辉
日期:24-Jan-2005
出处:http://www.gisway.com
版本:0.1


计算机是易坏的。主板上的芯片、主板电路、内存、电源等任何一项不能正常工作,都会导致 计算机系统不能正常工作。当然,这些损坏可以修复,不会导致应用和数据的损坏或丢失。但是,如果计算机的硬盘损坏,将会导致应用和数据的损坏或丢失。而数 据是关键,如果数据被破坏或者丢失,则会对应用系统能否正常运行起着决定性作用,所以数据必须要备份,然后用备份来恢复数据。

  备份,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。恢复,就是把数据库由存在故障的状态转变为无故障状态的过程。

RMAN ( Recovery Manager, 恢复管理器 )是从Oracle8开始提供的一套用于备份和恢复的有利工具,它有两种使用界面:GUI(图形用户界面)CLI(命令行界面)。使用RMAN不但可以完成Oracle 数据库备份和恢复的各种任务,还具有相当全面的报表功能。采用数据库提供的RMAN备份工具有以下的优点:

  •  
  • 支持在线热备份
  •  
  • 支持多级增量备份
  • 支持并行备份,恢复
  • 减小所需要备份量
  • 备份,恢复使用简单
  •  

    1、配置RMAN

    配置RMAN包括配置CATALOG数据库,配置数据库与媒体管理软件的接口,制定RMAN的多级备份方案,写RMAN备份脚本

    1.1 CATALOG数据库

    因为RMAN自动维护备份和恢复所需要的各种信息,所以RMAN必须把这些以某种形式保存。RMAN支持两种形式保存这些信息,数据库的控制文件或创建一个单独的数据库来保存RMAN的信息。

    当选择把RMAN的信息存储在控制文件时,控制文件的丢失时将导致备份将不能进行恢复。所以若采用RMAN做备份,推荐一定采用RMAN CATALOG数据库来单独存放备份信息。这个单独的数据库(称为CATALOG数据库)只需要很小的空间,既可以和被备份的数据库(E10K)放在同一主机上,也可以单独放在另一台主机上(如果条件允许,推荐放在一台单独的主机上来确保最大的可恢复性)。

    备份CATALOG数据库:因为CATALOG数据库包含了所有的备份信息,所以该数据库本身也是需要通过某种方法进行备份,但因为该数据库很小(一年内可能才增加十几二十兆),所以既可以对它进行冷备份,也可以进行逻辑的输出(EXPORT)。

    配置CATALOG数据库:

  •  
  • dbassist创建数据库。

  •  
  • 在该数据库创建RMAN数据库用户:

    create user rman identified by rman default tablespace ts_rman

    temporary tablespace temp;

    grant connect ,resource , RECOVERY_CATALOG_OWNER to rman.

  •  
  • 连接到目标数据库和CATALOG数据库

    rman target system/manager@target_tnsname rcvcat rman/rman@catalog_tnsname

  •  
  • 创建CATALOG用户的表:

    rman>create catalog

  •  
  • 登记目标数据库:

    rman>register database

    这样就可以利用该RMAN数据库来备份目标数据库了。

    1.2 磁带接口

    当使用专用的磁带管理工具时,必须配置数据库与磁带的接口,一般是管理工具提供一个动态连接库与数据库进行连接。以下是一个测试的RMAN脚本:

    run {

    allocate channel 'dev1' type disk

    resync catalog;

    backup format ‘/archive/ctl%u_%p_%c ‘ current controlfile;

    release channel dev1;

    }

    1.3 多级备份策略

    采用多级备份是为了减少了恢复所需要的时间和减少每天备份所需要的时间,而又保证系统有很好的恢复性。但是在恢复时间和备份时间要有一个权衡。比如只要开 始的一个全备份和备份所有产生的归档文件就可以保证把数据库恢复到最新的状态,但是一般来说实际上并不会这么进行(因为在恢复时将需要很长很长的时间), 多级备份就是为了解决这样的问题。以下是一种建议的方案。

    每半年做一个数据库的全备份(包含只读表空间),每个月做一次零级备份(不包含只读表空间),每个星期做一次一级备份,每天做一个二级备份,任何表空间改成只读状态后做一个该表空间的备份。当需要时(如四个小时归档文件系统就要接近满了)备份归档文件

    数据库全备份脚本:

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    backup full  tag 'dbfull' format '/o9i/testrman/full%u_%p_%c' database ;

    sql 'alter system archive log current' ;

    backup filesperset 3   archivelog all delete input;

    release channel dev1;

    release channel dev2;

    release channel dev3;

    }

     

    零级备份脚本(只读表空间除外)

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    backup incremental level 0  tag 'dbL0' format '/o9i/testrman/basic%u_%p_%c' database skip readonly;

    sql 'alter system archive log current' ;

    backup filesperset 3   archivelog all delete input;

    release channel dev1;

    release channel dev2;

    release channel dev3;

    }

    一级备份脚本

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    backup incremental level 1  tag 'dbL1' format '/o9i/testrman/basic%u_%p_%c' ddatabase skip readonly;

    sql 'alter system archive log current' ;

    backup filesperset 3   archivelog all delete input;

    release channel dev1;

    release channel dev2;

    release channel dev3;

    }

     

    二级备份脚本

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    backup incremental level 2  tag 'dbL2' format '/o9i/testrman/basic%u_%p_%c' ddatabase skip readonly;

    sql 'alter system archive log current' ;

    backup filesperset 3   archivelog all delete input;

    release channel dev1;

    release channel dev2;

    release channel dev3;

    }

    表空间备份脚本(以users表空间为例)

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    backup  tag 'tsusers' format '/o9i/testrman/basic%u_%p_%c' tablespace users;

    sql 'alter system archive log current' ;

    backup filesperset 3   archivelog all delete input;

    release channel dev1;

    release channel dev2;

    release channel dev3;

    }

    归档文件备份脚本

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    backup filesperset 3   archivelog all delete input;

    release channel dev1;

    release channel dev2;

    release channel dev3;

    }

    则每天所需要备份的数据量只有一天的改变量。而做恢复时最多只要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,就只能够减少零级备份之间的时间间隔(如可以每个星期做一个零级备份,这样恢复时最多只需要恢复一个星期的数据量)。

    备份CATALOG数据库(数据库逻辑输出)

    exp pafile=exp.dat

    其中exp.dat如下

    userid=rman/rman

    file=rmanexp.dmp

     

    2、维护RMAN

    RMAN的维护工作主要是:

    1.  查看备份信息

    2.  因为手工删除了备份文件或归档文件需要把RMAN CATALOG数据库的信息与手工删除的信息同步。

    2.1 检查RMAN备份信息

    列出已经过时的备份:

    RMAN>report obsolete;

    删除过时的备份信息

    RMAN> allocate channel for maintenance type disk;

    RMAN> change backupset id delete;

    RMAN> release channel;

    2.2 RMAN信息同步

    当手工删除了数据库的归档文件后,要执行以下脚本进行同步:
    RMAN> allocate channel for maintenance type disk;

    RMAN> change archivelog all crosscheck;

    RMAN> release channel;

    当手工删除了数据库的RMAN备份文件后,要执行以下脚本进行同步:
    RMAN> allocate channel for maintenance type disk;

    RMAN> crosscheck backup;

    RMAN> delete expired backup;

    RMAN> release channel;

    2.3 使用RMAN进行恢复

    数据库的的恢复比较复杂,有许多不同的情况必须在了解ORACLE数据库结构的条件下用不同的方法处理,RMAN的好处在于大部分情况不需要理解数据库的结构而使用一些最简单语句来进行恢复,这里只讨论了最常用最普通的恢复情况

    2.3.1 恢复整个数据库

    在恢复整个数据库之前必须让数据库处于安装的状态(mount状态)

    svrmgrl>startup mount

    rman>

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    restore  database ;

    recover database ;

    release channel dev1 ;

    release channel dev2 ;

    release channel dev3 ;

    }

    2.3.2 恢复单个表空间

    在恢复该表空间之前让该表空间处于脱机的状态(offline状态)

    svrmgrl>alter tablespace users offline;

    rman>

    run {

    allocate channel 'dev1' type disk   ;

    allocate channel 'dev2' type disk ;

    allocate channel 'dev3' type disk ;

    restore  tablespace users ;

    recover tablespace users ;

    release channel dev1 ;

    release channel dev2 ;

    release channel dev3 ;

    }

    3、 结束语

    RMAN备份数据库虽然相比其它的备份有很多优点,但是缺点也是不容忽视的。

    参考信息

    oracle - http://www.oracle.com.cn/onlinedoc/index.htm


    <script type="text/javascript"></script> <script src="http://www.gisway.com/pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <script src="http://www.gisway.com/js/author.js" type="text/javascript"></script>

    本文作者

    罗立辉,中科院某研究所,尚未结婚生子,正为金钱犯愁,最喜NBA,看姚明。目前关注Spatial Modeling Environment。
    个人站点:http://www.gisway.com/ 。可以通过电子邮件 联系到他。

    原文出处

    http://www.gisway.com/WorkDoc/RMAN.htm

    回上页<-|->回首页
    <script src="http://www.gisway.com/js/license.js" type="text/javascript"></script>

    All Articles (by 罗立辉) are licensed under a Creative Commons License.
    I would welcome any feedback. Please send questions, comments or corrections to iffy.law@gmail.com
    分享到:
    评论

    相关推荐

      Oracle数据库RMAN备份与恢复.pdf

      定制备份策略正确的备份策略不仅能保证数据库服务器高效率高性能的运行和使用,还能确保恢复与备份的有效性和可靠性。 Oracle 的备份方法主要有全备份、增量备份和差分备份。全备份是每次转储数据库全部数据,生成...

      ORACLE数据库RMAN备份恢复[参照].pdf

      ORACLE 数据库 RMAN 备份恢复 ORACLE 数据库 RMAN 备份恢复是指使用 ORACLE 的 Recovery Manager(RMAN)工具对数据库进行备份和恢复的过程。RMAN 是 ORACLE 数据库管理系统中的一种备份和恢复工具,能够对数据库...

      Oracle数据库RMAN备份与恢复技术

      ### Oracle数据库RMAN备份与恢复技术详解 #### 引言 在信息技术领域,数据安全与完整性至关重要。Oracle数据库,作为全球领先的数据库管理系统之一,提供了多种数据保护机制,其中RMAN(Recovery Manager,恢复...

      windows下的oracle数据库rman自动备份和恢复.pdf

      " oracle数据库RMAN自动备份和恢复" Oracle数据库RMAN自动备份和恢复是指使用Oracle提供的RMAN(Recovery Manager)工具来实现数据库的自动备份和恢复。RMAN是Oracle数据库的备份和恢复解决方案,可以实现数据库的...

      基于RMAN的Oracle数据库备份与恢复机制.pdf

      关键词:Oracle RMAN备份恢复机制 数据库备份与恢复 RMAN组成结构 备份模式。 本文档的主要内容包括: 1. 基于RMAN的Oracle数据库备份与恢复机制的介绍 2. RMAN的组成结构和运行机制 3. RMAN的备份模式和恢复机制 ...

      oracle数据库RMAN备份方案

      Oracle 数据库 RMAN 备份方案 Oracle 数据库 RMAN 备份方案是一个生产环境验证实施的备份解决方案,旨在保护 Oracle 数据库的数据安全和可用性。本方案通过使用 Oracle 的 RMAN 工具,提供了一个完整的备份和恢复...

      Oracle 11g R2 Rman备份与恢复_刘耀龙的博客-CSDN博客_rman备份.pdf

      Oracle 11g R2 的 RMAN (Recovery Manager) 是 Oracle 数据库管理系统中的一个关键工具,主要用于数据库的备份和恢复。RMAN 提供了一种高效且灵活的方式来管理和保护数据库,确保在数据丢失或系统故障时能够快速恢复...

      Oracle数据库Rman备份方案

      Oracle RMAN(Recovery Manager)是一种功能强大的工具,用于管理Oracle数据库的备份、恢复及灾难恢复。本文将详细介绍如何使用RMAN来制定Oracle数据库的备份策略,包括设置归档模式、创建备份脚本以及设置自动化的...

      windows上oracle数据库rman自动备份策略

      RMAN(Recovery Manager)是Oracle提供的一种强大的工具,专门用于数据库备份、恢复和维护。本篇将深入探讨如何利用RMAN来实现自动备份策略,并结合Windows的任务计划程序进行定时执行。 一、RMAN简介 RMAN是Oracle...

      顶级DBA漫谈Oracle Rman备份与恢复

      Oracle RMAN 备份与恢复概述 Oracle RMAN(Recovery Manager)是一种强大的备份和恢复工具,旨在帮助DBA管理员更好地管理和保护Oracle数据库。以下是Oracle RMAN备份与恢复的相关知识点: 备份恢复概述 备份恢复...

      Windows系统与Linux系统间oracle数据库rman备份恢复方法

      采用rman备份的oracle数据库从Windows操作系统的恢复到Linux操作系统方法

      傻瓜式实战OracleRMAN数据库备份和恢复视频

      教程名称:傻瓜式实战Oracle RMAN数据库备份和恢复视频课程目录:【】数据库备份和恢复系列].ITBOBA_RMAN_1【】数据库备份和恢复系列].ITBOBA_RMAN_10【】数据库备份和恢复系列].ITBOBA_RMAN_2【】数据库备份和恢复...

      《Oracle Database 11g RMAN备份与恢复》PDF版本下载.txt

      《Oracle Database 11g RMAN备份与恢复》PDF版本下载

      Oracle 12c备份恢复-RMAN工具技术手册

      Oracle 12c 备份恢复-RMAN 工具技术手册 本文档旨在提供 Oracle 12c 备份恢复的技术手册,主要介绍 RMAN 工具的概念、架构、备份类型和使用方法。 一、RMAN 概念 RMAN(Recovery Manager)是 Oracle 推荐的备份和...

      oracle 9i rman 备份与恢复技术.pdf

      RMAN作为Oracle 9i数据库的重要组成部分,其备份与恢复技术对于保障数据安全和业务连续性至关重要。通过合理配置数据库参数、掌握RMAN命令语法,以及熟练应用备份与恢复流程,数据库管理员能够有效应对各种数据管理...

      Oracle+9i+RMAN备份与恢复技术

      Oracle+9i+RMAN备份与恢复技术

      Oracle数据库RMAN备份策略研究

      RMAN是Oracle数据库内置的一个强大备份与恢复工具,它支持多种备份类型和恢复策略,能够有效地应对各种数据库故障。 #### 2. RMAN备份策略 ##### 2.1 完全备份 完全备份是最基础也是最常用的备份类型,它包含...

      Oracle数据库RMAN备份与灾难恢复在寒区旱区特色数据库的应用.pdf

      总的来说,Oracle数据库RMAN备份与灾难恢复技术在寒区旱区特色数据库的应用中扮演着至关重要的角色,它提供了高效、安全的数据保护方案,确保了在各种复杂情况下的数据安全。通过合理配置和使用RMAN,可以实现更高效...

      Oracle Database 11g RMAN备份与恢复

      总的来说,本书作为Oracle Database 11g RMAN备份与恢复的教程,为读者提供了全面的RMAN使用技巧和策略,涵盖了从基础知识到实际应用的各个层面,旨在帮助读者建立一个强大的备份与恢复体系结构,确保数据库的高可用...

      利用RMAN实现Oracle数据库的备份与恢复.pdf

      "利用RMAN实现Oracle数据库的备份与恢复.pdf" titre: 利用RMAN实现Oracle数据库的备份与恢复 摘要:本文主要介绍了利用RMAN实现Oracle数据库的备份与恢复。RMAN(Recovery Manager)是Oracle数据库提供的一套用于...

    Global site tag (gtag.js) - Google Analytics