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

news2024/11/26 4:39:45

☘️博主介绍☘️:

✨又是一天没白过,我是奈斯,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_longops
 where opname like 'RMAN%'
   AND OPNAME NOT LIKE '%aggregate%'
   and totalwork != 0
   and 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):执行增量备份操作时,首先需要的是增量基本备份(incremental base backup),以后所有的增量备份都基于这个基本备份。
  • 差异增量(backup incremental level=1 database):是基本备份以来所有变化的数据块,差异增量是默认增量备份。差异增量是根据上一次备份后,备份有变化的数据。这种备份把全库数据分为一小段一小段的,节省了空间,但在恢复时会很麻烦需要逐个恢复。所以不建议使用

  • 累积增量(backup incremental level =1 cumulative database是基本备份以来所有变化的数据块。累计增量是根据上一次备份后,备份最开始到生产的所有数据,占用了空间,在恢复时只需恢复一个即可。累计增量适用于数据量小的数据库,如果数据量很大也不建议使用差异增量备份。

       

四、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 complete

Not 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 missing

Mandatory Manual Actions    ---强制手动操作建议
========================
no manual actions available

Optional Manual Actions     ---可选手动操作建议
=======================
no manual actions available

Automated 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 loss
  Repair 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 complete

Mandatory Manual Actions
========================
no manual actions available

Optional 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 one

Automated Repair Options
========================
Option Repair Description
------ ------------------
1      Restore and recover datafile 4  
  Strategy: The repair includes complete media recovery with no data loss
  Repair 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+TUNING

sql> 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.coloradmin.cn/o/1669377.html

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

相关文章

试衣不再有界:Tunnel Try-on开启视频试衣应用新纪元

论文&#xff1a;https://arxiv.org/pdf/2404.17571 主页&#xff1a;https://mengtingchen.github.io/tunnel-try-on-page/ 一、摘要总结 随着虚拟试衣技术的发展&#xff0c;消费者和时尚行业对于能够在视频中实现高质量虚拟试衣的需求日益增长。这项技术允许用户在不实际穿…

云计算十三课

centos安装 点击左上角文件 点击新建虚拟机 点击下一步 点击稍后安装操作系统&#xff0c;下一步 选择Linux&#xff08;l&#xff09;下一步 设置虚拟机名称 点击浏览选择安装位置 新建文件夹设置名称不能为中文&#xff0c;点击确定 点击下一步 设置磁盘大小点击下一步…

修改MTU值解决Linux下运行top命令卡死问题

上周明月的Linux服务器上运行top命令总是莫名的出现卡死现象&#xff0c;甚至是CtrlC都无法终止进程&#xff0c;今天终于抽空找到了解决办法&#xff0c;原来是需要修改Linux的MTU值&#xff0c;将服务器操作系统数据包调小&#xff0c;加上VxLAN数据包小于1500即可。 top命令…

HCIP【BGP综合实验】

目录 一、实验拓扑图&#xff1a; 二、实验要求&#xff1a; 三、实验思路&#xff1a; 四、实验步骤&#xff1a; 1、进行网段的子网划分&#xff08;整个实验总共有19条网段&#xff09;&#xff1a; (1)首先&#xff0c;根据实验要求&#xff0c;将172.16.0.0/16全部划…

英伟达发布AM-RADIO高效视觉基础模型,推理速度提升6倍,性能超CLIP、DINOv2、SAM

前言 近年来&#xff0c;视觉基础模型 (VFM) 在众多下游任务中取得了巨大成功&#xff0c;例如图像分类、目标检测和图像生成等。然而&#xff0c;现有的 VFM 通常专注于特定领域&#xff0c;例如 CLIP 擅长零样本视觉语言理解&#xff0c;DINOv2 擅长语义分割&#xff0c;SAM…

C控制语句:分支和跳转

1.1if语句 //colddays.c --找出0摄氏度以下的天数占总天数的百分比 #include <stdio.h>int main(void) {const int FREEZING 0;float temperature;int cold_days 0;int all_days 0;printf("Enter the list of daily low temperature.\n");printf("Use…

C++内存管理new/delete和new[ ]/delete[ ]

1.c/c内存分布 首先看一段代码 int globalVar 1; static int staticGlobalVar 1; void Test() { static int staticVar 1; int localVar 1; int num1[10] { 1, 2, 3, 4 }; char char2[] "abcd";const char* pChar3 "abcd"; //这里不加const会导致…

整理好的宁夏光伏发电数据集(2007-2020年)

1、包含指标&#xff1a;采样结束时刻、采样起始时刻、时间间隔、气温、方位角、云层不透明度、露点温度、DHI&#xff08;太阳散射辐射指数&#xff09;、DNI&#xff08;太阳直接辐射指数&#xff09;、GHI&#xff08;太阳总水平辐射&#xff09;、GTI&#xff08;固定倾角辐…

06-Fortran基础--Fortran模块化编程

06-Fortran基础--Fortran模块化编程 1 模块的定义和使用2 接口和模块间通信3 模块化编程的优势&#xff1a;4 模块使用示例5 结语 Fortran的模块化编程是一种组织和管理代码的方法&#xff0c;它包括模块的定义和使用、接口和模块间通信以及模块化编程的优势。 1 模块的定义和…

外网如何访问内网?快解析

由于公网IP资源短缺&#xff0c;我们的电脑大多处于内网环境&#xff0c;如何在外网访问内网电脑&#xff0c;成为一个令人头疼的问题&#xff0c;下面我给大家推荐一个非常实用的方法。 1&#xff1a;访问快解析下载安装快解析服务器 2&#xff1a;运行软件&#xff0c;点击“…

匿名管道及其应用

目录 一、什么是匿名管道&#xff1f; 三、创建与使用匿名管道 三、匿名管道的特点 匿名管道的四种情况 匿名管道的五种特性 四、匿名管道的实践应用---进程池 在编程的世界中&#xff0c;匿名管道是一种非常重要的通信机制。今天&#xff0c;让我们一起来深入探讨一下匿…

Spring WebFlux-响应式编程-019

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Nex…

Redis-发布与订阅

发布与订阅 什么是发布与订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布与订阅 客户端订阅频道 当给这个频道发送消息后&#xff0c;消息就会…

Java | Leetcode Java题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode partition(ListNode head, int x) {ListNode small new ListNode(0);ListNode smallHead small;ListNode large new ListNode(0);ListNode largeHead large;while (head ! null) {if (head.val < x…

LwIP 之九 详解 UDP RAW 编程、示例、API 源码、数据流

我们最为熟知的网络通信程序接口应该是 Socket。LwIP 自然也提供了 Socket 编程接口,不过,LwIP 的 Socket 编程接口都是使用最底层的接口来实现的。我们这里要学习的 UDP RAW 编程则是指的直接使用 LwIP 的最底层 UDP 接口来直接实现应用层功能。这里先来一张图,对 LwIP 内部…

Java泛型,这一篇就够了

1. 为什么我们需要泛型 现实世界中我们经常遇到这样一种情况&#xff0c;同一个算法/数据结构适用于多种数据类型&#xff0c;我们不想为每一种类型单独写一个实现。举个例子来说&#xff0c;我们有一个Pair类型&#xff0c;存储key、value两个字段&#xff0c;代码如下。如果…

机器视觉技术精准测量点胶高度与宽度:提升生产质量的新利器

在现代化生产线中&#xff0c;点胶工艺是许多产品制造过程中的重要环节。点胶的高度和宽度直接影响到产品的质量和性能。传统的测量方法往往效率低下、精度不高&#xff0c;而机器视觉技术的引入&#xff0c;为点胶高度和宽度的测量带来了革命性的变革。本文将探讨机器视觉如何…

如何解决pycharm在HTML文件中注释快捷键出错的问题(HTML注释规则出错)

文章目录 💢 问题 💢🏡 演示环境 🏡💯 解决方案 💯⚓️ 相关链接 ⚓️💢 问题 💢 你是否在编程时遇到过这样的烦恼?当你正专注地编写HTML代码,想要快速注释掉某部分内容时,却发现PyCharm的注释快捷键失灵了(没有使用正确的注释格式)。这不仅打断了你的工作…

目标检测——DAGM2007纹理背景缺陷数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

Puppeteer的基本使用及多目标同时访问

文章目录 一、安装 puppeteer 并更改默认缓存路径1、更改 Puppeteer 用于安装浏览器的默认缓存目录2、安装 puppeteer3、项目结构目录 二、基本使用1、启动浏览器并访问目标网站2、生成截图3、生成 PDF 文件4、获取目标网站 html 结构并解析5、拦截请求6、执行 JavaScript7、同…