【Oracle篇】rman物理备份工具的基础理论概述(第一篇,总共八篇)

☘️博主介绍☘️:

✨又是一天没白过,我是奈斯,DBA一名✨

✌✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌✌️

❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣️❣️❣️

5b6597af69f74363bf40497225cbafed.gif

    久违了,各位朋友们!近来的工作变动确实让我有些忙碌,不过,今天终于能抽出片刻宁静的时光,与大家分享我的新篇章——Oracle的RMAN物理备份工具。在之前的博客中,我详细探讨了Oracle的逻辑备份工具expdp(exp)和impdp(imp),它们为我们的数据库提供了强大的数据导出和导入功能。而今,我将转向另一种备份工具,即物理备份RMAN(Recovery Manager)这一强大工具。

    RMAN是Oracle提供的一款功能丰富的备份与恢复工具,它允许我们 直接备份数据库的物理文件,而不仅仅是数据的逻辑表示 。这种备份方式在某些场景下,尤其是在需要快速恢复或保持数据库物理结构一致性时,显得尤为重要。在接下来的内容中,我将带大家深入了解RMAN的工作原理、使用方法以及一些最佳实践,希望能够为大家在数据库管理和维护方面提供一些有价值的参考。

    然而,RMAN所涉及的内容之广、之深,使得难以在单篇文章中全面涵盖。所以我将理论、命令、备份策略、异机恢复、坏块处理等分成八篇文章去讲,即使分为八篇也有不少内容没有涵盖到,所以这八篇文章都是精华,看完这八篇就可以解决95%以上的RMAN相关工作内容了。八篇文章的内容分别如下:

  • 第一篇:rman物理备份工具的基础理论概述(当前篇)
  • 第二篇:rman工具实用指南:常用命令详解与实践
  • 第三篇:rman标准化全库备份策略
  • 第四篇:rman全库异机恢复:从RAC环境到单机测试环境的转移
  • 第五篇:rman全库异机恢复:从单机环境到RAC测试环境的转移
  • 第六篇:rman时间点异机恢复:从单机环境到单机测试环境的转移
  • 第七篇:Oracle数据库物理坏块处理:rman修复坏块实践与案例分析
  • 第八篇:逻辑备份工具expdp(exp)/impdp(imp)和物理备份工具rman的区别和各自的使用场景总汇

                            

目录

1、rman工具

一、rman的内存缓冲与块跟踪:

二、rman服务器进程:

三、rman的备份分类

四、rman连接操作的使用(本地和远程)

五、rman中执行操作系统命令,执行sql语句

六、使用rman创建脚本(必须连接到catalog数据库,不然无法保存)

案例一:连接rman创建一个rman脚本

七、使用rman执行外部脚本(使用rman参数cmdfile)

八、rman的Data Recovery Advisor(DRA,数据恢复顾问):

案例一:单机环境使用DRA修复数据库启动故障之控制文件丢失(11g rac不支持。在进行案例之前需要先进行备份)

案例二:单机环境使用DRA修复数据库启动故障之数据文件丢失(11g rac不支持。在进行案例之前需要先进行备份)

2、catalog数据库

一、ncatalog和catalog的恢复

二、升级的问题 

三、手工再同步恢复目录(resync catalog) 

四、注册catalog信息

五、撤消catalog注册信息

六、删除catalog注册信息

案例一:创建catalog恢复目录(在多实例备份时使用)


       

1、rman工具

    rman(recovery manager)是8i以后备份、还原和恢复的工具,位于$oracle_home/bin目录下。rman实用由两部分组成,可执行文件和recover.bsq文件。recover.bsq文件实质上是库文件,可执行文件从recover.bsq文件中析取代码来创建在目标数据库上执行的 pl/sql调用。

    rman支持命令行及图形接口,可以通过第三方软件(nbu\legato\tsm等)及磁带机进行备份 ,支持整备数据库、表空间、数据文件、控制文件、归档日志文件、参数文件等。

    通过rman可以用来备份恢复数据库的数据文件,归档日志,控制文件以及参数文件及整个数据库的备份恢复工具,同时也可以用来执行完全备份恢复和不完全备份恢复,通过计划任务实现自动的定时的最优化的备份恢复方案。

             

rman介绍:

01.可以实现自动备份和恢复

02.方便有效的备份归档日志

