【赵渝强老师】Oracle RMAN的目录数据库

在默认情况下,Oracle RMAN将备份时产生的元信息保存到控制文件中。RMAN在执行恢复时,就需要读取控制文件,从而找到备份的信息来完成数据库的恢复。因此,如果控制文件发生了丢失和损坏将导致数据库无法执行恢复。另一方面随着备份的不断增多,也会导致控制文件的大小无限增长。为了更好地管理RMAN备份的元信息,Oracle可以使用一个专门的备份信息存储地来存储这些信息,这就是RMAN的目录数据库(Catalog Database)。如果RMAN备份的目标数据库已经注册到了目录数据库中,当执行备份是时Oracle就会使用目录数据库来取代控制文件存储RMAN备份时产生的元信息。

视频讲解如下
【赵渝强老师】Oracle RMAN的目录数据库

在RMAN的备份过程中,使用目录数据库具有以下的优点:

  • 取代控制文件用于存储RMAN备份的元信息。
  • 可以存储更长的备份历史记录。
  • 可以被多个目标数据库共享。
  • 可以存储RMAN的脚本。

下图展示了目标数据库和目录数据库之间的关系。

在了解到了什么是目录数据库后,下面将通过具体的操作步骤来创建一个目录数据库,并完成将目标数据库注册到目录数据库中。

(1)使用Oracle DBCA创建一个新的数据库作为目录数据库使用。目录数据库的名称设置为rcat。如下图所示。

(2)登录目录数据库,创建RMAN存储备份信息的表空间。

sql 复制代码
sqlplus sys/password@rcat as sysdba
SQL> create tablespace rcat_tbs datafile '/home/oracle/rcat_tbs01.dbf' size 50M;

(3)给目录数据库创建用户,并为用户授权能够使用rcat_tbs表空间。

sql 复制代码
SQL> create user c##rcat_owner identified by password;
SQL> alter user c##rcat_owner default tablespace rcat_tbs;
SQL> alter user c##rcat_owner quota unlimited on rcat_tbs;
SQL> grant recovery_catalog_owner to c##rcat_owner;

(4)使用RMAN并以rcat_owner用户进行登录登录,并输入用户的密码。

sql 复制代码
rman catalog c##rcat_owner@rcat

(5)创建目录数据库所需要的表。

sql 复制代码
RMAN> create catalog;

(6)验证创建的目录数据库表

sql 复制代码
sqlplus c##rcat_owner/password@rcat
SQL> select * from tab;

# 输出的信息如下:
TNAME			       TABTYPE	      CLUSTERID
------------------------------ ------------- ----------
AL				       TABLE
BCB			       TABLE
BCF			       TABLE
BCR			       TABLE
BDF			       TABLE
BP				       TABLE
BRL			       TABLE
BS				       TABLE
BSF			       TABLE
CCB			       TABLE
CCF			       TABLE
CDF			       TABLE
CFS			       TABLE
CKP			       TABLE
CONF				  TABLE
......... 

(7)使用RMAN连接目标数据库和目录数据库,并将目标数据库注册到目录数据库中。

sql 复制代码
rman target / catalog c##rcat_owner@rcat
RMAN> register database;

# 输出的信息如下:
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete

(8)登录目录数据验证目标数据库的注册信息。

sql 复制代码
sqlplus c##rcat_owner/password@rcat
SQL> select db_id,reg_db_unique_name from db;

# 输出的信息如下:
     DB_ID 		REG_DB_UNIQUE_NAME
------------------ ------------------------------
1618358864 		ORCL

(9)在RMAN中执行一个简单的备份。

sql 复制代码
rman target / catalog c##rcat_owner@rcat
RMAN> backup datafile 7;

(10)登录目录数据库检查目录数据库中的RMAN的备份信息。

sql 复制代码
SQL> select db_name,file#,backup_type from rc_backup_datafile;

# 输出的信息如下:
DB_NAME    FILE#  BACKUP_TYPE
----------------- ----------- ------------------------
ORCL		  7   	D

从输出的信息可以看出,RMAN在执行备份时将备份的元信息写入了目录数据库中。

相关推荐
一 乐9 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
1.14(java)10 小时前
SQL数据库操作:从CRUD到高级查询
数据库
Full Stack Developme11 小时前
数据库索引的原理及类型和应用场景
数据库
IDC02_FEIYA12 小时前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
辞砚技术录13 小时前
MySQL面试题——联合索引
数据库·面试
萧曵 丶13 小时前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
小北方城市网13 小时前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
毕设十刻13 小时前
基于Vue的人事管理系统67zzz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
TDengine (老段)15 小时前
TDengine Python 连接器入门指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
萧曵 丶16 小时前
事务ACID特性详解
数据库·事务·acid