【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_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.mfbz.cn/a/619533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mujoco仿真【将urdf文件转化为xml文件】

最近开始学习mujoco仿真方面的内容 先前写过一篇博客&#xff1a;强化学习&#xff1a;MuJoCo机器人强化学习仿真入门&#xff08;1&#xff09;_mujoco仿真-CSDN博客 简单介绍了mujoco仿真的一些内容&#xff0c;下面想在Mujoco中将urdf转为xml文件&#xff0c;了解到mujoco是…

Docker需要代理下载镜像

systemctl status docker查看docker的状态和配置文件是/usr/lib/systemd/system/docker.service vi /usr/lib/systemd/system/docker.service&#xff0c; 增加如下配置项 [Service] Environment"HTTP_PROXYhttp://proxy.example.com:8080" "HTTPS_PROXYhttp:…

MySQL软件安装基于压缩包

打开mysql官网网址 MySQL :: Download MySQL Community Server 本次针对版本8的安装包方式进行安装&#xff0c;下载成功后接下来对MySQL进行安装 下载后有一个以zip后缀结尾的压缩包文件 对于安装包方式安装&#xff0c;比起可视化安装省去了许多安装步骤&#xff0c;这里直接…

WordPress插件Show IDs by Echo,后台显示文章、页面、分类、标签、媒体库、评论、用户的ID

WordPress的这款Show IDs by Echo插件&#xff0c;可以让我们设置是增加一列ID还是直接在“编辑 |快速编辑 |查看”操作后面增加ID&#xff0c;而且支持展示以下内容的ID&#xff1a; 文章页面类别标签评论自定义帖子类型自定义分类法用户媒体 Show IDs by Echo插件的安装及启…

数据缓存,可以尝试RocksDB了

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen shigen在最近的学习中&#xff0c;接触到了一款新的缓存数据库RocksDB&#xff…

ctfshow web271--web273

web271 laravel5.7反序列化漏洞 define(LARAVEL_START, microtime(true));/* |-------------------------------------------------------------------------- | Register The Auto Loader |-------------------------------------------------------------------------- | |…

开源流程引擎选型 —— Activiti、Flowable、Camunda

目录 一. 前言 二. 主流开源流程引擎介绍 2.1. Osworkflow 2.2. JBPM 2.3. Activiti 2.4. Flowable 2.5. Camunda 三. Flowable 与 Camunda 对比分析 3.1. 功能方面对比 3.2. 性能方面对比 四. 总结 一. 前言 市场上比较有名的开源流程引擎有 Osworkflow、JBPM、Act…

【35分钟掌握金融风控策略25】定额策略实战2

目录 基于收入和负债的定额策略 确定托底额度和盖帽额度 确定基础额度 基于客户风险评级确定风险系数 计算最终授信额度 确定授信有效期 基于收入和负债的定额策略 在实际生产中&#xff0c;客户的收入和负债数据大多无法直接获得&#xff0c;对于个人的收入和负债数据&…

LeetCode题目104: 二叉树的最大深度(递归\迭代\层序遍历\尾递归优化\分治法实现 )

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…

【算法】dfs

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、全排列1. 决策树2. 设计代码1. 全局变量2. dfs函数3. 细节问题 二、子集解法一1. 决策树2. 设计代码…

Redis-发布与订阅

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

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

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

如何在外网访问内网共享文件?

在日常工作和生活中&#xff0c;我们经常会遇到外网访问内网共享文件的需求。我们可能需要远程访问公司内部的共享文件夹&#xff0c;或者与不同地区的合作伙伴共享文件。由于网络安全的限制&#xff0c;外网访问内网的共享文件并不是一件容易的事情。 为了解决这个问题&#x…

matlab使用教程(70)—修改坐标区属性

1.控制坐标轴长度比率和数据单位长度 您可以控制 x 轴、y 轴和 z 轴的相对长度&#xff08;图框纵横比&#xff09;&#xff0c;也可以控制一个数据单位沿每个轴的相对长度&#xff08;数据纵横比&#xff09;。 1.1图框纵横比 图框纵横比是 x 轴、y 轴和 z 轴的相对长度。默认…

C++ | Leetcode C++题解之第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 ! nullptr) {if (head-…

前端小技巧:如何自定义网页的右键菜单(如何禁用网页的右键菜单)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 右键菜单设置 📒📝 自定义右键菜单实现步骤📝 示例代码📝 涉及的JavaScript语法和参数📝 禁用特定区域的右键菜单⚓️ 相关链接 ⚓️📖 介绍 📖 在网页设计中,一个直观且个性化的右键菜单可以显著提升用户的交互…

WPS表格:对比少于1万的两列数据

当我们需要对于A、B两列乱序的数据&#xff0c;找出A列中某一项B列有没有&#xff0c;或者找出B列中的某一项A列有没有&#xff0c;都可以先将这两列数据放入WPS表格中&#xff1a; 1.选中C列的第一行的单元格&#xff0c;在函数区输入函数 如果我们以A为基准&#xff0c;找A中…

HR4988内置转换器和过流保护的微特步进电机驱动芯片

描述 HR4988是一款内部集成了译码器的微特步进电机驱动器&#xff0c;能使双极步进电机以全、半、1/4、1/8、1/16步进模式工作。步进模式由逻辑输入管脚MSx选择。其输出驱动能力达到32V和2A。 译码器是HR4988易于使用的关键。通过STEP管脚输入一个脉冲就可以使电机完成一次步进…

软件工程期末复习(4)

软件过程 软件过程是为了获得高质量软件所需要完成的一系列任务的框架&#xff0c;它规定了完成各项任务的工作步骤。 ISO 9000对过程的定义: 使用资源将输入转化为输出的活动所构成的系统。 瀑布模型&#xff1a; 瀑布模型的特点&#xff1a; 阶段间具有顺序性和依赖性 必须…

Docker和Kubernetes之间的关系

Docker和Kubernetes在容器化生态系统中各自扮演着不同的角色 它们之间是互补的&#xff0c;而不是替代关系。 Docker是一个开源的容器化平台&#xff0c;它允许开发人员将应用程序及其依赖项打包到一个可移植的容器中&#xff0c;并确保这些容器可以在任何Docker环境中一致地…