【Oracle篇】rman工具实用指南:常用命令详解与实践(第二篇,总共八篇)

💫《博主介绍》:又是一天没白过,我是奈斯,DBA一名

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

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

    今天作为rman(Recovery Manager)相关内容第二篇——rman工具实用指南:常用命令详解与实践。那么从这篇开始就进入到了rman实践部分了,所以各位小伙伴们可以打起十二分的精神了。在系统层面输入 rman target / 就可以进入到rman工具内部了,进入到工具内部后的参数如同繁星点点,所以各种参数的使用真的需要大家好好研究一番,那么带着这个问题让我们进入今天的内容。

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

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

                          

目录

1.1 rman常用命令之backup(进行备份)

1.2 rman常用命令之list(查看实例备份的信息)

1.3 rman常用命令之restore(从RMAN备份中还原文件,为恢复做准备)

1.4 rman常用命令之recover(用于恢复数据库)

1.5 rman常用命令之delete(删除备份)

1.6 rman常用命令之report(用于判断实例当前可恢复状态、以及已有备份的信息)

1.7 rman常用命令之configure(设置和修改RMAN的配置参数)

1.8 rman常用命令之set(定义或更改当前RMAN会话的某些设置)

1.9 rman常用命令之crosscheck(交叉效验RMAN备份)

1.10 rman常用命令之validate(查看给定的备份集和进行验证以确保这个备份集能够被还原)

1.11 rman常用命令之Switch(更新数据文件、表空间、数据库或临时文件在控制文件中的位置信息)

1.12 rman常用命令之blockrecover(通过RMAN备份修复坏块)

1.13 rman常用命令之catalog(将未识别的RMAN备份集注册到控制文件)

1.14 rman常用命令之convert(对数据文件进行字节格式转换)


         

    首先在系统层面输入rman --help,就可以查看rman工具的使用了。

参数选项

描述

target

目标数据库的连接字符串

catalog

catalog恢复目录的连接字符串

nocatalog

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

cmdfile

输入命令文件的名称

log

输出消息日志文件的名称

    使用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  

           

备份文件的格式介绍:

使用format参数时可使用的各种替换变量,如下(注意大小写)所示:

%d:Oracle数据库名称。

%D:当前时间中的日,格式为DD。

%e:归档序号。

%f:绝对文件编号。

%h:归档日志线程号。

%I:Oracle 数据库的 DBID。

%N:表空间名称。

%t:备份集时间戳。

%p:备份集中备份片段的编号,从1开始。

%t:当前时间的年月日格式(YYYYMMDD)。

%s:备份集号。

%M:当前时间中的月,格式为 MM。

%Y:当前时间中的年,格式为 YYYY。

%c:备份片段的复制数(从1开始编号,最大不超过256)。

%a:Oracle数据库的 activation ID即RESETLOG_ID。

%U:默认是%u_%p_%c 的简写形式,利用它可以为每一个备份片段(即磁盘文件)。

%n:数据库名称,并且会在右侧用 x 字符进行填充,使其保持长度为 8。比如数据库名JSSBOOK,则生成的名称则是JSSBOOKx。

%u:是一个由备份集编号和建立时间压缩后组成的 8 字符名称。利用%u 可以为每个 备份集生成一个唯一的名称。

%F:基于"DBID+时间"确定的唯一名称,格式的形式为 c-IIIIIIIIII-YYYYMMDD-QQ,,其中 IIIIIIIIII 为该数据库的 DBID,YYYYMMDD 为日期,QQ 是一个 1~256 的序列。

注意:1)如果在 BACKUP 命令中没有指定 FORMAT 选项,则 RMAN 默认使用%U为备份

          2)%f 是基于dbid 的唯一名称,这个格式形式为c-iiiiiiiiii-yyyymmdd-qq其中iiiiiiiii 是该数据库的dbid,yyyymmdd 为日期,qq 是 1-256 的序列号。

                          

rman可用的命令:

RMAN> help;      ###rman的功能非常丰富

       

             

1.1 rman常用命令之backup(进行备份)

    在Oracle的RMAN(Recovery Manager)中,BACKUP命令用于执行数据库、归档日志、控制文件等的备份。

1)验证备份

RMAN> backup validate database;    ###扫描数据库的物理/逻辑错误,并不执行实际备份,如果有坏块会报出来。验证每个数据文件,status为FAILED,Blocks Failing(坏块)有内容需要先dbv验证坏块编号,然后rman修复坏块

File  Status  Marked Corrupt  Empty Blocks  Blocks Examined  High SCN
----   ------    --------------       ------------      ---------------     ----------
4    FAILED      0             4797         26249        1620953   
  File Name: /oracle/app/oracle/oradata/orcl/users.294.1048669455
  Block Type  Blocks Failing  Blocks Processed
  ----------      --------------     ----------------
  Data          1             15587           
  Index         0              2210            
  Other         0              3646 