03.自动检测新的数据文件

04.支持增量备份

05.最大限度的减少备份和恢复的错误

06.减少恢复时间

07.在热备中不会产生redo日志

08.自动检测损坏的数据块,并跳过。

09.并行备份恢复

10.在线备份不影响业务的正常运转

              

rman体系架构:

    rman是服务器管理恢复工具(servermanaged recover,smr)实际上是一个独立应用程序,主要是建立oracle数据库的客户端连接,达到有效的访问并对数据库执行备份恢复操作,用于备份与恢复的接口。

服务进程

rman的服务是一个后台进程,用于rman工具与数据库之间的通信,也用于rman工具与磁盘/磁带等i/o设置之间的通信,服务进程负责备份与恢复的所有工作,在如下情况将产生一个服务进程。当连接到目标数据库分配一个新的通道

    

通道

通道是服务进程与i/o设备之前读写的途径,一个通道将对应一个服务进程,在分配通道时,需要考虑i/o设备的类型,i/o并发处理的能力,i/o设备能创建的文件的大小,数据库文件最大的读速率,最大的打开文件数目等因素

    

目标数据库

就是rman进行备份与恢复的数据库

        

恢复目录

用来保存备份与恢复信息的一个数据库,不建议创建在目标数据库上,利用恢复目录可以同时管理多个目标数据库,存储更多的备份信息,可以存储备份脚本。如果不采用恢复目录,可以采用控制文件来代替恢复目录,9i后支持控制文件自动备份的功能,利用控制文件很大程度上可以取代恢复目录。

       

媒体介质管理层

media management layer (mml)是第三方工具,用于管理对磁带的读写与文件的跟踪管理。如果你想直接通过rman备份到磁带上,就必须配置媒体管理层,媒体管理层的工具如备份软件可以调用rman来进行备份与恢复。

      

备份集与备份片

当发出backup命令的时候,rman将创建一个完成的备份,包含一个到多个备份集,备份集是一个逻辑结构,包含一组的物理文件。这些物理文件就是对应的备份片。备份片是最基本的物理结构,可以产生在磁盘或者磁带上,可以包含目标数据库的数据文件,控制文件,归档日志与spfile文件。备份集与备份片有如下规定:

(1) 一个数据文件不能跨越一个备份集,但是能跨多个越备份片

(2) 数据文件,控制文件能保存在同样的备份集上,但是不能与归档日志保存在同样的备份集上

       

资料库

rman资料库(rman repository)存储了目标数据库的元数据(metadata)和使用rman备份的备份集信息,例如备份集的位置,备份集内包括的备份片,备份集的状态等。rman进行备份和恢复操作都要访问rman资料库。

               

一、rman的内存缓冲与块跟踪:

    RMAN的备份是基于数据块的备份,数据块备份的工作原理是:RMAN基于备份算法规则来编译要备份的文件列表。

    RMAN会利用PGA(有时是SGA)创建一些缓冲区,然后通过这些缓冲区将数据块写入到备份中(这就是为什么在进行rman备份时,前期不会马上生成文件,而是将数据缓存到PGA中,然后生成文件)

                

内存缓冲区分为输入缓冲区和输出缓冲区:

  • 输入缓冲区input buffer填充从备份文件中读取数据块;
  • 输出缓冲区output buffer则在执行内存对内存的写操作时填充需要备份的数据块,一旦输出缓冲区被填满,输出缓冲区的内容就会被写入到备份位置。
  • 一旦所有文件已通过内存缓冲区过滤,就完成了备份片,同时RMAN会在目标数据库控制文件中写入备份片的完成时间和备份片的名称。

         

RMAN的内存利用:

    在磁盘上备份会使用PGA内存空间作为备份缓冲区,PGA内存空间从用于信道进程的内存空间中分配。如果操作系统没有配置本地异步I/O, 则可以利用DBWR_IO_SLAVES参数使用 I/O 丛属来填充内存中的输入缓冲。如果设置DBWR_IO_SLAVES参数为任意的非零值,则RMAN会自动分配4个I/O从属来协调输入缓冲区中数据块加载。为了实现这一功能,RMAN必须利用一个共享内存区域。因此,用于磁盘备份的内存缓冲区会被推入共享池,如果存在大池,则被推入大池。如果没有使用磁带I/O从属,则会在PGA中分配用于磁带输出缓冲区的内存。

        

