千家信息网

如何通过搭建恢复目录实现RMAN异地备份和恢复

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关如何通过搭建恢复目录实现RMAN异地备份和恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为何需要恢复目录RMAN备份的存储库总是存在于RM
千家信息网最后更新 2026年10月31日如何通过搭建恢复目录实现RMAN异地备份和恢复

这篇文章给大家分享的是有关如何通过搭建恢复目录实现RMAN异地备份和恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、为何需要恢复目录

RMAN备份的存储库总是存在于RMAN目标数据库的控制文件中的,这样会有两个问题:

1、RMAN过分依赖目标数据库控制文件,如果控制文件的所有副本都损坏了,将导致存储库丢失。这种情况下即便备份是完好的,但是由于丢失了RMAN备份的元数据信息,导致RMAN无法知道他们的存在而不能使用备份。

2、位于目标数据库控制文件中的存储库,只能保存和恢复由control_file_record_keep_time参数指定的数据,默认该参数是保留7天。

因此,采用恢复目录的手段是必要的,主要体现在以下几点:

1、采用恢复目录则RMAN的备份不再依赖于目标数据库控制文件。这样即便控制文件的所有副本都损坏了,通过恢复目录也可以很方便的使用备份。较好的做法是将恢复目录数据库存放在与目标数据库不同的机器上。

2、恢复目录可以存储RMAN脚本。没有恢复目录,则脚本必须做为操作系统文件存储在运行RMAN可执行文件的机器上。

3、恢复目录可以存储多个数据库的元数据,做为多个数据库备份和恢复信息的集中式存储库。并且一个目录可用于任何平台上的数据库,即它的连接过程是跨平台的。

4、使用恢复目录还可以简化一些操作。如恢复过程对于目标数据库不必处于MOUNT模式,当连接到恢复目录时,RMAN能够自动定位SPFILE和控制文件的备份并还原它们,简化恢复严重受损的数据库的引导过程。

5、恢复目录保存元数据的期限长度没有限制。而基于控制文件的存储库保留数据的时间长度则完全由实例参数control_file_record_keep_time来确定。

恢复目录数据库通常不是特别庞大或繁忙的数据库,不会有很高的资源要求,但却能够显著增强RMAN功能。

RMAN可执行文件可以同时连接最多三个数据库实例:

1、将对其应用备份或还原及恢复操作的一个目标数据库;

2、存储描述目标数据库及其所有可用备份的元数据的恢复目录数据库;

3、使用目标数据库的备份创建的一个辅助数据库。

二、利用恢复目录数据库实现异地备份

有时我们希望将RMAN备份保存在异地,以便更好的容灾,这里说明一下在Windows环境中的实现方法。

1、修改本地数据库Oracle后台服务

修改Oracle监听服务和数据库服务的登录方式,用确定的账户登录,而不是默认的本地系统账户。



修改后重启这两个服务。

2、在异地机器上创建好访问本地目标数据库的服务名,保证能够正常连接

mes =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = vm-ora11g-1)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = mes)

)

)

3、在异地机器上搭建恢复目录数据库,专门用于RMAN备份的元数据管理。创建恢复目录并非必须,但为了更好的异地容灾,防止本地机器遭到破坏后导致所有控制文件丢失,那么即便存在RMAN备份,也是难以使用的。

在异地机器上创建恢复目录分为以下几个步骤:

1)创建一个数据库用作恢复目录。如创建一个数据库名为catdb。

2)创建一个存储目录对象的表空间

SQL> create tablespace rmancat datafile 'd:\oradata\catdb\rmancat01.dbf' size 200m;

3)创建一个默认使用存储目录对象表空间的用户

SQL> create user rman identified by rman default tablespace rmancat quota unlimited on rmancat;

4)授予该用户recovery_catalog_owner角色,它包括了必要的对象权限

SQL> grant recovery_catalog_owner to rman;

5)用RMAN连接到目录数据库,并使用create catalog命令创建目录

C:\> rman catalog rman/rman@catdb

RMAN> create catalog;

6)用RMAN以SYS用户身份连接到目标数据库

RMAN> connect target sys/mesHz2@mes

7)在目录中注册目标数据库,从而将相关信息从目标数据库的控制文件复制到目录中

