RMAN 概述及其体系结构

系统 1716 0

--=========================

-- RMAN 概述及其体系结构

--=========================

 

一、 Recovery Manager RMAN )特性

    是一种用于集备份 (backup) 、还原 (restore) 和恢复 (recover) 数据库于一体的 Oracle 工具,支持命令行及图形界面操作

    能够备份整个数据库、表空间、数据文件、控制文件、归档文件以及 Spfile 参数文件。

    支持增量数据块级别的备份和块级别的介质恢复

    可以保存频繁执行的备份恢复脚本

     可以实现数据库的克隆、使用 RMAN 建立备用数据库

    支持镜像备份与备份集,可以备份到磁盘与磁带

    管理备份与恢复任务

    可增加备份并发度或限制 I / O 减少备份给数据库带来的影响

    在备份期间检查损坏的数据块

    支持在备份期间使用压缩特性来减少磁盘空间的占用

 

二、 RMAN 组件

    1.RMAN 可执行程序

        Windows 操作系统中为 rman . exe ,在 Unix 系统中为 rman

        程序所在位置: $ORACLE_HOME / bin

        a . 进程与内存要求

            更多的进程的需要

            大池的分配

        b . 基本环境变量需求

            ORACLE_SID , ORACLE_HOME,PATH,NLS_LANG, 对基于时间的备份与恢复,需要另外设置 NLS_DATE_FORMAT

        c . 权限要求

            需要 sysdba 系统权限

            如果是本地,也可以采用 OS 认证,远程需要采用密码文件认证

        d . 版本要求

            RMAN 工具版本与目标数据库必须是同一个版本。如使用恢复目录     还需要注意

                创建 rman 恢复目录的脚本版本必须大于或等于恢复目录所在数据库的版本

                创建 rman 恢复目录的脚本版本必须大于或等于目标数据库版本

        e . 注意 Linux 中有两个 RMAN

            [root@robinson ~]# find / -name rman

            /usr/X11R6/bin/rman    #-- oracle rman 命令

            /u01/app/oracle/10g/oc4j/j2ee/oc4j_applications/applications/em/em/database/rman

            /u01/app/oracle/10g/oc4j/j2ee/oc4j_applications/applications/em/em/WEB-INF/perl/db/rman

            /u01/app/oracle/10g/bin/rman   #--oracle 中的 rman 命令

            /u01/app/oracle/10g/sysman/admin/scripts/db/rman        

            根据变量 PATH 的设置,哪个在前,则优先使用在前面的命令

            解决办法:修改 PATH 变量,即将 .bash_profile 文件 PATH 项中 $ORACLE_HOME/bin 放在 $PATH 之前

            [oracle@robinson ~]$ echo $PATH   #-- 修改前

            / usr / kerberos / bin :/ usr / local / bin :/ bin :/ usr / bin :/ home / oracle / bin :/ u01 / app / oracle / 10g / bin

 

            [oracle@robinson ~]$ echo $PATH   #- - 修改后

            / u01 / app / oracle / 10g / bin :/ usr / kerberos / bin :/ usr / local / bin :/ bin :/ usr / bin :/ home / oracle / bin

   

    2. 目标数据库

        目标数据库即指想要备份、还原与恢复的数据库。 RMAN 可执行程序一次只能连接一个数据库

        目标数据库的控制文件存储了 RMAN 所需的信息 ( 存储仓库使用控制文件时 ) RMAN 通过读取控制文件来确定目标数据库的物理结构,

        要备份的数据文件的位置,归档信息等,在使用 RMAN 时会对控制文件进行更新。

   

    3. 服务器进程与通道

        RMAN 可从从远程或本地通过普通的服务器会话与调用 PL / SQL 连接到实例, RMAN 启动后会产生一个普通的服务器进程

        一旦备份与还原操作启动,则 RMAN 会根据配置启用一个或多个通道

        通道简言之即是完成文件复制工作的的服务器进程,多通道则实现了并行执行操作

        通道分为备份或还原到磁盘的磁盘通道 (disk channel ) 、备份还原到磁带的磁带通道 ( SBT ) ,可以自动或手动分配通道

   

    4. 存储仓库

        存储了与目标数据库及其备份相关的元数据

        包含目标数据库物理结构的详细信息、数据文件的位置

        已完成的所有备份的细节

        RMAN 的永久配置信息

        存储仓库始终被存储在目标数据库的控制文件内,或存储在恢复目录内 ( 一个单独的 Oracle 数据库 )

        参数 control_file_record_keep_time 决定了控制文件里可重复使用的记录所能保存的最小天数

            当一条新的记录需要添加到可重用记录的空间时,并且最老的记录在可重用记录空间中还没有老化,即实际保留的天数未超过

            这个参数规定的天数,则控制文件中可重用记录部分的空间将被自动扩展,此时控制文件尺寸将会变大。

   

    5. 恢复目录

        可以将目标数据库的备份恢复 , 元数据等相关信息写入到一个单独的数据库 , 这个单独的数据库即为恢复目录

        恢复目录可以存储 RMAN 脚本,而非恢复目录情况下,则备份恢复脚本存储为操作系统文件

        恢复目录的内容通常包括,数据文件、归档日志备份集,备份片,镜像副本、 RMAN 存储脚本,永久久的配置信息等

        建议将恢复目录放置到与目标数据库不同的主机之上

   

    6. 支持介质管理库

        介质管理库用于 RMAN 从磁带进行备份与还原

        RMAN 支持主流的磁带库设备与软件 ( IBM , Hewlett Packard )

   

    7. 辅助数据库 ( Standby Database $ duplicate database)

        Standby Database: 是目标数据库的一个副本 , 使用目标数据库 ( 主数据库 )archived log 将其更新 , 不具有唯一的 DBID

            rman 可以创建或备份 Standby Database ,可用于主数据库的故障转移

        duplicate database: 是目标数据库的一个副本或子集,且拥有唯一的 DBID, 从而独立于主数据库

            能够在相同的恢复目录内作为一个主数据库注册,通常用于测试目的

        TSPITR(tablespace point-in-time recovery): 表空间时点恢复 , 将一个或多个表空间恢复到非当前状态 , 而其它表空间保留当前状态

               

    8. 备份目的地

        默认的备份目的地为闪回区, $ORACLE_BASE / flash_recovery_area /

        可以设置参数 DB_RECOVERY_FILE_DEST 参数和 DB_RECOVERY_FILE_SIZE 进行调整

       

    9. 通道与通道分配,请参考: RMAN 配置、监控与管理

   