rman块:

①块备份优点:

       1)每个数据块从磁盘读入内存时都会发生内存到内存的写操作

       2)在这个操作期间会检查数据块的损坏。

②空块压缩:

       RMAN访问数据块时可以选择空块压缩(null block compression),删除从来没有使用过的数据块(header is 0),并在执行内存对内存的写操作是丢弃这些数据块。因此,我们只需要备份使用过的数据块。

③未使用的块压缩:

       未初始化的块不会备份,在 10.2.0.3 版本后,即使是使用过的块,如果是空块,也不会被备份。

④RMAN的块跟踪:

        Block change tracking 记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。为此Oracle引入了一个新的后台进程,CTWR,其全称为Change Tracking Writer,用于记录变化的块并将变化写入相应的日志文件中。

     这里延展一个问题:开启|关闭rman block tracking块跟踪。增量的时候必须开。在使用RMAN增量备份的情况下,启动block change tracking,在做增量备份时会缩短RMAN备份的时间, 因为不用扫描整个data file。 但是block tracking也会带来其他的一些开销。所以要根据实际情况决定是否启用block change tracking

开启:
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/home/oracle/block.trc'; 
SQL> select status,filename from v$block_change_tracking; 禁用: 
SQL>alter database disable block change tracking;

⑤通过位图跟踪两次备份间变化的数据块:

  • 每次备份前进行位图切换;
  • 开发增量备份策略时,要考虑到8个位图的限制;一般增量备份周期为一个礼拜。在RAC环境中,change tracking file需要放在共享存储上,Change tracking file的大小和数据库的大小、enabled 的redo thread的个数成正比;
  • Change tracking file 的大小和数据更新的频率无关;
  • 开启块跟踪功能对数据库的性能有一点影响。

        

二、rman服务器进程:

RMAN生成一个到target db的客户端连接,并创建两个服务器进程:

(1)主要进程:生成对sys用户中的数据包调用(dbms_rcvman和dbms_backup_restore数据包),以执行备份和恢复操作,该进程会在备份和还原期间协调信道进程的工作。

(2)次要进程或(影子进程):轮询RMAN中的所有长事务(long-runningtransaction)并在内部记录信息。

               

rman进程只有在备份时才有(查看rman备份进程的SQL):

RMAN> backup database;
SQL> select sid,serial#,context,sofar,totalwork,round(sofar / totalwork * 100, 2) "%_COMPLETE"from v$session_longopswhere opname like 'RMAN%'AND OPNAME NOT LIKE '%aggregate%'and totalwork != 0and sofar <> totalwork;
sofar:完成的工作量
totalwork:总工作量
%_COMPLETE:完成的工作量的百分比

SQL>select sid,serial#,username,paddr,module,program,client_info from v$session where sid=1; 

SQL> select * from v$process where addr='00000000AF71B2B0';

            

三、rman的备份分类

rman完整备份:

    一个或多个数据文件的完整副本,包括从备份开始的所有级的数据块。

rman增量备份(基本、差异、累计增量备份的总称):

    从基本备份以来被修改过或增加过的数据块。增量备份分为0级增量基本备份、1级差异增量备份、1级累积增量备份,增量备份支持归档和非归档模式,并且只能使用rman才可以实现增量备份。 

  • 基本增量(backup incremental level=0 database):基本备份的增量级别为0,执行增量备份操作时,首先需要的是增量基本备份(incremental base backup),以后所有的增量备份都基于这个基本备份。如果没有生成基本备份就尝试执行增量备份操作,RMAN 会自动执行基本备份操作。
  • 差异增量(backup incremental level=1 database):差异备份的增量级别为1,对于差异增量备份来说,第一次是基本备份以来所有变化的数据块,之后RMAN会备份自上次同级或者低级差异增量备份以来所发生变化的数据块,差异备份是RMAN生成的增量备份的默认类型。差异增量是根据上一次备份后,备份有变化的数据。这种备份把全库数据分为一小段一小段的,节省了空间,但在恢复时会很麻烦需要逐个恢复。所以不建议使用 

  • 累积增量(backup incremental level =1 cumulative database)累计备份的增量级别为1 cumulative,对于累计增量备份来说,累计增量是根据上一次备份后,备份最开始到生产的所有数据,占用了空间,在恢复时只需恢复一个即可。累计增量适用于数据量小的数据库,如果数据量很大也不建议使用差异增量备份,在backup 命令中使用cumulative关键字

            