2)全备(默认备份全部数据、控制、参数文件,不包括归档日志)

RMAN> backup database tag=full_bak_20200508;    ###全备实例,tag是将备份集命名
or
RMAN> backup tag orcl_full format '/backup/full/orcl_full_%s_%p_%t'  database; 

3)全备设置备份集大小,默认无限制

RMAN> backup database maxsetsize=2g tag=full_bak_20200508;     ###如果全备上T的数据库,那么一次备份的所有结果为一个备份集,会影响备份进度,所以按需设置备份集大小

4)表空间备份

RMAN> backup tablespace tablespace_name;  

5)控制文件备份

RMAN> backup current controlfile;
or
RMAN> backup tag orcl_ctl format '/backup/full/orcl_ctl_%s_%p_%t' current controlfile;

6)参数文件备份

RMAN> backup tag orcl_spfile format '/backup/full/orcl_spfile_%s_%p_%t'  spfile; 

7)归档备份

RMAN>backup tag orcl_arch format '/backup/full/orcl_arch_%s_%p_%t' archivelog all;  

                         

1.2 rman常用命令之list(查看实例备份的信息)

    在Oracle的RMAN(Recovery Manager)中,LIST命令用于查询和显示与备份和恢复相关的各种信息。这个命令在数据库控制文件或恢复目录中查询备份的历史信息。

1)查看数据库对应物

RMAN> list incarnation;         ###查看数据库对应物,和每次的resetlogs有关。 需要使用上次执行resetlogs命令打开数据库前生成的一个备份来进行还原数据库,或者可能需要还原到执行上一个resetlogs命令之前的时间点,并且日志序列号会重置(切换对应物语法:reset database to incarnation 4;)
  db_name:数据库名称(v$database.name) 
  db id:db id(v$database.dbid) 
  Status:是否为当前,如果数据库有被多次用 resetlogs 打开的话,这里会有多条记录 
  reset scn:resetlogs 的scn 
  reset time:resetlogs 的time

2)查看所有归档日志

RMAN> list archivelog all;       

3)查看备份集信息(详细)

RMAN> list backup;        

4)查看备份集信息(简洁)

RMAN> list backup summary;   
   b 表示 backup 
   a 表示 archivelog、 f 表示 full backup、 0,1,2 表示 incremental level 备份 
   a 表示可用 avaliable、 x 表示 expired 

5)列出过期的备份文件

RMAN> list expired backup;   

6)列出copy的文件

RMAN> list copy;           

               

1.3 rman常用命令之restore(从RMAN备份中还原文件,为恢复做准备)

    在Oracle的RMAN(Recovery Manager)中,RESTORE命令用于从RMAN备份中还原文件,为恢复做准备。这个命令允许你指定要还原的备份集、数据文件、归档日志、控制文件等。从RMAN备份中还原文件,为恢复做准备。restore和recover有本质区别,restore是从rman备份中还原文件(copy文件),而recover是通过归档恢复数据,追加到最新。

    使用restore命令,该命令会在没有认识提示的情况下会重写已经存在的任何文件,除非使用set newname命令可以设置还原文件的新路径

1)参数文件的恢复

RMAN>restore spfile from '/backup/full/orcl_spfile_61_1_1040095433';        ###通过备份集恢复参数文件
or
RMAN>restore spfile from autobackup;        ###自动恢复参数文件,前提‘CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default’为on,开启控制文件的自动备份,会同时备份参数、控制文件

2)控制文件的恢复

RMAN> restore controlfile from '/backup/full/orcl_ctl_60_1_1040095416';    ###通过备份集恢复控制文件
or
RMAN> restore controlfile to '/data/control.ctl' from '/backup/full/orcl_ctl_60_1_1040095416';   ###恢复控制文件到新路径
or
RMAN>restore controlfile  from  autobackup ;      ###自动恢复控制文件,首先‘CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default’为on,开启控制文件的自动备份,会同时备份参数、控制文件

3)归档日志的恢复

方式一:还原所有归档日志

RMAN> restore archivelog all;

方式二:还原一天内的归档日志

RMAN> 
run{
ALLOCATE CHANNEL ch00 TYPE disk;
set archivelog destination to '/data/COST4/arch';
restore archivelog from time 'sysdate-1';   ###还原一天内的归档日志
release channel ch00;
}

方式三:还原线程2的归档日志序列

RMAN>
run{
ALLOCATE CHANNEL ch00 TYPE disk;
set archivelog destination to '/home/oracle';
RESTORE ARCHIVELOG sequence BETWEEN 5877 AND 5971 thread 2;   ###还原线程2的5877到5971归档日志序列
release channel ch00;
}

           

