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

news/2024/7/20 18:33:41/文章来源:https://blog.csdn.net/naisiing/article/details/139041368

💫《博主介绍》:✨又是一天没白过,我是奈斯,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参数时可使用的各种替换变量,如下(注意大小写)所示。

%a

Oracle数据库的activation ID即RESETLOG_ID。

%c

指定一组双重备份条目中备份条目的副本号。如果未进行备份双工,则备份集的该变量为1,代理副本的该变量为0(从1开始编号,最大不超过256)。

%d

oracle数据库的名称

%D

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

%e

指定存档的日志序列号。

%f

绝对文件编号。

%F

基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中:

        IIIIIIIIII代表DBID。DBID以十进制格式打印,因此很容易与目标数据库关联。

        YYYYMMDD是生成备份当天的公历时间戳

        QQ以16进制数表示的序列,从00开始,最大值为“FF”(256)

注意:%F仅在中有效CONFIGURE CONTROLFILE AUTOBACKUP FORMAT命令。 

%h

指定归档重做日志线程号。

%I

Oracle数据库的DBID。

%M

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

%n

指定数据库的名称,在右边用x字符的总长度为八个字符。例如,如果prod1是数据库名称,则填充名称是prod1xxx

%N

指定表空间名称。此替代变量仅在将数据文件备份为映像副本时有效。

%p

指定备份集内的条目编号。该值始于1每创建一个备份条目,增量为1。

注意:如果您指定PROXY,然后是%p变量必须包含在FORMAT字符串中显式或隐式%U.

%s

指定备份集编号。此数字是控制文件中的计数器,每个备份集都会递增。计数器值从1开始,在控制文件的生存期内是唯一的。如果恢复备份控制文件,则可能会产生重复的值。另外,CREATE CONTROLFILE会将计数器初始化回1。

%t

指定备份集时间戳,该时间戳是一个4字节值,是从固定参考时间起经过的秒数。您可以结合使用%s和%t以形成备份集的唯一名称。

%T

当前时间中的年月日,格式为YYYYMMDD。

%u

指定8个字符的名称,由备份集或映像副本编号的压缩表示形式以及备份集或映像副本的创建时间组成。

%U

指定系统生成的唯一文件名(默认值)。

%U的含义对于映像副本和备份件是不同的。对于备份项,%U为%U_%p_%c指定了一个方便的简写,以确保生成的备份文件名的唯一性。对于数据文件的图像副本,%U表示以下内容:data-D-%d_id-%I_TS-%N_FNO-%f_%u

对于存档重做日志的映像副本,%U表示以下内容:arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u

对于控制文件的图像副本,%U表示以下内容:cf-D_%d-id-%I_%u

%Y

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

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

                               

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.luyixian.cn/news_show_1052226.aspx

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

相关文章

[NISACTF 2022]easyssrf、[NISACTF 2022]level-up

[NISACTF 2022]easyssrf 使用dirsearch扫描后没发现什么路径 尝试访问127.0.0.1,成功了 访问127.0.0.1/flag.php提示有文件/fl4g 使用file://协议读取文件/fl4g,提示除此页面外还有一个ha1x1ux1u.php页面。 file:///fl4g 直接访问,发现GET…

google浏览器下载和相应驱动下载

1、chromedriver 115及115之后版本下载地址: https://googlechromelabs.github.io/chrome-for-testing/ 2、chromedriver 115之前版本下载地址(已停止更新115及之后版本): http://chromedriver.storage.googleapis.com/index.html…

PVE 虚拟机环境下删除 local-lvm分区

1、删除逻辑卷 lvremote pve/data 2、扩展逻辑卷 lvextend -l 100%FREE -r pve/root 3、 修改存储目录内容 点击 Datacenter - Storage (1)删除local-lvm分区 (2)编辑local分区,在内容一项中勾选所有可选项。

python数据处理与分析入门-Pandas数据可视化例子

