一、什么是目录数据库?
你可能从其他人或书上听过RMAN恢复目录(也有可能是其他名字,RMAN Recovery Catalog的翻译较多较杂,以下简称恢复目录),旁人的表达或书中模糊不清的描述,导致很多朋友一直对其实际意义和作用感到疑惑。在我看来,可以将其视作存储RMAN备份恢复相关信息的数据库(在物理形式上可以对应成Oracle中的一个SCHEMA)。
当没有恢复目录时,RMAN相关的备份信息,比如归档文件路径、备份集路径等均存储在目标数据库的控制文件中,不过考虑到控制文件并不能无限增长,而且控制文件也不仅仅是用来存储与备份相关的信息,因此RMAN也有一个专门的备份信息存储地,这就是恢复目录了,即:目录数据库。当待备份的数据库注册到恢复目录之后,RMAN相关的信息除了保存在控制文件中外(控制文件实际上只保存一部分),更加详细的信息就都被存储在恢复目录中。如下图所示:
二、创建和使用Oracle的目录数据库
- 首先,使用DBCA创建rcat数据库。这里我们创建的数据库是:rcat.example.com。如下图所示。
- 在目录数据库中创建一个新的表空间。这里我们设置的表空间大小为50M。
create tablespace rcat_tbs datafile '/home/oracle/rcat_tbs01.dbf' size 50M;
- 创建用户,能够使用rcat_tbs表空间,并授权能够使用上面的表空间
create user rcat_owner identified by password;
alter user rcat_owner default tablespace rcat_tbs;
alter user rcat_owner quota unlimited on rcat_tbs
grant recovery_catalog_owner to rcat_owner;
- 使用RMAN登录目录数据库,这里使用上面的创建用户
rman catalog rcat_owner@rcat
- 创建catalog
create catalog;
- 将目标数据库(即要执行备份的数据库)注册到目录数据库中;将目标数据库注册到目录数据库中,如下图所示
rman target / catalog ract_owner/password@rcat
register database;
- 下面我们执行一个简单的备份,这里我们备份一下users表空间。这时候RMAN就会将备份的元信息写入目录数据库中,如下图所示。
backup tablespace users;
- 检查一下目录数据库中的信息,如下图所示。