【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.1048669455Block 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.1048669455Block 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工具,并熟悉其他未在本文中提及的命令的小伙伴们,不吝赐教,各位的每一个建议、每一个补充,都将为我们这篇文章的完善提供极大的帮助。那么各位我们下篇全库备份策略见!

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

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

相关文章

【Centos7+JDK1.8】Jenkins安装手册

一、安装环境 Centos7 JDK1.8 Jenkins-2.346.3 JDK1.8安装以及网络配置等 自行搜索资料解决。 二、卸载历史安装的Jenkins,直接全部复制粘贴下面的命令 service jenkins stop yum -y remove jenkins rpm -e jenkins rpm -ql jenkins rm -rf /etc/sysconfig/je…

解决远程链接的“Gtk-WARNING **: cannot open display;

1.需要检查ssh配置中X11Forwarding是否启用 2.检查本地ssh工具是否启用x11转发(下图以mobaxterm为例) 3.检查是否有防火墙等其他网络拦截,如果没有特殊需求,这里可以直接将防火墙服务关闭 4.按上诉操作检查后,正常情况…

P2P服务端模型配合 Tool.net P2pServerAsync 类使用

Tool.Net 支持的 P2P 服务器模型实例 说明服务器部分相关代码相关调用实例Tcp版本Udp版本 最后附一张思维图 说明 当前文章,仅是Tool.Net 开源库的一个缩影。本次更新V5.0版本以上提供支持。可以提供简单实现P2P功能用于业务开发。 服务器部分相关代码 完整代码&…

JVM运行时内存:垃圾回收器(Serial ParNew Parallel )详解

文章目录 1. 查看默认GC2. Serial GC : 串行回收3. ParNew GC:并行回收4. Parallel GC:吞吐量优先 1. 查看默认GC -XX:PrintCommandLineFlags:查看命令行相关参数(包含使用的垃圾收集器)使用命令行指令:ji…

数据库系统概论(超详解!!!)第九节 嵌入式SQL

SQL语言提供了两种不同的使用方式 :交互式, 嵌入式。 SQL语言是非过程性语言 。事务处理应用需要高级语言。 这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充。 1.嵌入式SQL的处理过程 嵌入式SQL是将SQL…

「51媒体」广西媒体资源,南宁活动媒体邀约

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 广西地区拥有丰富的媒体资源,在广西做活动,参加展览可以邀请他们到场采访报道。 央媒驻站:广西新华 广西人民 广西光明 广西央广 广西国际在线 广西中…

Rhinoceros v7.5 解锁版安装教程 (3D三维造型软件)

前言 Rhinoceros 中文名称犀牛是一款超强的三维建模工具,全称Rhinoceros,Rhino是美国Robert McNeel & Assoc开发的PC上强大的专业3D造型软件,它可以广泛地应用于三维动画制作、工业制造、科学研究以及机械设计等领域。它能轻易整合3DS M…

【数据结构】第七节:堆

个人主页: 深情秋刀鱼-CSDN博客 数据结构专栏:数据结构与算法 源码获取:数据结构: 上传我写的关于数据结构的代码 (gitee.com) ​ 目录 一、堆 1.堆的概念 2.堆的定义 二、堆的实现 1.初始化和销毁 2.插入 向上调整算法 3.删除 向下调整算法…

BioMistral 7B——医疗领域的新方法,专为医疗领域设计的大规模语言模型

1. 概述 自然语言处理领域正在以惊人的速度发展,ChatGPT 和 Vicuna 等大型语言模型正在从根本上改变我们与计算机交互的方式。从简单的文本理解到复杂的问题解决,这些先进的模型展示了类似人类的推理能力。 特别是,BLOOM 和 LLaMA 等开源模…

asp.net core接入prometheus

安装prometheus和Grafana 参考之前的文章->安装prometheus和Grafana教程 源代码 dotnet源代码 新建.net core7 web项目 修改Program.cs using Prometheus;namespace PrometheusStu01;public class Program {public static void Main(string[] args){var builder We…

字符函数:分类函数与转换函数

字符函数 一.字符分类函数二.字符转换函数 在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语⾔标准库中提供了一系列库函数,接下来我们就学习⼀下这些函数。 一.字符分类函数 C语言中有⼀系列的函数是专门…

自然语言处理实战项目29-深度上下文相关的词嵌入语言模型ELMo的搭建与NLP任务的实战

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目29-深度上下文相关的词嵌入语言模型ELMo的搭建与NLP任务的实战,ELMo(Embeddings from Language Models)是一种深度上下文相关的词嵌入语言模型,它采用了多层双向LSTM编码器构建语言模型,并通过各层LSTM的隐藏状…

文件流下载优化:由表单提交方式修改为Ajax请求

如果想直接看怎么写的可以跳转到 解决方法 节! 需求描述 目前我们系统导出文件时,都是通过表单提交后,接收文件流自动下载。但由于在表单提交时没有相关调用前和调用后的回调函数,所以我们存在的问题,假如导出数据需…

MyBatisPlus使用流程

引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4</version> </dependency> 版本号根据需要选取 在实体类上加注解声明&#xff0c;表信息 根据数…

get和post的区别,二者是幂等的吗?

一、什么是幂等 所谓幂等性通俗的将就是一次请求和多次请求同一个资源产生相同的副作用。 维基百科定义&#xff1a;幂等&#xff08;idempotent、idempotence&#xff09;是一个数学与计算机学概念&#xff0c;常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执…

U-Mail邮件系统为用户提供更加安全的数据保护机制

据外媒报道&#xff0c;近日美国国家安全委员会泄露了其成员的近1万封电子邮件和密码&#xff0c;暴露了政府组织和大公司在内的2000家公司。其中包括美国国家航空航天局和特斯拉等。报道称该漏洞于3月7日被研究人员发现&#xff0c;通过该漏洞攻击者能够访问对web服务器操作至…

WordPress主题 7B2 PRO 5.4.2 免授权开心版源码

本资源提供给大家学习及参考研究借鉴美工之用&#xff0c;请勿用于商业和非法用途&#xff0c;无任何技术支持&#xff01; WordPress主题 7B2 PRO 5.4.2 免授权开心版源码 B2 PRO 5.4.2 最新免授权版不再需要改hosts&#xff0c;和正版一样上传安装就可以激活。 直接在Word…

重新夺回控制权!原创始人从Synk回购FossID,致力于解决开源许可合规风险

FossID 于 2022 年 9 月被其原始创始人从 Snyk, Inc. 重新收购。为什么 Snyk 在 2021 年收购了 FossID&#xff0c;又在 2022 年将其分拆&#xff0c;以及为什么 FossID 的创始人&#xff08;Oskar Swirtun 和 Jon Aldama&#xff09;后来又回购了该公司&#xff1f; 公司背景 …

YOLOv8_seg的训练、验证、预测及导出[实例分割实践篇]

实例分割数据集链接,还是和目标检测篇一样,从coco2017val数据集中挑出来person和surfboard两类:链接:百度网盘 请输入提取码 提取码:3xmm 1.实例分割数据划分及配置 1.1实例分割数据划分 从上面得到的数据还不能够直接训练,需要按照一定的比例划分训练集和验证集,并按…

Servlet的response对象

目录 HTTP响应报文协议 reponse继承体系 reponse的方法 响应行 public void setStatus(int sc) 响应头 public void setHeader(String name, String value) 响应体 public java.io.PrintWriter getWriter() public ServletOutputStream getOutputStream() 请求重定…