RMAN> register database;

8)同时连接到目录和目标数据库进行备份和恢复操作

C:\> rman target sys/mesHz2@mes catalog rman/rman

该命令对目标数据库和目录数据库所在环境的RMAN版本关系是有要求的,即RMAN可执行文件的版本必须与目标数据库的版本相同,而创建恢复目录的RMAN版本必须等于或高于在其中注册的任何数据库的版本。

4、创建异地备份脚本

RMAN连接成功后可创建常用的备份脚本,脚本将自动保存在恢复目录数据库中。

为达到完善的备份效果,先修改目标数据库RMAN备份参数,对控制文件和SPFILE文件开启自动备份

RMAN> configure controlfile autobackup on;

RMAN> configure controlfile autobackup format for device type disk to '\\vm-catdb\e\rman_bak\mes\control_bak\%F';

以下是采用并行方式的多通道备份脚本,执行增量级别0备份,自动完成对备份集的检查和清理,手工指定备份位置到网络机器vm-catdb的路径上,而控制文件和SPFILE文件根据配置将自动备份

create global script bak_0 {

sql 'alter system archive log current';

crosscheck backup;

delete noprompt expired backup;

crosscheck archivelog all;

delete noprompt expired archivelog all;

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental level 0 as compressed backupset

database

format '\\vm-catdb\e\rman_bak\mes\d_%d_%u_%c_%T';

backup as compressed backupset

archivelog all delete all input

format '\\vm-catdb\e\rman_bak\mes\a_%d_%u_%c_%T';

delete noprompt obsolete;

release channel c1;

release channel c2;

}

以下则是对应的增量级别1备份的脚本

create global script bak_1 {

sql 'alter system archive log current';

crosscheck backup;

delete noprompt expired backup;

crosscheck archivelog all;

delete noprompt expired archivelog all;

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental level 1 as compressed backupset

database

format '\\vm-catdb\e\rman_bak\mes\d_%d_%u_%c_%T';

backup as compressed backupset

archivelog all delete all input

format '\\vm-catdb\e\rman_bak\mes\a_%d_%u_%c_%T';

delete noprompt obsolete;

release channel c1;

release channel c2;

}

5、执行异地备份

在恢复目录中执行0级备份脚本来完成对目标数据库的全备份

RMAN> run {execute script bak_0;}

再次备份时可执行1级备份脚本来完成对目标数据库的增量备份

RMAN> run {execute script bak_1;}

三、管理恢复目录

目录数据库也可以和目标数据库是同一个数据库。这种情况下就应当在目标数据库中创建一个用于存放RMAN恢复元数据的恢复目录表空间rmancat,并将管理恢复目录的用户rman的默认表空间指向该表空间。之后以该用户连接到目录数据库,同时也就连接到了目标数据库,因为它们是同一个库,然后再创建目录

create catalog tablespace rmancat;

之后再注册数据库

register database;

目录数据库与任何生产数据库一样,应该运行在归档日志模式下,定期进行完整的备份。但是不要只是使用RMAN来备份恢复目录数据库,因为如果目录数据库损坏,那么还原它的任何尝试都会出现一个递归性的问题:如果包含目录信息的控制文件或表空间受损,那么打开数据库并作为目录连接它的任何操作都将失败。因此,通过其它方式保护目录数据库是必要的,如用户管理的备份。

如果出于某种原因没有连接到目录来执行备份,那么目录存储库必须与控制文件存储库重新同步。在RMAN下一次同时连接到目标数据库和目录时会自动执行同步操作,重新同步操作将所有信息从控制文件存储库转移到目录中,从而保持它是最新的。因此,只有当没有执行重新同步的周期超过control_file_record_keep_time时才会丢失有关备份的数据。

重新同步操作也可以在RMAN提示符中使用重新同步目录的命令来强制执行

RMAN> resync catalog;

同时连接到目标数据库和恢复目录,可以用以下命令从恢复目录中注销目标数据库

RMAN> unregister database;

如果要删除创建的目录,则命令为

RMAN> drop catalog;