相关内容 Matplotlib可视化练习 Pandas 数据可视化总结 柱状图 reviews[points].value_counts().sort_index().plot.bar()散点图 reviews[reviews[price] < 100].sample(100).plot.scatter(xprice, ypoints)蜂窝图 reviews[reviews[price] < 100].plot.hexbin(xprice…

C++:vector基础讲解

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《C&#xff1a;vector基础讲解》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞&#xff01;&#…

分类和品牌关联

文章目录 1.数据库表设计1.多表关联设计2.创建表 2.使用renren-generator生成CRUD1.基本配置检查1.generator.properties2.application.yml 2.生成代码1.进入localhost:81生成代码2.将main目录覆盖sunliving-commodity模块的main目录 3.代码检查1.注释掉CategoryBrandRelationC…

沃飞携AE200真机亮相澳门,全方位赋能城市低空出行

5月22日-25日&#xff0c;第四届BEYOND国际科技创新博览会&#xff08;BEYOND Expo 2024&#xff09;在澳门盛大举行。吉利沃飞长空携旗下全自研产品AE200真机亮相&#xff0c;吸引了现场众多领导嘉宾以及媒体、观众的关注。 作为亚洲顶尖的年度科技盛会&#xff0c;本届BEYOND…

面试-软件工程与设计模式相关,Spring简介

面试-软件工程与设计模式相关&#xff0c;Spring简介 1.编程思想1.1 面向过程编程1.2 面向对象编程1.2.1 面向对象编程三大特征 1.3 面向切面编程1.3.1 原理1.3.2 大白话&#xff1f;1.3.3 名词解释1.3.4 实现 2. 耦合与内聚2.1 耦合性2.2 内聚性 3. 设计模式3.1 设计模型七大原…

nodejs安装配置

nodejs安装 打开nodejs官网(https://nodejs.org/en/download/package-manager)&#xff0c;参考安装步骤操作。 更新镜像源 输入以下命令&#xff0c;将npm的镜像源设置为淘宝镜像。网上资料中&#xff0c;淘宝镜像地址多为https://registry.npm.taobao.org&#xff0c;这个…

js之图片上传

话不多说&#xff0c;直接上干货&#xff0c;注释在代码里面 下面是效果图和代码 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

景源畅信:新手做抖音运营难不难?

在这个信息爆炸的时代&#xff0c;社交媒体平台如抖音已经成为了人们日常生活中不可或缺的一部分。随着抖音的兴起&#xff0c;越来越多的人开始尝试进入这个领域&#xff0c;希望通过抖音运营实现自己的价值。然而&#xff0c;对于新手来说&#xff0c;抖音运营是否真的容易呢…

现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战

引言 Git Husky 与 Commitlint 是两个在 Git 工作流程中非常实用的工具&#xff0c;它们可以帮助团队维护代码质量和提交规范。Husky 是一个 Git 钩子管理器&#xff0c;允许你在仓库级别方便地配置钩子脚本&#xff1b;而 Commitlint 则是用来规范 Git 提交信息的工具&#x…

Bootstrap5

Bootstrap5-容器 容器是Bootstrap—个基本的构建块&#xff0c;它包含、填充和对齐给定设备或视口中的內容。 Bootstrap 需要一个容器元素来包裏网站的内容 我们可以使用以下两个容器类&#xff1a; .container 类用于固定宽度并支持响应式布局的容器。.container-fluid 类用…

左外连接和右外连接的区别?举例说明——以力扣sql 1378. 使用唯一标识码替换员工ID为例

左外连接&#xff08;LEFT JOIN&#xff09;和右外连接&#xff08;RIGHT JOIN&#xff09;的主要区别在于哪个表的所有行会保留在结果集中 1. 左外连接 (LEFT JOIN) 左外连接会返回左表中的所有行以及右表中符合连接条件的行。如果右表中没有匹配的行&#xff0c;结果集中右…

剖析【C++】——类与对象(上)超详解——小白篇

目录 1.面向过程和面向对象的初步认识 1.面向过程&#xff08;Procedural Programming&#xff09; 2.面向对象&#xff08;Object-Oriented Programming&#xff09; 概念&#xff1a; 特点&#xff1a; 总结 2.C 类的引入 1.从 C 语言的结构体到 C 的类 2.C 中的结构…

我的世界开服保姆级教程

前言 Minecraft开服教程 如果你要和朋友联机时&#xff0c;可以选择的方法有这样几种&#xff1a; 局域网联机&#xff1a;优点&#xff1a;简单方便&#xff0c;在MC客户端里自带。缺点&#xff1a;必须在同一局域网内。 有些工具会带有联机功能&#xff1a;优点&#xff1a;一…

【技术分享】Maven常用配置

一、Maven简介 &#xff08;一&#xff09;为什么使用 Maven 由于 Java 的生态非常丰富&#xff0c;无论你想实现什么功能&#xff0c;都能找到对应的工具类&#xff0c;这些工具类都是以 jar 包的形式出现的&#xff0c;例如 Spring&#xff0c;SpringMVC、MyBatis、数据库驱…

Autodl如何进行实例使用(同区)

一、首先找到之前保存的实例 二、点击更多然后选择克隆实例 三、选择是否要保存之前的数据盘 四、选择空余的GPU进行创建即可

LLaMa系列模型详解(原理介绍、代码解读):LLaMA 2

LLaMA 2 大型语言模型&#xff08;LLMs&#xff09;作为高度能力的人工智能助手&#xff0c;在需要跨多个领域专家知识的复杂推理任务中表现出巨大潜力&#xff0c;包括编程和创意写作等专业领域。它们通过直观的聊天界面与人类互动&#xff0c;这导致了快速和广泛的公众采用。…

Android Studio自带Profiler工具进行CPU资源及线程问题分析步骤

1、运行需要检测CPU资源问题与线程问题的程序 这里以“com.example.opengltest”程序为例。 2、点击Profiler按钮 3、点击SESIONS ""号按钮选择设备&#xff0c;选择对应设备下的应用或进程 4、双击CPU区块 5、选择Trace config选项&#xff0c;选择“Java/Kotli…