1.4 rman常用命令之recover(用于恢复数据库)

    在Oracle的RMAN(Recovery Manager)中,RECOVER命令用于恢复数据库或数据文件的完整性和一致性。它基于RMAN备份或归档日志来恢复数据,确保在故障发生后,数据库能够恢复到某个一致的状态。recover 命令用于通过归档恢复数据库。可以再rman下运行也可以在sqlplus下运行。restore和recover有本质区别,restore是从rman备份中还原文件(copy文件),而recover是通过归档恢复数据,追加到最新。

    该命令可以执行数据库的完全恢复或者时间点恢复。 Recover 命令确定需要哪些归档的重做日志,并且析取和应用他们。一旦完成重做的应用,我们就只需要使用 alter database open 命令打开数据库即可。

原理:recover的原理是数据库使用控制文件的scn作为恢复的终点,将数据文件block恢复到控制文件所记录的scn为止。

1)所有数据文件作为一个整体恢复

RMAN> recover database        ###通过v$recover_file确定

2)数据文件单个恢复

RMAN> recover  datafile  file_id1,file_id2  ###通过v$recover_file确定

              

1.5 rman常用命令之delete(删除备份)

    在Oracle的RMAN(Recovery Manager)中,DELETE命令用于删除备份和副本,或者更改它们在恢复目录或控制文件中的状态。

    备份集不是永远存在的。可以使用保存策略标记备份有效性和生存期的结束。但是备份策略的实施不会从RMAN 目录中删除备份,而只是将这些备份标记为丢弃状态。

    delete命令对备份和副本的影响很大。通过delete命令,可以删除基于保存标准被标记为丢弃的任何备份,还可以将恢复目录或控制文件中的备份从expired 状态变为deleted状态。

1)删除某个备份集

RMAN> delete backup tag tag_name;     ###tag_name通过list backup命令确定

2)删除所有备份集

RMAN> delete backup;

3)删除过期的备份集

RMAN> delete noprompt expired backup;   

###执行delete backup命令时,rman只会删除available可以的备份集,而expired不可用的需要加上expired参数,显示expired的备份集表示没有物理存在于备份介质上。注意:在删除过期的备份之前需要先执行crosscheck backup验证,不然只执行删除过期的备份,就算有过期的备份,执行之后也是不会删除相关信息的

使用命令RMAN> crosscheck backup;       ###验证所有备份集中过期的备份集
  每个备份集或副本的状态码。 在不同的备份状态码中,分为两种状态: 
   (1)A(Available:可用):RMAN认定该项存在于备份介质上 
   (2)X(Expired:不可用):这个备份集片或副本上存储的 RMAN 目录(即控制文件或恢复目录)中,但是并没有物理存在于备份介质上

4)删除某个归档

RMAN> delete archivelog sequence seq_number thread 线程1 or 2;    ###seq_number通过list archivelog all命令确定

5)删除多个归档(区间)

RMAN> delete archivelog sequence between seq_number and seq_number thread 线程1 or 2;      ###seq_number通过list archivelog all命令确定

6)删除所有归档

RMAN>delete archivelog all;   

7)删除过期的归档备份

RMAN>delete noprompt expired archivelog all;  

###执行delete archivelog all;命令时,rman只会删除validation succeed ed for archived log可以的归档,而validation failed不可用的需要加上expired参数,显示expired的备份表示没有物理存在于备份介质上。注意:在删除过期的归档之前需要先执行crosscheck archivelog all验证,不然只执行删除过期的归档,就算有过期的归档,执行之后也是不会删除相关信息的(亲测)

使用命令RMAN>crosscheck archivelog all;           ###验证所有备份集中过期的归档
  每个备份集或副本的状态码。 在不同的备份状态码中,分为两种状态: 
    (1)validation succeeded for archived log:RMAN认定该项存在于备份介质上 
    (2)validation failed for archived log:这个归档或副本上存储的 RMAN 目录(即控制文件或恢复目录)中,但是并没有物理存在于备份介质上

8)删除废弃的备份集

RMAN>delete noprompt obsolete;        

###删除已废弃的备份集。configure retention policy to redundancy默认值是1,设置备份文件保留多长时间,超出备份次数的文件标识为废弃(obsolete)。命令REPORT OBSOLETE和DELETE OBSOLETE分别用来查看废弃的文件和删除废弃的文件。RMAN不自动删除废弃的备份文件。废弃与过时(expired)不同。备份是否废弃由备份保留策略确定,废弃的备份文件是在介质还原中不再需要的(not needed)。过时的文件是不再存在的文件(not found),可用CROSSCHECK命令查看过时信息注意:在删除废弃的备份集之前需要先执行report obsolete;验证,不然只执行删除废弃的备份集,就算有废弃的备份集,执行之后也是不会删除相关信息的(亲自测试后这点和过期的备份集和过期的归档备份集不一样,前者都需要先验证;而删除废弃的备份集是不需要report obsolete验证的可以直接执行delete noprompt obsolete就可以删除相关信息,但是为了统一理解,在delete noprompt obsolete前也加上report obsolete