通过目录数据库提供的一些视图,包括rc_database、rc_tablespace、 rc_datafile、rc_backup_set、rc_backup_piece等,可以查询在恢复目录中注册的目标数据库信息以及备份的信息,另外还包括一些记录RMAN运行状态的信息,如rc_rman_configuration等。这些视图都是以字母rc打头

conn rman/rman

查看恢复目录中的RMAN配置信息

col db_unique_name for a20

col name for a50

col value for a70

select db_unique_name, name, value from rc_rman_configuration;

DB_UNIQUE_NAME NAME VALUE

-------------------- -------------------------------------------------- ----------------------------------------------------------------------

MES CONTROLFILE AUTOBACKUP ON

MES CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\rman_bak\mes\control_bak\%F'

MES CHANNEL DEVICE TYPE DISK FORMAT 'd:\rman_bak\mes\%d_%u_%c_%T'

查看恢复目录中的数据库信息

select dbid, name from rc_database;

DBID NAME

---------- --------------------------------------------------

2056489697 MES

查看恢复目录中的表空间信息

col name for a20

select db_name, ts#, name, creation_time, included_in_database_backup, bigfile, temporary from rc_tablespace;

DB_NAME TS# NAME CREATION_TIME INC BIG TEM

-------- ---------- -------------------- ------------------- --- --- ---

MES 0 SYSTEM 2013-10-09 18:23:41 YES NO NO

MES 1 SYSAUX 2013-10-09 18:23:44 YES NO NO

MES 2 UNDOTBS1 2013-10-09 19:09:38 YES NO NO

MES 3 TEMP 2018-04-08 13:01:44 NO NO YES

MES 4 USERS 2013-10-09 18:23:53 YES NO NO

MES 11 FDA 2018-04-24 09:17:41 YES NO NO

MES 7 CMES 2018-04-17 21:03:01 YES NO NO

MES 8 RMES 2018-04-17 21:03:34 YES NO NO

MES 9 HMES 2018-04-17 21:04:11 YES NO NO

MES 10 INDX 2018-04-17 21:04:54 YES NO NO

MES 6 EXAMPLE 2018-04-08 13:02:46 YES NO NO

查看恢复目录中的数据文件信息

col name for a50

select db_name, ts#, tablespace_name, file#, name, bytes/1024/1024 size_m, creation_time from rc_datafile;

DB_NAME TS# TABLESPACE_NAME FILE# NAME SIZE_M CREATION_TIME

-------- ---------- ------------------------------ ---------- -------------------------------------------------- ---------- -------------------

MES 0 SYSTEM 1 D:\ORADATA\MES\SYSTEM01.DBF 770 2013-10-09 18:23:41

MES 1 SYSAUX 2 D:\ORADATA\MES\SYSAUX01.DBF 580 2013-10-09 18:23:44

MES 2 UNDOTBS1 3 D:\ORADATA\MES\UNDOTBS01.DBF 100 2013-10-09 19:09:38

MES 4 USERS 4 D:\ORADATA\MES\USERS01.DBF 5 2013-10-09 18:23:53

MES 6 EXAMPLE 5 D:\ORADATA\MES\EXAMPLE01.DBF 331.25 2018-04-08 13:02:46

MES 7 CMES 6 D:\ORADATA\MES\CMES01.DBF 100 2018-04-17 21:03:01

MES 8 RMES 7 D:\ORADATA\MES\RMES01.DBF 100 2018-04-17 21:03:34

MES 9 HMES 8 D:\ORADATA\MES\HMES01.DBF 100 2018-04-17 21:04:11

MES 10 INDX 9 D:\ORADATA\MES\INDX01.DBF 100 2018-04-17 21:04:54

MES 11 FDA 10 D:\ORADATA\MES\FDA01.DBF 100 2018-04-24 09:17:41

查看恢复目录中的备份集信息

select db_id, bs_key, backup_type, incremental_level, start_time, completion_time, elapsed_seconds, controlfile_included from rc_backup_set;

DB_ID BS_KEY B INCREMENTAL_LEVEL START_TIME COMPLETION_TIME ELAPSED_SECONDS CONTROL

---------- ---------- - ----------------- ------------------- ------------------- --------------- -------

2056489697 6303 D 0 2018-05-02 11:59:20 2018-05-02 11:59:32 12 NONE