四、rman连接操作的使用(本地和远程)

[oracle@lf ~]$ rman  --help

target      目标数据库的连接字符串

catalog     用于恢复目录的连接字符串

nocatalog   如果指定,则没有恢复目录

cmdfile     输入命令文件的名称

           

使用rman命令进到终端,首先连到target目标实例,然后连接到catalog/nocatalog数据库:

1)本地连接:

本地连接nocatalog数据库(常用):

[oracle@lf ~]$ rman target /       ---target / 表示使用sys连接到目标数据库实例。

本地连接catalog数据库:

[oracle@lf ~]$ rman target /  catalog rman/123456@orcl       ---target / 表示使用sys连接到目标数据库实例。 rman用户是创建catalog数据库时,一起创建的

       

2)客户端连接:

客户端连接nocatalog数据库(常用):

C:\Users\Administrator>rman target sys/123456@orcl   --不指定catalog/nocatalog默认使用nocatalog,也就是将rman备份信息保存在控制文件

客户端连接catalog数据库:

C:\Users\Administrator>rman target sys/123456@orcl  catalog rman/123456@orcl    --不指定catalog/nocatalog默认使用nocatalog,也就是将rman备份信息保存在控制文件

   

3)进入rman命令里面连接:

[oracle@lf ~]$ rman

连接nocatalog数据库(常用):

RMAN> connect target /     ---不指定catalog/nocatalog默认使用nocatalog,也就是将rman备份信息保存在控制文件

连接catalog数据库:

RMAN> connect catalog rman/123456@orcl    

         

五、rman中执行操作系统命令,执行sql语句

1)执行系统命令

RMAN> run {host 'ls -lrt';}
RMAN> run {host 'pwd';}

           

2)执行数据库命令

rman> shutdown immediate 
rman> startup 
rman> sql 'select * from user_tablespaces';

                 

六、使用rman创建脚本(必须连接到catalog数据库,不然无法保存)

创建rman脚本:create script script_name   

查看rman脚本内容:

       方式一:Print script my_backup_script;

      方式二:RMAN@orcl> select * from rc_stored_script_line;    ---使用属于catalog数据库的用户才能查询此表

运行rman脚本:run { execute script script_name; }

修改rman脚本:replace script script_name

删除rman脚本:delete script script_name;

           

案例一:连接rman创建一个rman脚本

[oracle@lf ~]$ rman target / catalog rman/123456@orcl   ---rman脚本需要连接到catalog数据库,在于保存脚本

(1)创建rman脚本

RMAN> create script rman_show
comment 'show'        ---comment描述脚本的大意。
{  
show all;
}

(2)修改脚本

RMAN> replace script rman_show
comment 'show'
{
show all;
show all;
}

(3)运行脚本

RMAN> run {execute script rman_show;}

(4)查看脚本内容

方式一:RMAN> print script rman_show;方式二:RMAN@orcl> select * from rc_stored_script_line;     ---使用属于catalog数据库的用户才能查询此表

            

七、使用rman执行外部脚本(使用rman参数cmdfile)

[oracle@lf ~]$ vi rman.sh
show all;[oracle@lf ~]$ rman target / cmdfile=rman.sh   ---不指定catalog/nocatalog,默认连接为nocatalog

           

八、rman的Data Recovery Advisor(DRA,数据恢复顾问):

    11g推出Data Recovery Advisor(DRA),DRA是和Oracle经典备份还原工具RMAN绑定使用的。提供了一个自动诊断、修复数据库的选择,是Oracle的一个内置(Build-In)工具,用于进行数据错误、损坏的报告和修复建议。如DRA能够自动发现当前存在坏块,并且查看备份资料库(RMAN)给出修复建议和语句。

    DRA可以做到“一键式”的恢复,敲一个修复命令,就自动执行修复脚本,将错误解除。DRA是自动在后台进行数据库状态检查和数据收集,一旦发现错误,就会自动的进行修复建议的提示。

    目前 DRA 可以支持 User界面和命令行两种方式工作,OEM与命令行,11g不支持RAC只支持单机,报RMAN-05533: LIST FAILURE is not supported on RAC database

        