使用命令RMAN> report obsolete;    ###报告已丢弃的备份集(配置了保留策略)
  RMAN retention policy is set to redundancy 1(RMAN保留策略设置为冗余1),因为备份了两次,那么上一次的也是就这次的就会被表示为废弃(obsolete),RMAN不自动删除废弃的备份文件

        

1.6 rman常用命令之report(用于判断实例当前可恢复状态、以及已有备份的信息)

    在Oracle的RMAN(Recovery Manager)中,REPORT命令用于生成与备份和恢复相关的报告。这些报告提供了关于数据库备份、恢复窗口、备份冗余等方面的信息。

1)报告目标数据库实例的信息

RMAN> report schema;      

2)报告已丢弃的备份集

RMAN> report obsolete;          
###报告已丢弃的备份集(默认值是1)。configure retention policy to redundancy默认值是1,设置备份文件保留多长时间,超出备份次数的文件标识为废弃(obsolete)。命令REPORT OBSOLETE和DELETE OBSOLETE分别用来查看废弃的文件和删除废弃的文件。RMAN不自动删除废弃的备份文件。废弃与过时(expired)不同。备份是否废弃由备份保留策略确定,废弃的备份文件是在介质还原中不再需要的(not needed)。过时的文件是不再存在的文件(not found),可用CROSSCHECK命令查看过时信息。

3)报告当前数据库中不可恢复的数据文件

RMAN> report unrecoverable;     
###报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期。rman恢复之前查看不可恢复的数据文件,以免在恢复时因为不可恢复的数据文件浪费时间) 

4)报告需要备份的数据文件

RMAN> report need backup;  

          

1.7 rman常用命令之configure(设置和修改RMAN的配置参数

    在Oracle的RMAN(Recovery Manager)中,CONFIGURE命令用于设置和修改RMAN的配置参数。这些配置参数控制RMAN的行为和备份策略。

RMAN> show all;     ###备份使用中所有可调整的参数

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default        ###备份策略的保留份数,默认保留1份。如果再次备份时,会将前面备份的数据删除,永远只有1份
CONFIGURE BACKUP OPTIMIZATION OFF; # default                 ###备份优化,默认关闭。如果开启,假如表空间为只读模式,在第一次进行备份,以后会跳过只读的备份,减少没必要的备份,提升备份速度。
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default             ###配置默认备份设备可以是sbt(磁带),disk(硬盘)。 默认是硬盘
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default              ###备份时是否自动备份控制文件,默认关闭。
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default      ###控制文件自动备份格式,此参数需要开启CONTROLFILE AUTOBACKUP参数才有效
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default         ###配置设备类型磁盘并行度1备份类型为备份集,配置磁盘备份的类型,默认是备份集方式(backupset)或镜像拷贝也叫文件拷贝(copy)。镜像拷贝值适用于磁盘备份,磁带只支持备份集。一般用备份集更多,其效率会更高
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default        ###配置生成备份集的个数,默认是1;备份集内会包括(数据文件,控制文件、参数文件) 
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default      ###配置归档备份的路径,默认备份到磁盘
CONFIGURE MAXSETSIZE TO UNLIMITED; # default           ###配置单个备份集的大小,默认无限制。1g/100m/1024k
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default       ###配置数据库加密,默认关闭
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default     ###配置加密算法‘AES128’。此参数需要开启ENCRYPTION FOR DATABASE OFF参数才有效
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default     ###配置压缩算法'基本'作为释放'默认'优化负载。备份压缩时用
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default     ###配置归档的删除策略
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default    ###配置RMAN 备份时的快照控制文件的位置。快照控制文件(snapshot control file)是 RMAN 在进行备份时创建的一个临时性的控制文件副本,用于记录备份操作的元数据信息。每次进行备份时,RMAN 都会生成一个新的快照控制文件,并在备份完成后自动删除。因此不需要担心每次备份都会生成新的snapcf_orcl.f'文件,因为这个文件只是一个临时的副本,其目的是为了确保备份的一致性和完整性。RMAN 会自动管理这个过程,包括创建和清理快照控制文件,只需关注备份策略和相关的配置即可。

1)保存策略 (retention policy)