2056489697 6304 D 0 2018-05-02 11:59:35 2018-05-02 11:59:36 1 BACKUP

2056489697 6305 D 0 2018-05-02 11:59:37 2018-05-02 11:59:37 0 NONE

2056489697 6306 D 0 2018-05-02 11:59:20 2018-05-02 11:59:39 19 NONE

2056489697 6343 L 2018-05-02 11:59:42 2018-05-02 11:59:42 0 NONE

2056489697 6344 L 2018-05-02 11:59:42 2018-05-02 11:59:43 1 NONE

2056489697 6345 L 2018-05-02 11:59:44 2018-05-02 11:59:44 0 NONE

2056489697 6370 D 2018-05-02 11:59:46 2018-05-02 11:59:48 2 BACKUP

查看恢复目录中的备份片信息

col handle for a70

select db_id, bp_key, bs_key, backup_type, incremental_level, handle, tag, start_time, completion_time, elapsed_seconds, bytes, compressed from rc_backup_piece;

DB_ID BP_KEY BS_KEY B INCREMENTAL_LEVEL HANDLE TAG START_TIME COMPLETION_TIME ELAPSED_SECONDS BYTES COM

---------- ---------- ---------- - ----------------- ---------------------------------------------------------------------- -------------------------------- ------------------- ------------------- --------------- ---------- ---

2056489697 6307 6303 D 0 \\VM-CATDB\E\RMAN_BAK\MES\D_MES_6FT1SM0O_1_20180502 TAG20180502T115920 2018-05-02 11:59:22 2018-05-02 11:59:31 9 105791488 YES

2056489697 6308 6304 D 0 \\VM-CATDB\E\RMAN_BAK\MES\D_MES_6HT1SM17_1_20180502 TAG20180502T115920 2018-05-02 11:59:36 2018-05-02 11:59:36 0 1130496 YES

2056489697 6309 6305 D 0 \\VM-CATDB\E\RMAN_BAK\MES\D_MES_6IT1SM19_1_20180502 TAG20180502T115920 2018-05-02 11:59:37 2018-05-02 11:59:37 0 81920 YES

2056489697 6352 6344 L \\VM-CATDB\E\RMAN_BAK\MES\A_MES_6KT1SM1E_1_20180502 TAG20180502T115942 2018-05-02 11:59:42 2018-05-02 11:59:42 0 1102848 YES

2056489697 6310 6306 D 0 \\VM-CATDB\E\RMAN_BAK\MES\D_MES_6GT1SM0O_1_20180502 TAG20180502T115920 2018-05-02 11:59:22 2018-05-02 11:59:39 17 211460096 YES

2056489697 6351 6343 L \\VM-CATDB\E\RMAN_BAK\MES\A_MES_6JT1SM1E_1_20180502 TAG20180502T115942 2018-05-02 11:59:42 2018-05-02 11:59:42 0 376832 YES

2056489697 6353 6345 L \\VM-CATDB\E\RMAN_BAK\MES\A_MES_6LT1SM1G_1_20180502 TAG20180502T115942 2018-05-02 11:59:44 2018-05-02 11:59:44 0 8704 YES

2056489697 6372 6370 D \\VM-CATDB\E\RMAN_BAK\MES\CONTROL_BAK\C_MES_6MT1SM1I_1_20180502 TAG20180502T115946 2018-05-02 11:59:47 2018-05-02 11:59:48 1 10141696 NO

四、使用恢复目录存储RMAN脚本

RMAN脚本可以作为操作系统文件来存储,如以下是脚本文件e:\script1.rman内容

run {

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental level 1 as compressed backupset

database plus archivelog delete all input;

release channel c1;

release channel c2;

}

执行脚本时,用RMAN连接到目标数据库和恢复目录,并用@符连接和执行

C:\> rman target / catalog rman/rman@catdb @e:\script1.rman

也可以直接把脚本存储在恢复目录中。以下一些命令是关于脚本的,注意这些命令必须同时连接到目标数据库和目录数据库才能使用,脚本创建同时会进行语法有效性检查。默认情况下,脚本是目标数据库特有的,使用关键字global表示脚本对于所有目标数据库都可见,否则同样的脚本需要分别连接到每个目标数据库去创建它。

创建脚本

