Oracle(2-16) Recovery Catalog Creation and Maintenance

文章目录

  • 一、基础知识
    • [1、Overview 概述](#1、Overview 概述)
    • [2、Recovery Catalog Contents 恢复Catalog内容](#2、Recovery Catalog Contents 恢复Catalog内容)
    • [3、Benefits of Using Catalog 使用Catalog的好处](#3、Benefits of Using Catalog 使用Catalog的好处)
    • [4、Creating Recovery Catalog 创建恢复Catalog](#4、Creating Recovery Catalog 创建恢复Catalog)
    • [5、Resynchronization 同步问题](#5、Resynchronization 同步问题)
    • [6、RESYNC CATALOG 手动同步命令](#6、RESYNC CATALOG 手动同步命令)
    • [7、Resetting aincarnation 重置化身](#7、Resetting aincarnation 重置化身)
    • [8、Stored Scripts Management 存储脚本管理](#8、Stored Scripts Management 存储脚本管理)
    • [9、Backup of Catalog 目录备份](#9、Backup of Catalog 目录备份)
    • [10、Recovering the Catalog 恢复目录](#10、Recovering the Catalog 恢复目录)
  • 二、基础操作

** Recovery Catalog Creation and Maintenance 恢复目录的创建和维护**

目标:

  • 掌握恢复目录的内容
  • 列出需要恢复目录的RMAN功能
  • 创建恢复目录
  • 使用RMAN命令维护恢复目录
  • 使用RMAN注册、重新同步和重置数据库
  • 查询恢复目录以生成报告和列表
  • 创建、存储和运行脚本
  • 了解备份和恢复恢复目录的方法

一、基础知识

1、Overview 概述

2、Recovery Catalog Contents 恢复Catalog内容

  • 恢复目录是一个可选的存储库,包含以下信息:
    • 数据文件和归档重做日志文件备份集和备份件
    • 数据文件副本
    • 存档的重做日志文件
    • 目标数据库的物理结构
  • 恢复目录还可以包含:
    • 持久RMAN配置设置
    • 存储的作业脚本

3、Benefits of Using Catalog 使用Catalog的好处

以下功能仅在使用恢复目录时才可用:

  • 有关于一个目录中多个目标数据库的元数据
  • 有关于单个目标数据库的多个化身的元数据
  • 有历史元数据
  • 查询在非当前时间报告目标数据库

4、Creating Recovery Catalog 创建恢复Catalog

5、Resynchronization 同步问题

发生恢复目录的重新同步:

  • 自动使用BACKUP和COPY命令
  • 使用RESYNC CATALOG命令手动

当RMAN执行重新同步时,它将恢复目录与目标数据库的当前控制文件或备份控制文件进行比较,并使用丢失或更改的信息更新恢复目录。重新同步时,RMAN执行以下操作:

1.创建快照控制文件

2.将恢复编录与快照控制文件进行比较

3使用丢失或更改的信息更新恢复目录。

RMAN在执行某些命令 (包括BACKUP) 时,根据需要自动执行重新同步。您还可以使用RESYNC CATALOG命令手动执行完全重新同步。

6、RESYNC CATALOG 手动同步命令

当您执行以下操作时,发出RESYNC CATALOG命令:

  • 添加或删除表空间
  • 添加或删除数据文件
  • 重新定位数据库文件

在基础操作2登录之后,执行:

sql 复制代码
RESYNC CATALOG;

7、Resetting aincarnation 重置化身

  • 使用RESET DATABASE命令:
    • 指示RMAN创建一个新的数据库化身记录
    • 区分RESETLOGS打开和旧控制文件的意外还原操作
  • 重置数据库后用RESETLOGS打开

8、Stored Scripts Management 存储脚本管理

  1. 创建本地/全局存储脚本
  2. 更新存储的脚本
  3. 对存储的脚本进行注释
  4. 显示存储的脚本
  5. 列出存储的脚本
  6. 删除存储的脚本
  7. 转换存储的脚本和文件
  8. 向存储的脚本传递参数

9、Backup of Catalog 目录备份

  • 包含恢复目录的数据库的整个数据库备份
  • 包含恢复目录的表空间的表空间备份
  • 出口:
    • 如果目录数据库不是很大,可以定期导出数据库
    • 如果目录数据库很大,请导出包含恢复目录的架构

10、Recovering the Catalog 恢复目录

  • 从恢复目录数据库的以前备份创建数据库。
  • 将目录重新定位到另一个数据库并导入数据。
  • 从导出导入整个数据库

二、基础操作

1、创建Catalog

1.创建表空间

sql 复制代码
CREATE TABLESPACE cata 
DATAFILE '/u01/app/oracle/oradata/orcl/catalog_01.dbf' SIZE 1024M
SEGMENT SPACE MANAGEMENT AUTO 
EXTENT MANAGEMENT LOCAL UNIFORM;

这是一个用于在 Oracle 数据库中创建表空间的 SQL 语句。让我解释一下这个语句的各个部分:

sql 复制代码
CREATE TABLESPACE cata
DATAFILE '/u01/app/oracle/oradata/orcl/catalog_01.dbf' SIZE 1024M
SEGMENT SPACE MANAGEMENT AUTO
EXTENT MANAGEMENT LOCAL UNIFORM;
  1. CREATE TABLESPACE cata:创建一个名为 "cata" 的表空间。

  2. DATAFILE '/u01/app/oracle/oradata/orcl/catalog_01.dbf' SIZE 1024M:指定表空间的数据文件和大小。在这里,数据文件路径是

    '/u01/app/oracle/oradata/orcl/catalog_01.dbf',大小为 1024MB。

  3. SEGMENT SPACE MANAGEMENT AUTO:指定段空间的管理方式为自动管理。这表示 Oracle 将自动管理表空间中段(例如表和索引)的空间。

  4. EXTENT MANAGEMENT LOCAL UNIFORM:指定区管理方式为本地且统一。这表示表空间的分配是以统一的大小进行的,并且只在本地进行管理。

这里是使用sqlplus界面使用sql命令创建的,文件位置和其他数据文件位置一起即可,大小不能小于300M,否则后期会有问题

2.创建用户

sql 复制代码
CREATE USER cata IDENTIFIED BY cata 
DEFAULT TABLESPACE cata 
QUOTA UNLIMITED ON cata;
  1. CREATE USER cata:创建一个用户名为 "cata" 的用户。

  2. IDENTIFIED BY cata:指定用户的密码为 "cata"。

  3. DEFAULT TABLESPACE cata:指定用户的默认表空间为 "cata"。这是用户创建对象(如表、索引等)时将使用的表空间。

  4. QUOTA UNLIMITED ON cata:为用户 "cata" 分配在表空间 "cata" 中的空间配额。使用 UNLIMITED 表示该用户在 "cata" 表空间中有无限制的空间配额,即可以使用该表空间中的所有可用空间。

3.为用户授权

sql 复制代码
GRANT connect,resource TO cata;
  1. GRANT:用于授予权限的关键字。

  2. connect:是一个数据库角色,授予该权限允许用户连接到数据库。具有 connect 权限的用户可以登录到数据库,但不能执行太多的数据库操作。

  3. resource:同样是一个数据库角色,授予该权限允许用户创建表、序列、过程等数据库对象,并使用已有的表。

  4. TO cata:表示将这两个权限授予给用户名为 "cata" 的用户。

因此,这个语句的作用是授予用户 "cata" 连接数据库的权限 (connect) 以及在数据库中创建和使用对象的权限(resource)。用户 "cata" 将能够连接到数据库并具备一定的数据库对象管理能力。

sql 复制代码
GRANT recovery_catalog_owner TO cata;
  1. GRANT:用于授予权限的关键字。

  2. recovery_catalog_owner:是一个特殊的数据库角色,用于管理 Oracle RMAN(Recovery Manager)恢复目录。该角色具有管理 RMAN 恢复目录所需的权限。

  3. TO cata:表示将 recovery_catalog_owner 角色授予给用户名为 "cata" 的用户。

因此,这个语句的作用是将 Oracle 数据库中 recovery_catalog_owner 角色的权限授予给用户"cata"。通过这个权限,用户 "cata" 将能够管理和操作 Oracle RMAN 恢复目录,用于备份和恢复数据库。

4.创建Catalog

启动监听

sql 复制代码
lsnrctl start

进入RMAN

sql 复制代码
rman catalog cata/cata@orcl

在连接上去之后提示我们连接到恢复目录数据库

  • 创建Catalog
    在创建之前我们可以先查看一下cata用户数据
sql 复制代码
select object_name,object_type from user_objects;

我们可以看到此时刚创建的用户没有数据

然后我们创建Catalog

sql 复制代码
create catalog TABLESPACE cata;

再次查看用户数据

我们发现cata用户下创建了许多表和索引,还有一些其他数据

5和6.Connect to target database and Register target database

这里是需要两个Oracle的(如果只有一个oracle也想实操的话往下看单机模拟)

实验中两个Oracle的TNS如上(这里根据自己情况调整)

这里就是先连接到需要注册的数据库也就是目标数据库

然后在连接到回复目录数据库

然后执行register database;完成注册

  • 单机模拟 (受限于只有一个oracle,想要模拟实操)
    这里实际上是将自己的orcl数据库即作为目标数据库,又作为恢复目录数据库,在实际开发中这样没有任何意义,仅供模拟实操

2、创建Catalog完成之后的日常登录方式

方式一:

  • 正常情况
  • 单机模拟

方式二:

  • 正常情况
  • 单机模拟
sql 复制代码
rman target sys/123@orcl catalog cata/cata@orcl

3、Script Examples 脚本示例

  • 使用CREATE SCRIPT存储脚本。
sql 复制代码
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';
}
  1. backup incremental level 0:表示创建一个 Level 0 的增量备份。Level 0 备份是全量备份,它包含了整个数据库的所有数据。

  2. format '/u01/app/oracle/backup/%d_%s_%p':指定备份文件的格式和存储路径。%d 表示数据库名,%s 表示备份集的名称,%p 表示备份片的序号。备份文件将保存在 /u01/app/oracle/backup/

    目录中。

  3. fileper_set 5:表示每个备份集中包含的备份文件的数量限制为 5 个。这可以有助于管理备份文件的数量。

  4. (database include current controlfile):指定备份的内容,包括整个数据库以及当前的控制文件。

  5. sql 'alter system archive log current':在备份期间执行的 SQL 命令,这里是强制数据库归档当前的日志文件。

  • 使用EXECUTE SCRIPT运行一个脚本
sql 复制代码
run {execute script Level0Backup;}

4、Managing Scripts 管理脚本

  • 使用REPLACE SCRIPT重写脚本
    格式:REPLACE SCRIPT 脚本名 {
    内容
    }
    每次修改脚本需要对脚本完全修改,就相当于重新创建这个脚本,只不过脚本名字还是那个名字而已

以上基础操作3的脚本为例,将filesperset改成3,如下:

sql 复制代码
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删除脚本
sql 复制代码
DELETE SCRIPT Level0Backup;
  • 使用打印脚本显示脚本
sql 复制代码
PRINT SCRIPT Level0Backup;

完结散花

相关推荐
奶糖趣多多34 分钟前
Redis知识点
数据库·redis·缓存
Lary_Rock2 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
CoderIsArt2 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
师太,答应老衲吧4 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Peter_chq4 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
Channing Lewis5 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
一坨阿亮5 小时前
Linux 使用中的问题
linux·运维
毕业设计制作和分享6 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil276 小时前
Redis - String 字符串
数据库·redis·缓存