configure retention policy to redundancy 2;        ###默认值是1,设置备份文件保留多长时间,超出备份次数的文件标识为废弃(obsolete)。命令REPORT OBSOLETE和DELETE OBSOLETE分别用来查看废弃的文件和删除废弃的文件。RMAN不自动删除废弃的备份文件。废弃与过时(expired)不同。备份是否废弃由备份保留策略确定,废弃的备份文件是在介质还原中不再需要的(not needed)。过时的文件是不再存在的文件(not found),可用CROSSCHECK命令查看过时信息。
   
configure retention policy clear;           ###clear将恢复默认的保持策略

configure retention policy to none;         ###none可以把使备份保持策略失效,此时REPORT OBSOLETE和DELETE OBSOLETE将不把任何备份文件视为废弃
   
configure retention policy to recovery window of 7 days;        ###recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为 obsolete。七天之内没有备份的话,就不可以恢复了

2)备份优化(backup optimization)

configure backup optimization on;       ###默认值为关闭,如果打开,rman 将对备份的数据文件及归档等文件进行一种优化的算法。如果开启,假如表空间为只读模式,在第一次进行备份,以后会跳过只读的备份,减少没必要的备份,提升备份速度。
     
configure backup optimization clear;     ###clear将恢复默认的保持策略

3)默认设备(default device type)

configure default device type to disk; 
   
configure default device type to stb;      ###配置默认备份设备可以是 sbt(磁带),disk(硬盘);默认是硬盘
   
configure default device type clear; 

4)控制文件(controlfile autobackup)

configure controlfile autobackup on;        ###配置在备份的时候是否将控制文件一并备份默认是 off 不备份,也可以是 on 备份
    
configure controlfile autobackup format for device type disk to '/oracle/backup/conf_%F';   ###配置 control file自动备份的路径和文件格式
     
configure controlfile autobackup clear;    ###clear将恢复默认的保持策略

5)快照控制文件(SNAPSHOT CONTROLFILE)

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/backup/scontrofile.snp';     ###配置RMAN 备份时的快照控制文件的位置。快照控制文件(snapshot control file)是 RMAN 在进行备份时创建的一个临时性的控制文件副本,用于记录备份操作的元数据信息。每次进行备份时,RMAN 都会生成一个新的快照控制文件,并在备份完成后自动删除。因此不需要担心每次备份都会生成新的snapcf_orcl.f'文件,因为这个文件只是一个临时的副本,其目的是为了确保备份的一致性和完整性。RMAN 会自动管理这个过程,包括创建和清理快照控制文件,只需关注备份策略和相关的配置即可。
   
configure snapshot controlfile name clear;      ###clear将恢复默认的保持策略

6)并行数(通道数) device type disk|stb pallelism n

configure device type disk | stb parallelism 2; 
  
configure device type disk | stb clear;                      ###clear将恢复默认的保持策略
  
configure channel device type disk format '/oracle/backup/rman_%u';
 
configure channel device type disk maxpiecesize 100m;
  
configure channel device type disk rate 1200k; 
  
configure channel 1 device type disk format '/oracle/backup/rman_%u'; 
  
configure channel 2 device type disk format '/oracle/backup/rman_%u'; 
   
configure channel 1 device type disk maxpiecesize 100m;     ###配置数据库设备类型的并行度

7)排除选项(exclude)

configure exclude for tablespace tablespace_name;          ###此命令用于将指定的表空间不备份到备份集中, 此命令对只读表空间是非常有用的。
    
configure exclude for tablespace tablespace_name clear; 

        

1.8 rman常用命令之set(定义或更改当前RMAN会话的某些设置

    在Oracle的RMAN(Recovery Manager)中,SET命令用于定义或更改当前RMAN会话的某些设置。这些设置通常影响RMAN命令的行为或输出,但它们不是永久性的,仅在当前RMAN会话中有效。注意:set命令的这个选项需要在运行块中使用,不然会报RMAN-03031

1)定义基于时间点的恢复

RMAN> 
run{
set until time "to_date('2020-05-12 03:54:11','yyyy-mm-dd hh24:mi:ss')";
}

2)定义基于scn的恢复

RMAN> 
run{
set until scn	 1352418;
}

3)定义归档日志的新路径,并恢复10天

RMAN> 
run{
set archivelog destination to '/oracle/app/oracle/archive';
restore archivelog from time 'sysdate-10';
}

4)定义数据文件、日志组、临时文件的新路径(undo属于set newname for datafile)

RMAN> 
run
{
set newname for datafile '/oracle/system01.dbf' to '/oradata/system01.dbf';      ###设置还原数据文件的新路径
set newname for tempfile 1 to '+data';        ###设置还原临时文件的新路径
set newname for logfile 2 to '+data';         ###设置还原日志组文件的新路径(不能恢复,待研究)
restore database;        ###还原数据库
switch datafile all;     ###通知控制文件将已发出SET NEWNAME for DATAFILE命令的所有数据文件切换为其新名称
}

           