create { global } script

替换脚本

replace { global } script

运行脚本

execute { global } script

显示脚本

print { global } script

列出脚本

list { global } script names

删除脚本

delete { global } script

可以使用如下的命令将作为操作系统文件存储的RMAN脚本保存为目录数据库中的脚本

RMAN> create script script1 from file 'e:\script1.rman';

没有直接编辑脚本的命令,但是可以通过查询视图rc_stored_script和rc_stored_script_line来查看存储的脚本,并可用DML来编辑它们。为方便编辑,也可以将脚本转出为操作系统文件

RMAN> print script script1 to file 'e:\script1.rman';

通过视图rc_stored_script和rc_stored_script_line来查询存储的脚本,需要时可以直接通过DML操作来编辑

col script_name for a30

col script_comment for a30

select * from rc_stored_script;

DB_KEY DB_NAME SCRIPT_NAME SCRIPT_COMMENT

---------- -------- ------------------------------ ------------------------------

GLOBAL bak_1

1 MES script1

GLOBAL bak_0

col script_name for a30

col text for a80

select * from rc_stored_script_line where script_name = 'script1';

DB_KEY SCRIPT_NAME LINE TEXT

---------- ------------------------------ ---------- --------------------------------------------------------------------------------

1 script1 1 run {

1 script1 2 allocate channel c1 type disk;

1 script1 3 allocate channel c2 type disk;

1 script1 4 backup incremental level 1 as compressed backupset

1 script1 5 database plus archivelog delete all input;

1 script1 6 release channel c1;

1 script1 7 release channel c2;

1 script1 8 }

最后可以在恢复目录中执行存储的脚本,目录首先会自动执行一次与目标数据库的同步,然后再开始执行备份

RMAN> run {execute script script1;}

五、数据库破坏恢复实验

这里模拟一个故障处理的过程,假定目标数据库的参数文件和控制文件都已损坏,数据文件也部分损坏。并且恢复目录数据库因故障无法启动,虽然备份存在于恢复目录数据库服务器的磁盘上,但RMAN此时无法直接找到这些备份,这种情况看如何能将系统恢复。

实验前的工作:

1、在恢复目录机器上用RMAN连接到目标数据库和恢复目录数据库,并确认备份完整

C:\Users\Administrator>rman target sys/mesHz2@mes catalog rman/rman

RMAN> resync catalog;

RMAN> list backup;

如果目标数据库没有备份,则实验前先做一次完整的备份。

2、将恢复目录数据库关闭,模拟恢复目录不可用。

shutdown immediate;

3、用shutdown abort直接关闭目标数据库,删除参数文件SPFILE、PFILE、控制文件的所有副本、数据文件cmes01.dbf。

恢复实验:

1、在恢复目录数据库服务器上用RMAN命令连接到目标数据库,并启动到nomount,RMAN将使用一个哑参数文件来启动实例

C:\Users\Administrator>rman target sys/mesHz2@mes

恢复管理器: Release 11.2.0.4.0 - Production on 星期三 5月 2 22:54:27 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount

启动失败: ORA-01078: failure in processing system parameters

LRM-00109: ???????????????? 'C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITMES.ORA'

在没有参数文件的情况下启动 Oracle 实例以检索 spfile

Oracle 实例已启动

系统全局区域总计 1068937216 字节

Fixed Size 2288080 字节

Variable Size 285214256 字节

Database Buffers 775946240 字节

Redo Buffers 5488640 字节

2、因为知道磁盘备份的所在位置,因此可以手动指定备份路径给RMAN。首先恢复参数文件,然后使用恢复的SPFILE重启实例,再还原控制文件

RMAN> restore spfile from '\\vm-catdb\e\rman_bak\mes\control_bak\C-2056489697-20180502-06';

启动 restore 于 2018-05-02 22:56:06

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=396 设备类型=DISK

通道 ORA_DISK_1: 正在从 AUTOBACKUP \\vm-catdb\e\rman_bak\mes\control_bak\C-2056489697-20180502-06 还原 spfile

通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成

完成 restore 于 2018-05-02 22:56:10

RMAN> shutdown abort

Oracle 实例已关闭

RMAN> startup nomount

已连接到目标数据库 (未启动)

