** Recovery Catalog Creation and Maintenance 恢复目录的创建和维护**
目标:
- 掌握恢复目录的内容
- 列出需要恢复目录的RMAN功能
- 创建恢复目录
- 使用RMAN命令维护恢复目录
- 使用RMAN注册、重新同步和重置数据库
- 查询恢复目录以生成报告和列表
- 创建、存储和运行脚本
- 了解备份和恢复恢复目录的方法
以下功能仅在使用恢复目录时才可用:
发生恢复目录的重新同步:
当RMAN执行重新同步时,它将恢复目录与目标数据库的当前控制文件或备份控制文件进行比较,并使用丢失或更改的信息更新恢复目录。重新同步时,RMAN执行以下操作:
1.创建快照控制文件
2.将恢复编录与快照控制文件进行比较
3使用丢失或更改的信息更新恢复目录。
RMAN在执行某些命令 (包括BACKUP) 时,根据需要自动执行重新同步。您还可以使用RESYNC CATALOG命令手动执行完全重新同步。
当您执行以下操作时,发出RESYNC CATALOG命令:
在基础操作2登录之后,执行:
RESYNC CATALOG;
CREATE TABLESPACE cata
DATAFILE '/u01/app/oracle/oradata/orcl/catalog_01.dbf' SIZE 1024M
SEGMENT SPACE MANAGEMENT AUTO
EXTENT MANAGEMENT LOCAL UNIFORM;
这是一个用于在 Oracle 数据库中创建表空间的 SQL 语句。让我解释一下这个语句的各个部分:
CREATE TABLESPACE cata
DATAFILE '/u01/app/oracle/oradata/orcl/catalog_01.dbf' SIZE 1024M
SEGMENT SPACE MANAGEMENT AUTO
EXTENT MANAGEMENT LOCAL UNIFORM;
CREATE TABLESPACE cata
:创建一个名为 “cata” 的表空间。
DATAFILE '/u01/app/oracle/oradata/orcl/catalog_01.dbf' SIZE 1024M
:指定表空间的数据文件和大小。在这里,数据文件路径是
‘/u01/app/oracle/oradata/orcl/catalog_01.dbf’,大小为 1024MB。
SEGMENT SPACE MANAGEMENT AUTO
:指定段空间的管理方式为自动管理。这表示 Oracle 将自动管理表空间中段(例如表和索引)的空间。
EXTENT MANAGEMENT LOCAL UNIFORM
:指定区管理方式为本地且统一。这表示表空间的分配是以统一的大小进行的,并且只在本地进行管理。
这里是使用sqlplus界面使用sql命令创建的,文件位置和其他数据文件位置一起即可,大小不能小于300M,否则后期会有问题
CREATE USER cata IDENTIFIED BY cata
DEFAULT TABLESPACE cata
QUOTA UNLIMITED ON cata;
CREATE USER cata
:创建一个用户名为 “cata” 的用户。
IDENTIFIED BY cata
:指定用户的密码为 “cata”。
DEFAULT TABLESPACE cata
:指定用户的默认表空间为 “cata”。这是用户创建对象(如表、索引等)时将使用的表空间。
QUOTA UNLIMITED ON cata
:为用户 “cata” 分配在表空间 “cata” 中的空间配额。使用UNLIMITED
表示该用户在 “cata” 表空间中有无限制的空间配额,即可以使用该表空间中的所有可用空间。
GRANT connect,resource TO cata;
GRANT
:用于授予权限的关键字。
connect
:是一个数据库角色,授予该权限允许用户连接到数据库。具有connect
权限的用户可以登录到数据库,但不能执行太多的数据库操作。
resource
:同样是一个数据库角色,授予该权限允许用户创建表、序列、过程等数据库对象,并使用已有的表。
TO cata
:表示将这两个权限授予给用户名为 “cata” 的用户。因此,这个语句的作用是授予用户 “cata” 连接数据库的权限 (
connect
) 以及在数据库中创建和使用对象的权限(resource
)。用户 “cata” 将能够连接到数据库并具备一定的数据库对象管理能力。
GRANT recovery_catalog_owner TO cata;
GRANT
:用于授予权限的关键字。
recovery_catalog_owner
:是一个特殊的数据库角色,用于管理 Oracle RMAN(Recovery Manager)恢复目录。该角色具有管理 RMAN 恢复目录所需的权限。
TO cata
:表示将recovery_catalog_owner
角色授予给用户名为 “cata” 的用户。因此,这个语句的作用是将 Oracle 数据库中
recovery_catalog_owner
角色的权限授予给用户"cata"。通过这个权限,用户 “cata” 将能够管理和操作 Oracle RMAN 恢复目录,用于备份和恢复数据库。
启动监听
lsnrctl start
进入RMAN
rman catalog cata/cata@orcl
在连接上去之后提示我们连接到恢复目录数据库
select object_name,object_type from user_objects;
我们可以看到此时刚创建的用户没有数据
然后我们创建Catalog
create catalog TABLESPACE cata;
再次查看用户数据
我们发现cata用户下创建了许多表和索引,还有一些其他数据
这里是需要两个Oracle的(如果只有一个oracle也想实操的话往下看单机模拟)
实验中两个Oracle的TNS如上(这里根据自己情况调整)
这里就是先连接到需要注册的数据库也就是目标数据库
然后在连接到回复目录数据库
然后执行register database;
完成注册
- 单机模拟 (受限于只有一个oracle,想要模拟实操)
这里实际上是将自己的orcl数据库即作为目标数据库,又作为恢复目录数据库,在实际开发中这样没有任何意义,仅供模拟实操
rman target sys/123@orcl catalog cata/cata@orcl
create script Level0Backup {
backup
incremental level 0
format '/u01/app/oracle/backup/%d_%s_%p' filesperset 5
(database include current controlfile);
sql 'alter system archive log current';
}
backup incremental level 0
:表示创建一个 Level 0 的增量备份。Level 0 备份是全量备份,它包含了整个数据库的所有数据。
format '/u01/app/oracle/backup/%d_%s_%p'
:指定备份文件的格式和存储路径。%d
表示数据库名,%s
表示备份集的名称,%p
表示备份片的序号。备份文件将保存在/u01/app/oracle/backup/
目录中。
fileper_set 5
:表示每个备份集中包含的备份文件的数量限制为 5 个。这可以有助于管理备份文件的数量。
(database include current controlfile)
:指定备份的内容,包括整个数据库以及当前的控制文件。
sql 'alter system archive log current'
:在备份期间执行的 SQL 命令,这里是强制数据库归档当前的日志文件。
run {execute script Level0Backup;}
以上基础操作3的脚本为例,将filesperset改成3,如下:
REPLACE script Level0Backup {
backup
incremental level 0
format '/u01/app/oracle/backup/%d_%s_%p' filesperset 3
(database include current controlfile);
sql 'alter system archive log current';
}
DELETE SCRIPT Level0Backup;
PRINT SCRIPT Level0Backup;
完结散花