DRA目前可以在两种方式下进行工作:

(1)一个是数据库启动障碍,比如启动过程报错。

(2)另一个是运行过程障碍,例如运行中数据库异常损坏(如数据文件被后台删除)。

            

常用DRA命令:

list failure all(list failure all detail;);   ---查看错误列表
advise failure;   ---给出修复故障的建议(脚本的形式,手动执行)
repair failure;   ---自动执行脚本,修复故障
change failure all closed;   ---处理完成但DRA还有错误信息,通过命令关闭信息

              

案例一:单机环境使用DRA修复数据库启动故障之控制文件丢失(11g rac不支持。在进行案例之前需要先进行备份)

(1)控制文件被误删

[oracle@lf orcl]$ rm -rf control.ctl   
SYS@orcl> startup    ---告警日志提示控制文件丢失

(2)通过DRA自动恢复控制文件

RMAN> list failure all;

RMAN> advise failure;   ---给出修复故障的建议(脚本的形式,手动执行)analyzing automatic repair options; this may take some time
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=17 device type=DISK
RMAN-06495: must explicitly specify DBID with SET DBID command
analyzing automatic repair options completeNot all specified failures can currently be repaired.
The following failures must be repaired before advise for others can be given.Failure ID  Priority Status  Time Detected  Summary
失败ID        优先级         发现时间       总结
----------  ----------------  ----------------  -----------
3702       CRITICAL OPEN      06-SEP-20     Control file /oracle/app/oracle/oradata/orcl/control.ctl is missingMandatory Manual Actions    ---强制手动操作建议
========================
no manual actions availableOptional Manual Actions     ---可选手动操作建议
=======================
no manual actions availableAutomated Repair Options    ---自动修复选项
========================
Option Repair Description 选择修复描述
------ ------------------
1      Use a multiplexed copy to restore control file /oracle/app/oracle/oradata/orcl/control.ctl  Strategy: The repair includes complete media recovery with no data lossRepair script: /oracle/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1324809895.hm   ---修复脚本,通过rman的DRA给出脚本来自动修复

(3)查看DBR修复脚本并执行

[oracle@lf orcl]$ more /oracle/app/oracle/diag/rdbms/orcl/orcl/hm/reco_1324809895.hm

RMAN> restore controlfile from '/oracle/app/oracle/oradata/orcl/control02.ctl';sql 'alter database mount';

             

案例二:单机环境使用DRA修复数据库启动故障之数据文件丢失(11g rac不支持。在进行案例之前需要先进行备份)

(1)数据文件被误删

[oracle@lf orcl]$ rm -rf users.294.1048669455
SYS@orcl> startup    ---告警日志提示不能打开users数据文件

(2)通过DRA自动恢复数据文件缺失

RMAN> list failure all;

RMAN> advise failure;  ---给出修复故障的建议(脚本的形式)analyzing automatic repair options; this may take some time
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=18 device type=DISK
analyzing automatic repair options completeMandatory Manual Actions
========================
no manual actions availableOptional Manual Actions
=======================
1. If file /oracle/app/oracle/oradata/orcl/users.294.1048669455 was unintentionally renamed or moved, restore it
2. If you restored the wrong version of data file /oracle/app/oracle/oradata/orcl/users.294.1048669455, then replace it with the correct oneAutomated Repair Options
========================
Option Repair Description
------ ------------------
1      Restore and recover datafile 4  Strategy: The repair includes complete media recovery with no data lossRepair script: /oracle/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2099725888.hm

(3)自动执行DRA给出的修复脚本

RMAN> repair failure;   ---自动执行脚本,修复故障

                    

2、catalog数据库

    上述提到了rman那么就不得不提catalog数据库。大家知道RMAN(Recovery Manager)是用于备份、恢复和管理数据库的工具。而RMAN的catalog是一个逻辑概念,用于存储与RMAN备份、恢复和保管相关的元数据。

    分为nocatalog和catalog。Catalog可以包含业务生产的所有实例的备份信息,nocatalog(利用控制文件实现)只能包含当前实例的备份信息

nocatalog:

    使用control file作为catalog,每次备份都要往控制文件里面存放备份信息,控制文件里面会有越来越多的备份信息。当使用rman nocatalog方式备份时,备份controlfile是非常重要的。建议将参数文件中的control_file_record_keep_time值加大(缺省为7天) ,参数在$oracle_home/dbs/initsid.ora中。超过这个期限就会删除备份信息,这样对数据库还原恢复有影响。