Oracle 实例已启动

系统全局区域总计 1286066176 字节

Fixed Size 2280896 字节

Variable Size 771752512 字节

Database Buffers 503316480 字节

Redo Buffers 8716288 字节

RMAN> restore controlfile from '\\vm-catdb\e\rman_bak\mes\control_bak\C-2056489697-20180502-06';

启动 restore 于 2018-05-02 22:59:05

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=156 设备类型=DISK

通道 ORA_DISK_1: 正在还原控制文件

通道 ORA_DISK_1: 还原完成, 用时: 00:00:02

输出文件名=D:\ORADATA\MES\CONTROL01.CTL

输出文件名=E:\FAST_RECOVERY_AREA\MES\CONTROL02.CTL

完成 restore 于 2018-05-02 22:59:08

3、用恢复的控制文件重启实例到mount状态,根据已知的备份集存储位置,重新在存储库中编目和注册备份文件

RMAN> shutdown abort

Oracle 实例已关闭

RMAN> startup mount

已连接到目标数据库 (未启动)

Oracle 实例已启动

数据库已装载

系统全局区域总计 1286066176 字节

Fixed Size 2280896 字节

Variable Size 771752512 字节

Database Buffers 503316480 字节

Redo Buffers 8716288 字节

为保证恢复成功,先更改RMAN备份文件所在路径,再用crosscheck backup命令做交叉检查,确认备份状态为expired已失效,再用delete expired命令将备份登记删除,当然这个只是删除了备份记录,而磁盘上的备份文件不会被删掉

RMAN> crosscheck backup;

启动 implicit crosscheck backup 于 2018-05-02 23:01:55

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=189 设备类型=DISK

已交叉检验的 5 对象

完成 implicit crosscheck backup 于 2018-05-02 23:01:57

启动 implicit crosscheck copy 于 2018-05-02 23:01:57

使用通道 ORA_DISK_1

完成 implicit crosscheck copy 于 2018-05-02 23:01:57

搜索恢复区中的所有文件

正在编制文件目录...

目录编制完毕

已列入目录的文件的列表

=======================

文件名: E:\FAST_RECOVERY_AREA\MES\archivelog\ARC_7A938AE1_1_975085062_5.LOG

使用通道 ORA_DISK_1

交叉校验备份片段: 找到为 'EXPIRED'

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\D_MES_7NT1T9HG_1_20180502 RECID=224 STAMP=975087154

交叉校验备份片段: 找到为 'EXPIRED'

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\D_MES_7OT1T9HG_1_20180502 RECID=225 STAMP=975087154

交叉校验备份片段: 找到为 'EXPIRED'

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\A_MES_7QT1T9IE_1_20180502 RECID=226 STAMP=975087182

交叉校验备份片段: 找到为 'EXPIRED'

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\A_MES_7PT1T9IE_1_20180502 RECID=227 STAMP=975087182

交叉校验备份片段: 找到为 'EXPIRED'

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\A_MES_7RT1T9IF_1_20180502 RECID=228 STAMP=975087183

已交叉检验的 5 对象

RMAN> delete expired backup;

使用通道 ORA_DISK_1

备份片段列表

BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称

------- ------- --- --- ----------- ----------- ----------

224 224 1 1 EXPIRED DISK \\VM-CATDB\E\RMAN_BAK\MES\D_MES_7NT1T9HG_1_20180502

225 225 1 1 EXPIRED DISK \\VM-CATDB\E\RMAN_BAK\MES\D_MES_7OT1T9HG_1_20180502

226 226 1 1 EXPIRED DISK \\VM-CATDB\E\RMAN_BAK\MES\A_MES_7QT1T9IE_1_20180502

227 227 1 1 EXPIRED DISK \\VM-CATDB\E\RMAN_BAK\MES\A_MES_7PT1T9IE_1_20180502

228 228 1 1 EXPIRED DISK \\VM-CATDB\E\RMAN_BAK\MES\A_MES_7RT1T9IF_1_20180502

是否确定要删除以上对象 (输入 YES 或 NO)? y

已删除备份片段

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\D_MES_7NT1T9HG_1_20180502 RECID=224 STAMP=975087154