1.9 rman常用命令之crosscheck(交叉效验RMAN备份)

在Oracle的RMAN(Recovery Manager)中,CROSSCHECK命令用于核对磁盘和磁带上的备份文件,以确保RMAN资料库与备份文件保持同步。这个命令会检查RMAN资料库所记载的备份文件,并验证这些文件在物理存储介质上的实际状态。每个备份集或副本的状态码。 在不同的备份状态码中,分为两种状态:
     (1)A(Available:可用):RMAN认定该项存在于备份介质上
     (2)X(Expired:不可用):这个备份集片或副本上存储的 RMAN 目录(即控制文件或恢复目录)中,但是并没有物理存在于备份介质上

1)验证所有备份集

RMAN> crosscheck backup;     

2)验证归档备份集

RMAN> crosscheck archivelog all;  

         

1.10 rman常用命令之validate(查看给定的备份集和进行验证以确保这个备份集能够被还原)

    在Oracle的RMAN(Recovery Manager)中,VALIDATE命令用于验证备份集、数据文件或归档日志文件的完整性和可恢复性。这个命令会检查数据文件或备份文件中的块是否有物理损坏或逻辑损坏,确保它们在需要时可以成功恢复。

1)验证备份

RMAN> backup validate database;    
###扫描数据库的物理/逻辑错误,并不执行实际备份,如果有坏块会报出来。验证每个数据文件,status为FAILED,Blocks Failing(坏块)有内容需要先dbv验证坏块编号,然后rman修复坏块

File  Status  Marked Corrupt  Empty Blocks  Blocks Examined  High SCN
----   ------    --------------       ------------      ---------------     ----------
4    FAILED      0             4797         26249        1620953   
  File Name: /oracle/app/oracle/oradata/orcl/users.294.1048669455
  Block Type  Blocks Failing  Blocks Processed
  ----------      --------------     ----------------
  Data          1             15587           
  Index         0              2210            
  Other         0              3646 

2)验证备份片,验证之前使用list backup summary查看key值(validate 命令必须要获得主键ID。这个可以用 list backup summary命令获取)

RMAN> validate backupset 8;  

             

1.11 rman常用命令之Switch(更新数据文件、表空间、数据库或临时文件在控制文件中的位置信息

    在Oracle的RMAN(Recovery Manager)中,SWITCH命令用于更新数据文件、表空间、数据库或临时文件在控制文件中的位置信息,以反映它们的新位置。这通常在移动或替换数据文件后使用,以确保RMAN和Oracle数据库知道数据文件的新位置。

1)通知控制文件将已发出SET NEWNAME for DATAFILE命令的所有数据文件切换为其新名称

RMAN>switch datafile all;  

2)通知控制文件中数据文件位置的新路径

RMAN>switch database to copy; 

         

1.12 rman常用命令之blockrecover(通过RMAN备份修复坏块)

    在Oracle的RMAN(Recovery Manager)中,BLOCKRECOVER命令用于恢复单个或多个数据块,而不需要恢复整个数据文件或数据库。这在某些情况下非常有用,特别是当只有少量数据块受到损坏时。那么出现数据块错误时,都会有错误消息:ORA-01578: ORACLE data block corrupted (file #18,block #88) 。

    如果没有BMR时,我们必须从一个备份中恢复这个数据文件,在恢复过程中,用户不能使用该数据块文件中的所有数据。用BMR恢复就很简单,只需要执行blockrecover命令即可。

    如果在备份时提示ORA-19566: exceeded limit of 0 corrupt blocks for file +DATA01/orcl/datafile/system.256.1038007655那么表示有坏块,需要修复

[oracle@lf01 backup]$ dbv userid=sys/123456 file=+DATA01/orcl/file/system.256.1038007655
Total Pages Marked Corrupt   : 2          已标记为损坏的页面总数。文件中有两个坏块

RMAN>blockrecover datafile 1 block 45574,45575;      ###从备份中恢复多个数据文件坏掉的块

             

1.13 rman常用命令之catalog(将未识别的RMAN备份集注册到控制文件)

    在Oracle的RMAN(Recovery Manager)中,CATALOG命令用于将备份文件、归档日志、数据文件副本等添加到RMAN的资料库(repository)中,以便RMAN可以识别、跟踪和管理这些备份。当备份文件或归档日志被存放在RMAN不直接监控的位置(例如,通过操作系统命令手动备份或第三方备份工具创建的备份)时,CATALOG命令就显得尤为重要。

1)注册备份片:

RMAN>catalog backuppiece '/home/oracle/orcl_arch_89_1_1050358444';