三、使用 RMAN 连接到数据库

    1.RMAN 使用时需要考虑的问题

        资源:共享内存,更多的进程

        权限:授予用户 sysdba 权限, OS 访问设备的权限

        远程操作

            设置密码文件

            确保密码文件被备份

        全球化环境变量设置

        RMAN 命令行格式化时间参数

   

    2. 连接类型

        目标数据库

        恢复目录数据库,缺省情况下 RMAN 运行在非恢复目录数据库

        辅助数据库

            Standby database

            Duplicate database

            TSPITR instance

    4. 连接目标数据库或恢复目录

        -- 不连接数据库仅启动 rman

            [oracle@oradb ~]$ rman

       

        -- 使用操作系统认证连接到目标数据库

            Unix : $ ORACLE_SID = orcl ; export ORACLE_SID

                  $ rman target /

                 

            Win :    C : / > set oracle_sid = orcl

                   C : / > rman target /

                 

        -- 从命令行连接到目标数据库和恢复目录

            % rman target / catalog rman / cat@catdb   -- 使用 OS 认证 , 第二个 rman 为恢复目录的 schema

            % rman target sys / oracle@trgt catalog rman / cat@catdb   -- 使用 Oracle Net 认证

           

        -- rman 提示符连接到目标数据库和恢复目录

            % rman

            RMAN > connect target /                    -- 使用 OS 认证

            RMAN > connect catalog rman / cat@catdb

           

            % rman

            RMAN > connect target sys / oracle@trgt      -- 使用 Oracle Net 认证

            RMAN > connect catalog rman / cat@catdb

           

        -- 命令行连接到辅助数据库

            % rman auxiliary sys / aux@auxdb

            % rman target sys / oracle@trgt auxiliary sys / aux@auxdb catalog rman / cat@catdb

           

        -- rman 提示符连接辅助数据库

            % rman

            RMAN > connect auxiliary sys / aux@auxdb

           

            % rman

            RMAN > connect target sys / oracle@trgt

            RMAN > connect catalog rman / cat@catdb

            RMAN > connect auxiliary sys / aux@auxdb

       

        -- 其它

            远程连接

            rman target sys / oracle@trgt

            rman target / nocatalog   等同于 rman target /

       

        --rman 命令行参数

            输出到日志文件

                $ rman target sys / oracle

                  log = $ORALCE_HOME/oradata/log/rman.log append

     

            执行命名文件

            $ rman target sys / oracle

              cmdfile = $ORACLE_HOME / scirpts / my_rman_script . rcv

             

            $rman target sys / oracle@prod @'$ORACLE_HOME / scirpts / my_rman_script . rcv '

 

四、 RMAN 命令

    RMAN 命令分类

        单命令

            仅仅在 RMAN 提示符下执行

            单独被执行

            不能够作为 RUN 的子命令

            backup database

            下列命令不能用作批命令来使用

                CONNECT

                CONFIGURE

                CREATE CATALOG, DROP CATALOG, UPGRADE CATALOG

                CREATE SCRIPT, DELETE SCRIPT, REPLACE SCRIPT

                LIST

                REPORT

               

        批命令

            RUN 命令中用括号括起来使用 , 常用的批命令为 allocate channel,set newname for datafile,release channel,switch,set

            作为一个组被执行

            如:

                RMAN> RUN {

                   2> backup incremental level 0

                   3> format '/u01/app/oracle/bak/%d_%s_%p'

                   4> fileperset 5(database include current controlfile);

                   5> sql 'alter databaes archive log current ';}

                  

        混合的独立和作业命令              

 

五、更多参考        

 

Oracle 冷备份

 

SPFILE 错误导致数据库无法启动

 

Oracle 用户、对象权限、系统权限

 

Oracle 角色、配置文件

 

  Oracle 联机重做日志文件(ONLINE LOG FILE)

 

  Oracle 控制文件(CONTROLFILE)

 

  Oracle 表空间与数据文件

 

Oracle 归档日志

 

RMAN 概述及其体系结构


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论