已删除备份片段

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\D_MES_7OT1T9HG_1_20180502 RECID=225 STAMP=975087154

已删除备份片段

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\A_MES_7QT1T9IE_1_20180502 RECID=226 STAMP=975087182

已删除备份片段

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\A_MES_7PT1T9IE_1_20180502 RECID=227 STAMP=975087182

已删除备份片段

备份片段句柄=\\VM-CATDB\E\RMAN_BAK\MES\A_MES_7RT1T9IF_1_20180502 RECID=228 STAMP=975087183

5 EXPIRED 对象已删除

RMAN> list backup;

说明与资料档案库中的任何备份都不匹配

现在再把刚才备份的路径改回,表示备份已经拿来,然后重新编目和注册备份,让RMAN知道备份的存在

RMAN> catalog start with '\\vm-catdb\e\rman_bak\mes';

搜索与样式 \\vm-catdb\e\rman_bak\mes 匹配的所有文件

数据库未知文件的列表

=====================================

文件名: \\VM-CATDB\E\RMAN_BAK\mes\A_MES_7PT1T9IE_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\A_MES_7QT1T9IE_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\A_MES_7RT1T9IF_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\control_bak\C-2056489697-20180502-06

文件名: \\VM-CATDB\E\RMAN_BAK\mes\D_MES_7NT1T9HG_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\D_MES_7OT1T9HG_1_20180502

是否确实要将上述文件列入目录 (输入 YES 或 NO)? y

正在编制文件目录...

目录编制完毕

已列入目录的文件的列表

=======================

文件名: \\VM-CATDB\E\RMAN_BAK\mes\A_MES_7PT1T9IE_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\A_MES_7QT1T9IE_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\A_MES_7RT1T9IF_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\control_bak\C-2056489697-20180502-06

文件名: \\VM-CATDB\E\RMAN_BAK\mes\D_MES_7NT1T9HG_1_20180502

文件名: \\VM-CATDB\E\RMAN_BAK\mes\D_MES_7OT1T9HG_1_20180502

4、执行数据库还原

RMAN> restore database;

启动 restore 于 2018-05-02 23:05:55

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集还原的数据文件

通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\ORADATA\MES\SYSTEM01.DBF

通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\ORADATA\MES\UNDOTBS01.DBF

通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\ORADATA\MES\USERS01.DBF

通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\ORADATA\MES\CMES01.DBF

通道 ORA_DISK_1: 将数据文件 00008 还原到 D:\ORADATA\MES\HMES01.DBF

通道 ORA_DISK_1: 正在读取备份片段 \\VM-CATDB\E\RMAN_BAK\MES\D_MES_7OT1T9HG_1_20180502

通道 ORA_DISK_1: 段句柄 = \\VM-CATDB\E\RMAN_BAK\MES\D_MES_7OT1T9HG_1_20180502 标记 = TAG20180502T173232

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:36

通道 ORA_DISK_1: 正在开始还原数据文件备份集

通道 ORA_DISK_1: 正在指定从备份集还原的数据文件

通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\ORADATA\MES\SYSAUX01.DBF

通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\ORADATA\MES\EXAMPLE01.DBF

通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\ORADATA\MES\RMES01.DBF

通道 ORA_DISK_1: 将数据文件 00009 还原到 D:\ORADATA\MES\INDX01.DBF

通道 ORA_DISK_1: 将数据文件 00010 还原到 D:\ORADATA\MES\FDA01.DBF

通道 ORA_DISK_1: 正在读取备份片段 \\VM-CATDB\E\RMAN_BAK\MES\D_MES_7NT1T9HG_1_20180502

通道 ORA_DISK_1: 段句柄 = \\VM-CATDB\E\RMAN_BAK\MES\D_MES_7NT1T9HG_1_20180502 标记 = TAG20180502T173232

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:26

完成 restore 于 2018-05-02 23:06:57

5、为了确保数据库的完全恢复,可能还需要利用归档日志,因此需将归档日志编目。

首先查看RMAN存储库中关于归档日志的记录,这里显示没有记录

RMAN> list archivelog all;

说明与资料档案库中的任何归档日志都不匹配

重新编目

RMAN> catalog start with 'E:\fast_recovery_area\mes\archivelog';