2)注册归档:

RMAN> CATALOG ARCHIVELOG '/oracle/arch/1_6_105038.dbf', '/oracle/arch/1_25_104867.dbf';

3)注册目录(多用于批量注册归档,也可以用于注册备份片):

RMAN> CATALOG START WITH '/oracle/app/oracle/arch';

4)注册文件:

RMAN> catalog datafilecopy '/oracle/app/oracle/oradata/orcl/system.272.1048669455';  
RMAN> switch datafile 1 to copy;

5)注册整个恢复区:

RMAN> CATALOG RECOVERY AREA NOPROMPT;

                

1.14 rman常用命令之convert(对数据文件进行字节格式转换)

    在Oracle的RMAN(Recovery Manager)中,CONVERT命令用于跨平台迁移整个数据库或数据库的一部分(如表空间、数据文件等)。这个命令特别有用,当你想将一个Oracle数据库从一个操作系统或硬件平台迁移到另一个平台时,而这两个平台可能具有不同的字节顺序、文件系统格式或其他特性。使用CONVERT命令进行跨平台迁移时,你需要确保源平台和目标平台之间的Oracle版本是兼容的。此外,如果两个平台具有不同的字节顺序(例如,一个大端字节序平台到一个小端字节序平台),RMAN将自动处理数据转换。

1)使用convert datafile完成ASM和本地文件系统间的拷贝(只做拷贝,不会通知控制文件设置为新的路径):

    虽然convert这个命令主要用于跨平台传输表空间,但它也可以完成ASM和本地文件系统间拷贝文件,并且是不会通知控制文件设置为新的路径,只做拷贝。

    convert datafile完成ASM和本地文件系统间的拷贝的案例可以参考我之前文章,这里就不再介绍啦!!!(直通车👉Oracle篇—数据文件在ASM磁盘和本地系统之间的互相拷贝_asm转换成本地文件-CSDN博客👈)


    呼,目前已经14869个字了,用时2小时+,在此过程中,涉及了RMAN的14个主要命令类别,旨在为广大小伙伴提供一份详尽的rman工具命令参考指南。然而,必须承认的是,RMAN的命令远不止于此,它的广度远超过我的这篇文章所能涵盖的范围。因此,尽管我已经尽力将所知的内容呈现给大家,但难免会有所遗漏或不足。

    在此,诚挚地邀请各位经常使用RMAN工具,并熟悉其他未在本文中提及的命令的小伙伴们,不吝赐教,各位的每一个建议、每一个补充,都将为我们这篇文章的完善提供极大的帮助。那么各位我们下篇全库备份策略见!

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

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

相关文章

亚马逊SFP有何优势?跨境卖家又该如何申请?

一、亚马逊SFP概述 亚马逊SFP(Seller Fulfilled Prime)是亚马逊为卖家提供的一项物流计划,旨在让满足条件的卖家能够将其产品纳入Prime服务,获得Prime标识,并直接面向Prime会员市场。通过SFP,卖家可以获得亚马逊的流量倾斜&#…

【低照度图像增强系列(7)】RDDNet算法详解与代码实现(同济大学|ICME)

前言 ☀️ 在低照度场景下进行目标检测任务,常存在图像RGB特征信息少、提取特征困难、目标识别和定位精度低等问题,给检测带来一定的难度。 🌻使用图像增强模块对原始图像进行画质提升,恢复各类图像信息,再使用目标检测…

vue项目中如何使用iconfont

导读:vue项目中引入iconfont的方式 iconfont 的三种使用方法 unicode 不常用Font class 像字体一样使用,默认黑色图标,无法修改颜色Symbol 支持多色图标,更灵活,推荐 一、unicode 略 二、Font class 方式一&#…

完美解决原生小程序点击地图markers上的点获取不到对应的坐标信息

需求:地图上有多个markes点,点击每一个获取对应的数据,再根据当前的坐标信息去调用导航。 出现的问题:每次点击的时候获取不到对应的坐标信息,获取到的信息显然不是想要的 原因: 因为你的id不是number类型&…

阿里云手机adb远程连接出现adb问题unauthorized解决

执行adb shell出现下面错误 adb.exe: device unauthorized. This adb servers $ADB_VENDOR_KEYS is not set Try adb kill-server if that seems wrong. Otherwise check for a confirmation dialog on your device.解决:导入和绑定adb的密钥 重启云手机

[Redis]常见数据和内部编码