SYS@orcl> show parameter control
NAME				                 TYPE	          VALUE
---------------------------------    ------------    ---------------
control_file_record_keep_time	       integer        	  7          ---控制文件里保存rman备份信息的保存时间,到规定时间就自动清除以前的备份信息。默认7天
control_files			               string	      /oracle/app/oradata/orcl/control01.ctl
control_management_pack_access         string	      DIAGNOSTIC+TUNINGsql> alter system set control_file_record_keep_time=14 scope=both; 

        

catalog:

    catalog恢复目录存储的是与rman备份有关的元数据。在某种意义上,恢复目录可以看做是保存rman备份和恢复所需的相关信息的副本。可以在数据库中在用户模式下创建恢复目录,这个恢复目录仅仅是一些数据包,表,索引和视图。rman中的再同步命令会使得目标数据库控制文件中的内容刷新这些表中的数据。当然,区别在于恢复目录可以包含企业中所有数据库的信息,而控制文件只包含关于它自己的数据库的信息。备份信息永久保存在catalog数据库中,并且支持多个数据库

                  

一、ncatalog和catalog的恢复

    当使用rman nocatalog恢复时,数据库必须是处于mount状态的。而oracle startup mount的前提条件是control必须存在。因此,你必须在恢复datafile之前先恢复controlfile。

    使用rman catalog方式时,可以startup nomount然后restore controlfile;但使用rman nocatalog 时,必须先用文件方式恢复controlfile(以下的恢复都是在 online 状态下的备份):

rman nocatalog恢复过程:

    1) 建立 oracle 运行环境(包括 init 或 sp 文件)

    2) 文件方式恢复 controlfile 到 init 文件指定的位置

    3) startup mount

    4) rman,恢复 datafile

    5) alter database open resetlogs 。可以看出,rman nocatalog备份时,必须用文件方式备份 controlfile。

           

rman catalog恢复过程:

    1) 建立 oracle 运行环境(包括 init 或 sp 文件)1

    2) rman ,restore controfile

    3) alter database mount

    4) rman, restore datafile

    5) alter database open resetlogs

         

二、升级的问题 

如果数据库进行了大版本升级,那么catalog不会自动升级,需要手动执行升级

(1)使用catalog模式的用户登录,查看catalog版本

SYS@orcl> conn rman/123456
RMAN@orcl> select * from rcver;

(2)升级catalog

[oracle@lf ~]$ rman target / catalog rman/123456@rman
RMAN@orcl> upgrade catalog  
第一次输入,提示恢复目录所有者是rman,再次输入确认升级

                 

三、手工再同步恢复目录(resync catalog) 

    RMAN使用恢复目录时,它会使用在同步进程来确保恢复目录和目标数据库的控制文件一致。通常,Oracle在 RMAN 操作(备份和恢复)后会再同步数据库,这样就不必经常再同步恢复目录。需要再同步恢复目录的一个实例是有时使用恢复目录,有时不使用恢复目录,此时,可以使用 resync catalog 命令手工使 Oracle 再同步恢复目录。

Rman>resync catalog;       ---Oracle同步恢复目录时,它首先会创建一个快照控制文件,并比较这个文件和恢复目录。完成比较后,Oracle更新恢复目录,是恢复目录与数据库控制文件同步。 

                

四、注册catalog信息

RMAN> register database;     

            

五、撤消catalog注册信息

RMAN> unregister database; 

        

六、删除catalog注册信息

RMAN> drop catalog;

                  

案例一:创建catalog恢复目录(在多实例备份时使用)

(1)创建 catalog 所需要的表空间(表空间的命名不能是rman,在恢复时会与rman冲突)

SYS@orcl> create tablespace rman1 datafile '/oracle/app/oradata/orcl/rman1.dbf' size 50m autoextend off;     ---生产环境建议10G

(2)创建rman用户并赋权(用户的命名可以是rman)

SYS@orcl> create user rman identified by 123456 default tablespace rman1;
SYS@orcl> grant connect,resource,recovery_catalog_owner to rman;
---connect,resource,recovery_catalog_owner都为系统自带角色。select * from role_sys_privs where role IN ('RECOVERY_CATALOG_OWNER','RESOURCE','CONNECT');