搜索与样式 E:\fast_recovery_area\mes\archivelog 匹配的所有文件

数据库未知文件的列表

=====================================

文件名: E:\FAST_RECOVERY_AREA\MES\archivelog\ARC_7A938AE1_1_975085062_5.LOG

是否确实要将上述文件列入目录 (输入 YES 或 NO)? y

正在编制文件目录...

目录编制完毕

已列入目录的文件的列表

=======================

文件名: E:\FAST_RECOVERY_AREA\MES\archivelog\ARC_7A938AE1_1_975085062_5.LOG

RMAN> list archivelog all;

db_unique_name 为 MES 的数据库的归档日志副本列表

=====================================================================

关键字 线程序列 S 时间下限

------- ---- ------- - -------------------

6 1 5 A 2018-05-02 17:32:59

名称: E:\FAST_RECOVERY_AREA\MES\ARCHIVELOG\ARC_7A938AE1_1_975085062_5.LOG

6、执行数据库的完全恢复

RMAN> recover database;

启动 recover 于 2018-05-02 23:22:30

使用通道 ORA_DISK_1

正在开始介质的恢复

线程 1 序列 4 的归档日志已作为文件 D:\ORADATA\MES\REDO01.LOG 存在于磁盘上

线程 1 序列 5 的归档日志已作为文件 D:\ORADATA\MES\REDO02.LOG 存在于磁盘上

线程 1 序列 6 的归档日志已作为文件 D:\ORADATA\MES\REDO03.LOG 存在于磁盘上

归档日志文件名=D:\ORADATA\MES\REDO01.LOG 线程=1 序列=4

归档日志文件名=D:\ORADATA\MES\REDO02.LOG 线程=1 序列=5

归档日志文件名=D:\ORADATA\MES\REDO03.LOG 线程=1 序列=6

介质恢复完成, 用时: 00:00:01

完成 recover 于 2018-05-02 23:22:32

7、打开数据库并重置日志序列

RMAN> alter database open resetlogs;

数据库已打开

至此,完成了mes数据库破坏后的完全恢复。

8、实验完毕后开启恢复目录数据库,之后应在恢复目录机器上重新注册数据库的新化身

C:\Users\Administrator>rman target sys/mesHz2@mes catalog rman/rman

恢复管理器: Release 11.2.0.4.0 - Production on 星期三 5月 2 23:24:54 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

已连接到目标数据库: MES (DBID=2056489697)

连接到恢复目录数据库

RMAN> unregister database;

数据库名为 "MES" 且 DBID 为 2056489697

是否确实要注销数据库 (输入 YES 或 NO)? y

已从恢复目录中注销数据库

RMAN> register database;

注册在恢复目录中的数据库

正在启动恢复目录的全部重新同步

完成全部重新同步

9、由于生成了数据库新的化身,以前所做的备份和归档都已不再有用,可以用RMAN命令将其删除和注销,文件不再保留,新的数据库应当尽快重做备份。

感谢各位的阅读!关于"如何通过搭建恢复目录实现RMAN异地备份和恢复"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 数据库 备份 文件 目录 目标 通道 脚本 片段 存储 控制 文件名 字节 信息 命令 日志 正在 句柄 实例 异地 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州找大状互联网科技有限公司 新华互联网科技学校 互联网科技卖菜 世界互联网领先科技成果 腾讯科技 互联网女皇 科技互联网公司logo 深圳市运趣互联网科技有限公司 江苏南京365互联网科技 互联网公司科技股 重庆互联网医院沙龙医盟信息科技 湖北码尼互联网科技有限公司电话 健康食品互联网创新科技园项目 国大互联网教育科技有限公司工作 996高科技互联网公司 中国互联网公司排名锤子科技 科技大学互联网 徐州市互联网科技有限公司 江苏互联网智能科技产品出厂价 互联网科技大佬云集 北京瑞云互联网科技有限公司 上海喔噻互联网科技有限公司 关于新基建和互联网科技 嘟嘟瓜互联网科技 广州宏创互联网科技 互联网金融科技平台 云创客互联网科技公司 成都互联网科技公司100强 移动互联网科技股 速维有品互联网信息科技(苏州)有限公司 长沙茂晟互联网科技有限公司
0