相关命令 type (key) type 命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、list(列 表)、hash(哈希)、set(集合)、zset(有…

[36#]私有化部署地图套装(全球版)

私有化部署地图套装(全球版),是由全球高清卫星影像与100%全球水陆覆盖高程数据组成的全球三维地图套装。 私有化部署地图套装(全球版) 我们在《难以置信,谁还会用离线地球》一文中,为大家分享…

7 Series FPGAs Integrated Block for PCI Express IP核 Advanced模式配置详解(三)

1 TL Settings Transaction Layer (TL)设置只在Advanced模式下有效。 Endpoint: Unlock and PME_Turn_Off Messages: 与端点的电源管理相关,允许发送解锁和电源管理事件关闭消息。 Root Port: Error Messages: Error Correctable(错误可纠正&#xff09…

IO游戏设计思路

1、TCP ,UDP ,KCP ,QUIC TCP 协议最常用的协议 UDP协议非常规的协议,因为需要在线广播,貌似运营商会有一些影响 KCP 基于UDP的协议,GitHub - l42111996/java-Kcp: 基于java的netty实现的可靠udp网络库(kcp算法),包含fec实现&am…

增强版 Kimi:AI 驱动的智能创作平台,实现一站式内容生成(图片、PPT、PDF)!

前言 基于扣子 Coze 零代码平台,我们从零到一轻松实现了专属 Bot 机器人的搭建。 AI 大模型(LLM)、智能体(Agent)、知识库、向量数据库、知识图谱,RAG,AGI 的不同形态愈发显现,如何…

GEO数据挖掘-PCA、差异分析

From 生物技能树 GEO数据挖掘第二节 文章目录 探针注释自主注释流程(了解)PCA图、top1000基因热图探针注释查看示例代码 top 1000 sd 热图离散基因热图,top1000表达基因,只是看一下,不用放文章里 差异分析火山图差异基因热图转换id富集分析-K…

安装mpi4py与dlio_profiler_py的总结

安装mpi4py mpi4py是一个Python库,它提供了与MPI(Message Passing Interface)兼容的接口,使得Python程序能够利用MPI实现并行计算。mpi4py 的核心是基于MPI标准的C/C实现,它能够在高性能计算环境下进行高效的并行处理…

网页版收银系统比安装板收银系统的四大优势

在当今竞争激烈的零售市场中,高效的收银系统对于连锁实体店的管理至关重要。随着科技的不断发展,网页版收银系统成为越来越多零售企业的首选。网页版收银系统以其灵活性、可定制性和便利性,成为现代零售业的利器。本文将探讨网页版收银系统相…

pycharm 关闭项目卡死

PyCharm2023.3.4 关闭一直卡在 closing projects 解决办法: 打开PyCharm, 选择 Help -> Find Action -> 输入 Registry -> 禁用ide.await.scope.completion

MYSQL 集群

1.集群目的:负载均衡 解决高并发 高可用HA 服务可用性 远程灾备 数据有效性 类型:M M-S M-S-S M-M M-M-S-S 原理:在主库把数据更改(DDL DML DCL)记录到二进制日志中。 备库I/O线程将主库上的日志复制到自己的中继日志中。 备库SQL线程读取中继日志…

51cto已购买的视频怎么下载到电脑上?

在数字学习的浪潮中,51CTO已成为众多专业人士和爱好者的知识宝库。但购买了视频课程后,如何将其下载到电脑上以便离线学习呢?这不仅是技术问题,更是时间管理和学习效率的关键。本文将为您揭示简单而高效的步骤,无论您使…

前端面试项目细节重难点(已工作|做分享)

面试官提问:需求场景:页面上有一个单选框,有是否两个选项:当用户选择是,出现一个输入框,用户可以输入内容,给后端的保存接口传入参数radio和content这两个字段,值分别是用户选项和输…

西门子WINCC8.0VBS脚本学习讲解

WinCC VBS脚本置位/复位/取反 二进制变量 "TAG1_BOOL1" 进行置位复位取反操作 步骤:按钮-->对象属性-->事件-->单击鼠标VBS动作填入代码如下: 对二进制变量进行复位 对二进制变量进行置位 对二进制变量进行取反 VBS脚本数学运算/读写批处理 …

百度智能云参与信通院多项边缘计算标准编制,「大模型时代下云边端协同 AI 发展研讨会」成功召开

1 中国信通院联合业界制定、发布多项标准化成果,推动产业发展 大模型开启了 AI 原生时代,云边端协同 AI 构建了「集中式大规模训练」、「边缘分布式协同推理」新范式,有效降低推理时延和成本,提升数据安全和隐私性,也…

安卓App封装全攻略:利用小猪APP分发提升应用发布效率

在快速迭代的移动应用市场,高效且安全地分发安卓应用程序是开发者面临的一大挑战。安卓App封装技术,作为这一挑战的解决方案之一,不仅能够提升应用的安全性,还能简化分发流程。本文将深入探讨安卓App封装的核心概念,以…