(3)连接rman创建catalog恢复目录,使用rman用户登录

[oracle@lf ~]$ rman  catalog  rman/123456     ---使用rman的catalog模式登录
RMAN> create catalog tablespace rman1;        ---创建catalog恢复目录的默认表空间为rman1

(4)配置目标数据库的tnsnames.ora

[oracle@lf admin]$ vi  tnsnames.ora 
除了连接描述名改为rman以为,其他与当前实例连接信息保持一致,

(5)注册目标数据库

[oracle@lf ~]$ rman target / catalog  rman/123456@rman    ---/表示环境变量里的实例和sys用户
[oracle@lf ~]$ rman target  sys/123456@orcl  catalog rman/123456@rman    ---远端连接的方式
RMAN> register database;         ---注册目标的实例

(6)检查catalog恢复目录

RMAN> report schema;    ---显示目标实例的信息
Rman> resync catalog;    

RMAN> list backup;      ---查看备份信息(从control读取信息)

    关于RMAN物理备份工具的基础理论概述就到此告一段落。对于初次接触RMAN的小伙伴来说,这些内容可能显得有些晦涩难懂,这是完全正常的。不过请放心,随着后续篇章的深入学习和实践操作的累积会逐渐感受到这些理论知识的实际价值。

    正如我自己在学习过程中的体会,我第一遍接触理论时也会觉得难以捉摸,但当我们真正将理论知识应用到实践中,再去回顾这些理论时,会有一种“轻舟已过万重山”的豁然开朗之感(嗯......自己平时学习理论也是第一遍确实看不明白,等把实践部分接触完了,再回来看理论会有再有一层深刻理解)。这种从实践中获得的深刻理解和领悟,将为我们解决日后可能遇到的相关故障提供有力的支持。

    因此学习RMAN的过程中,不仅要深入钻研理论知识,更要实践,将理论知识与实际操作相结合。只有这样才能真正掌握RMAN这一强大的物理备份工具,为数据库的安全和稳定运行提供坚实的保障。那么我们下篇见!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式是大坑的说法,是否与学生的信息不对称有关?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 目前也算是在搞嵌入式&#…

【深度学习】时空图卷积网络(STGCN),预测交通流量

论文地址&#xff1a;https://arxiv.org/abs/1709.04875 Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 文章目录 一、摘要二、数据集介绍美国洛杉矶交通数据集 METR-LA 介绍美国加利福尼亚交通数据集 PEMS-BAY 介绍美国…

Cocktail for Mac 激活版:一站式系统优化与管理神器

Cocktail for Mac是一款专为Mac用户打造的系统优化与管理工具&#xff0c;凭借其强大的功能和简便的操作&#xff0c;赢得了广大用户的喜爱。这款软件集系统清理、修复和优化于一身&#xff0c;能够帮助用户轻松解决Mac系统中的各种问题&#xff0c;提高系统性能。 Cocktail fo…

Leetcode-有效的括号(带图)

20. 有效的括号 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/valid-parentheses/ 题目 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&…

在做题中学习(59):除自身以为数组的乘积

238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a;前缀积和后缀积 思路&#xff1a;answer中的每一个元素都是除自己以外所有元素的和。那就处理一个前缀积数组和后缀积数组。 而前缀积(f[i])是&#xff1a;[0,i-1]所有元素的乘积 后缀…

如何利用香港多IP服务器实现定制化的网络服务

如何利用香港多IP服务器实现定制化的网络服务 在当今数字化快速发展的时代&#xff0c;企业对于网络服务的需求日益增加&#xff0c;尤其是对于定制化和高度可调整的网络服务的需求。香港&#xff0c;作为国际金融中心和数据中心的枢纽&#xff0c;提供了优越的网络基础设施和…

什么是蜜罐,在当前网络安全形势下,蜜罐能提供哪些帮助

在当前的互联网时代&#xff0c;网络安全威胁日益严峻&#xff0c;攻击手段层出不穷。为了应对这些威胁&#xff0c;网络安全专家们不断探索新的防御手段&#xff0c;在过去的几年里&#xff0c;一种更加积极主动的网络安全方法正在兴起。蜜罐技术便是这样一种备受瞩目的主动防…

【教学类-55-05】20240516图层顺序挑战(三格长条纸加黑色边框、3*3、5张,不重复7186张,9坐标点颜色哈希值去重、保留5色)

背景需求&#xff1a; 前期测试了4*4框格种的8种颜色&#xff0c;随机抽取7种&#xff0c;随机排列图层&#xff0c;去掉相同的图片、保留7种颜色的图片&#xff0c;最后获得5400张样图 【教学类-55-04】20240515图层顺序挑战&#xff08;四格长条纸加黑色边框、4*4、7张&…

Python程序设计 文件处理(二)

实验十二 文件处理 第1关&#xff1a;读取宋词文件&#xff0c;根据词人建立多个文件 读取wjcl/src/step1/宋词.txt文件&#xff0c; 注意&#xff1a;宋词文件的标题行的词牌和作者之间是全角空格&#xff08;" ")可复制该空格 在wjcl/src/step3/cr文件夹下根据每…

【CSND博客纪念】“创作纪念日:从灵感迸发到小有成就——我的CSND博客创作之旅”

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

算法分析与设计复习__递归方程与分治

总结自&#xff1a;【算法设计与分析】期末考试突击课_哔哩哔哩_bilibili 1.递归&#xff0c;递归方程 1.1递归条件: 1.一个问题的解可以分解为几个子问题的解&#xff1b; 2.这个问题与分解之后的子问题&#xff0c;除了数据规模不同&#xff0c;求解思路完全一样; 3.存在…

【面试干货】一个数组的倒序

【面试干货】一个数组的倒序 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 创建一个新的数组&#xff0c;然后将原数组的元素按相反的顺序复制到新数组中。 2、代码实现 package csdn;public class…

一个强大的在线解析网站,无需登录,只用把视频链接粘贴进去就能免费解析下载视频。

TiQu.cc是什么&#xff1f; TiQu.cc是一个强大的在线工具&#xff0c;让用户可以从包括Facebook、VK、Twitter、Tiktok、Instagram等在内的100多个平台下载他们喜爱的视频。不论是音乐、电视节目、电影、短片还是个人上传的内容&#xff0c;TiQu.cc都可以帮助您随时随地以离线…

ChatGPT 4o 使用案例之一

2024年GPT迎来重大更新&#xff0c;OpenAI发布GPT-4o GPT-4o&#xff08;“o”代表“全能”&#xff09; 它可以接受任意组合的文本、音频和图像作为输入&#xff0c;并生成任意组合的文本、音频和图像输出。它可以在 232 毫秒内响应音频输入&#xff0c;平均为 320 毫秒&…

把tif的值映射到shp栅格

目录 问题描述代码结果示例 问题描述 假如目前有一个&#xff08;多个&#xff09;tif文件和一个shp文件&#xff0c;想要把tif中每个像素的值集成到shp文件的新字段中。如果栅格和像素是一一对应的&#xff0c;问题将会变得非常简单&#xff1a;直接把每个像素的值映射到每个…

【Python探索之旅】字典

字典的基本特性 创建字典 修改字典 添加键值对 删除键值对 字典方法 遍历字典 完结撒花​ 前言 字典是 Python 中内建的一种具有弹性储存能力的数据结构&#xff0c;可存储任意类型对象&#xff0c;与序列使用整数索引不同&#xff0c;它使用键(key)进行索引。 通常任何不…

小白也会SQL:大模型改变交互方式(上)

在人工智能与自然语言处理交汇点&#xff0c;有一种技术正悄然改变与数据交互的方式——将日常语言转化为精准SQL查询。这一“text-to-sql”转换任务&#xff0c;使非专业人士也能轻松驾驭复杂的数据库操作&#xff0c;极大地拓宽了数据应用的边界。 然而&#xff0c;现有前沿…

linux系统查看服务器硬件信息

1、查看服务器型号、序列号 # dmidecode|grep "System Information" -A9 | egrep "Manufacturer|Product|Serial" 2、查看主板型号 # dmidecode |grep -A16 "System Information$" 或 dmidecode -t1 3、查看BIOS信息 # dmidecode -t bios 4、…

vue嵌套路由

一、嵌套 children配置 1.父类路由 mymusic 2.子类路由 musicson 1.创建MusicSon组件 <template><div><p>从前和后来</p><p>唯一</p><p>运气来的似有若无</p></div> </template><script>export defaul…