25、RMAN报告与目录管理全解析

RMAN报告与目录管理全解析

1. 使用虚拟专用目录

在数据库管理中,恢复目录并非只能作为单个数据库的元数据存储库。一个目录数据库中可以注册多个数据库,即便有导入目录的选项,基础目录也会成为多个目录的存储库。在这种整合环境下,需要实施一定的安全措施,以确保未经授权的人员无法访问或删除他们未管理的数据库的元数据。虚拟专用目录就能实现这种目录隐私保护。

虚拟目录结合虚拟目录所有者,限制了可管理数据库的访问权限。虚拟目录所有者无法访问的数据库仍保留在基础目录中,可由基础目录所有者访问。基础目录可容纳多个虚拟目录。

创建虚拟目录的步骤如下:
1. 创建虚拟目录所有者

[oracle@host5 Desktop]$ sqlplus sys/oracle@rcatdbsrv as sysdba
SQL> create user rman_vpc identified by rmanpwd default tablespace rcat_tbs temporary tablespace temp;
SQL> grant connect, resource , recovery_catalog_owner to rman_vpc;

这里授予了预定义角色 RECOVERY_CATALOG_OWNER 等,因为虚拟目录所有者将管理这些数据库。

  1. 授予管理特定数据库的权限
[oracle@host5 Desktop]$ rman target / catalog rcat_adm/rcatpwd@rcatdbsrv
RMAN> grant catalog for database orcl11g to rman_vpc;
  1. 创建虚拟目录
[oracle@host5 Desktop]$ rman target / catalog rman_vpc/rmanpwd@rcatdb
RMAN> create virtual catalog;

可以使用目录视图 rc_database 确认虚拟目录所有者只能访问授权的数据库:

[oracle@host5 Desktop]$ sqlplus rman_vpc/rmanpwd@rcatdbsrv
SQL> select name from rc_database;

此外,如果要让虚拟目录所有者能够注册新数据库,可以授予注册权限:

RMAN> grant register database to rman_vpc;

若要撤销虚拟目录所有者管理数据库的权限,使用 revoke 命令:

RMAN> revoke catalog for database ORCL11g from rman_vpc;

删除虚拟目录时,需以虚拟目录所有者身份执行 DROP CATALOG 命令:

[oracle@host5 ~]$ rman target / catalog rman_vpc/rmanpwd@rcatdbsrv
RMAN> drop catalog;

以下是创建虚拟目录的流程图:

graph LR
    A[创建虚拟目录所有者] --> B[授予管理特定数据库权限]
    B --> C[创建虚拟目录]
2. 创建和管理存储脚本

恢复目录的一个主要优势是能够创建存储脚本,这是控制文件所不具备的功能。通过使用存储脚本,数据库管理员可以将日常任务存储在脚本中,需要执行这些任务时,甚至可以重复执行,只需简单调用脚本即可。

使用恢复目录可以创建两种脚本:
- 本地脚本 :默认创建的本地脚本仅在创建时 RMAN 连接的目标数据库中可用,同一恢复目录中的其他数据库无法看到和使用该脚本。
- 全局脚本 :使用关键字 GLOBAL 创建的全局脚本,可被该恢复目录中的所有数据库看到和使用。

创建脚本的步骤如下:
1. 创建脚本 :使用 CREATE SCRIPT 命令,若不提及 GLOBAL 关键字,脚本默认为本地脚本。

RMAN> CREATE SCRIPT test_scr{
2> BACKUP TABLESPACE system;
3> }
  1. 查看已创建的脚本 :使用 LIST SCRIPT NAMES 命令。
RMAN> LIST SCRIPT NAMES;
  1. 查看脚本内容 :使用 PRINT SCRIPT 命令。
RMAN> PRINT SCRIPT test_scr;
  1. 执行脚本 :使用 run 块并将脚本名称传递给 execute 命令。
RMAN> run{execute script test_scr;}
  1. 修改脚本 :使用 REPLACE SCRIPT 命令。
RMAN> REPLACE SCRIPT test_scr 
2> {backup tablespace sysaux;}
  1. 删除脚本 :使用 DELETE SCRIPT 命令。
RMAN> DELETE SCRIPT test_scr; 

还可以从 RMAN 二进制文件调用操作系统脚本:

$ rman TARGET / CATALOG rcat_adm@rcatdbsrv SCRIPT '/u01/app/oracle/fbkp.cmd';
3. 使恢复目录高度可用

恢复目录存储着执行目标数据库任何恢复操作所需的关键信息,因此与它所托管的数据库一样重要。为防止恢复目录丢失导致受保护数据库恢复困难,需要对其进行备份。

保护恢复目录的方法如下:
- 定期备份整个目录数据库 :可以使用 RMAN 或用户管理的备份方式。如果目录数据库仅包含目录,建议减少表空间数量,这样可以更快完成备份作业,且不会占用太多存储空间。
- 定期执行目录模式的逻辑备份 :若目录数据库丢失,可以将该模式导入新数据库,从而无问题地访问其中存储的所有元数据。

此外,建议将目录数据库设置为 ARCHIVELOG 模式,以便在与目录模式相关的表空间或数据文件丢失时进行完整恢复。备份时至少制作两份副本,并确保至少有一份副本存储在与目录数据库不同的磁盘或磁带等单独的媒体设备上。同时,不要将恢复目录存储在它所保护的同一数据库中,否则可能会丢失存储的脚本、其他数据库的存储库以及比目标控制文件保存的更旧的元数据。

4. 升级恢复目录

恢复目录的升级与底层数据库的升级是独立的。在使用 RMAN 客户端时,RMAN 客户端、目标数据库和恢复目录之间存在版本兼容性限制。若要使用更高版本的 RMAN 客户端与恢复目录,必须对恢复目录进行升级。恢复目录数据库的版本必须等于或高于它所管理的数据库的版本。因此,若其注册的任何数据库升级到比恢复目录更高的版本,最好对恢复目录进行升级。

升级恢复目录的步骤如下:
1. 以恢复目录所有者身份连接。
2. 使用 UPGRADE CATALOG 命令,该命令需要执行两次才能完成恢复目录的升级。

5. 从恢复目录中注销数据库

如果不想让某个客户端数据库再受恢复目录保护,可以使用 UNREGISTER 命令轻松将其从恢复目录中注销。注销数据库会清除其元数据,由于元数据默认存储在目标数据库的控制文件中,若再次注册该数据库,元数据将与目录重新同步,但超过七天(默认值)的元数据将不可用。因此,在从恢复目录中注销数据库之前,建议记录该数据库的元数据,即备份信息。

注销数据库的步骤如下:
1. 使用 LIST BACKUP 命令获取到目前为止的所有备份列表。
2. 以目录所有者身份连接到目录数据库。

[oracle@host5 ~]$ rman catalog rcat_adm/rcatpwd@rcatdbsrv
RMAN> unregister database orcl11g;

对于备用环境,执行相同命令时需要指定 DB_UNIQUE_NAME

6. 删除恢复目录

如果不再需要对任何数据库使用恢复目录,可以使用 DROP CATALOG 命令删除整个目录:

$ rman target / catalog=rcat_adm/rcatpwd@rcatdbsrv
RMAN> DROP CATALOG;

执行该命令时需要再次确认以完成目录删除。

7. 与恢复目录相关的视图

恢复目录模式拥有多个视图,用于存储目标数据库的元数据。这些视图中的信息可以使用 RMAN 报告命令(如 LIST REPORT )访问,也可以直接查询目录视图。

恢复目录的视图名称以 RC_ 开头,例如,若要查询目录中注册的数据库,可以查询 RC_DATABASE 视图。这些视图位于目录的所有者模式下,要访问这些视图,需要登录到目录数据库中存储的目录所有者模式。

以下是仅在恢复目录存在时可用的目录视图列表:
| 视图名称 | 说明 |
| ---- | ---- |
| RC_ARCHIVED_LOG | 归档日志相关信息 |
| RC_BACKUP_ARCHIVELOG_DETAILS | 归档日志备份详细信息 |
| RC_BACKUP_ARCHIVELOG_SUMMARY | 归档日志备份摘要信息 |
| … | … |

由于列表较长,建议在 Oracle 在线文档的备份和恢复参考指南中搜索这些视图的详细描述。

8. RMAN 中的报告功能

在数据库备份中,了解已完成的操作和待完成的操作同样重要。例如,需要知道哪些数据文件已经备份,哪些还需要备份。RMAN 提供了两个报告命令: LIST REPORT ,虽然这两个命令都用于报告目的,但它们解决的是两个截然不同的问题。

8.1 使用 LIST 命令

LIST 命令主要用于列出数据库的现有备份和映像副本,还有其他变体,如列出故障(如数据文件被删除)或存储的脚本等。以下是使用 LIST 命令的一些示例:
- 列出备份摘要

RMAN> LIST BACKUP SUMMARY;
  • 按源文件类型分组列出备份
RMAN> LIST BACKUP BY FILE;
  • 列出所有现有备份
RMAN> LIST BACKUP;
8.2 使用 REPORT 命令

LIST 命令列出所有可用备份不同, REPORT 命令用于对元数据存储库进行分析。支持多个选项,以下是一些示例:
- 生成数据库所有数据和临时文件的详细输出

RMAN> report schema;
  • 根据保留策略生成尚未备份的文件报告
RMAN> report need backup;

通过合理使用这些命令和功能,可以更好地管理数据库备份和恢复操作,提高数据库管理的效率和安全性。

RMAN报告与目录管理全解析

9. 虚拟目录操作总结

为了更清晰地展示虚拟目录的操作流程,我们可以用一个 mermaid 流程图来呈现:

graph LR
    A[开始] --> B[创建虚拟目录所有者]
    B --> C[授予管理特定数据库权限]
    C --> D[创建虚拟目录]
    D --> E{是否需要注册新数据库}
    E -- 是 --> F[授予注册权限]
    E -- 否 --> G{是否撤销管理权限}
    F --> G
    G -- 是 --> H[撤销权限]
    G -- 否 --> I{是否删除虚拟目录}
    H --> I
    I -- 是 --> J[删除虚拟目录]
    I -- 否 --> K[结束]
    J --> K

下面通过表格总结虚拟目录操作的相关命令:
| 操作 | 命令示例 |
| ---- | ---- |
| 创建虚拟目录所有者 | sqlplus sys/oracle@rcatdbsrv as sysdba
create user rman_vpc identified by rmanpwd default tablespace rcat_tbs temporary tablespace temp;
grant connect, resource , recovery_catalog_owner to rman_vpc; |
| 授予管理特定数据库权限 | rman target / catalog rcat_adm/rcatpwd@rcatdbsrv
grant catalog for database orcl11g to rman_vpc; |
| 创建虚拟目录 | rman target / catalog rman_vpc/rmanpwd@rcatdb
create virtual catalog; |
| 授予注册新数据库权限 | grant register database to rman_vpc; |
| 撤销管理权限 | revoke catalog for database ORCL11g from rman_vpc; |
| 删除虚拟目录 | rman target / catalog rman_vpc/rmanpwd@rcatdbsrv
drop catalog; |

10. 存储脚本操作总结

存储脚本的操作也可以用一个流程图来梳理:

graph LR
    A[开始] --> B[创建脚本]
    B --> C{是否查看脚本信息}
    C -- 是 --> D[查看已创建脚本名称]
    C -- 否 --> E{是否执行脚本}
    D --> E
    E -- 是 --> F[执行脚本]
    E -- 否 --> G{是否修改脚本}
    F --> G
    G -- 是 --> H[修改脚本]
    G -- 否 --> I{是否删除脚本}
    H --> I
    I -- 是 --> J[删除脚本]
    I -- 否 --> K[结束]
    J --> K

同样,用表格总结存储脚本操作的命令:
| 操作 | 命令示例 |
| ---- | ---- |
| 创建脚本 | CREATE SCRIPT test_scr{
BACKUP TABLESPACE system;
} |
| 查看已创建脚本名称 | LIST SCRIPT NAMES; |
| 查看脚本内容 | PRINT SCRIPT test_scr; |
| 执行脚本 | run{execute script test_scr;} |
| 修改脚本 | REPLACE SCRIPT test_scr {backup tablespace sysaux;} |
| 删除脚本 | DELETE SCRIPT test_scr; |
| 调用操作系统脚本 | rman TARGET / CATALOG rcat_adm@rcatdbsrv SCRIPT '/u01/app/oracle/fbkp.cmd'; |

11. 恢复目录管理综合要点

为了确保恢复目录的有效管理,我们将前面提到的恢复目录相关操作要点进行汇总:
| 操作类型 | 要点说明 |
| ---- | ---- |
| 虚拟目录管理 | - 创建虚拟目录所有者并授予权限
- 授予管理特定数据库权限
- 创建虚拟目录
- 可根据需要授予注册权限、撤销管理权限和删除虚拟目录 |
| 存储脚本管理 | - 创建本地或全局脚本
- 查看、执行、修改和删除脚本
- 可调用操作系统脚本 |
| 恢复目录可用性 | - 定期备份整个目录数据库和执行目录模式的逻辑备份
- 目录数据库设置为 ARCHIVELOG 模式
- 备份至少两份副本并存储在不同介质 |
| 恢复目录升级 | - 独立于底层数据库升级
- 满足版本兼容性要求时进行升级,执行 UPGRADE CATALOG 命令两次 |
| 数据库注销 | - 使用 UNREGISTER 命令注销数据库
- 注销前记录备份信息,备用环境指定 DB_UNIQUE_NAME |
| 恢复目录删除 | 使用 DROP CATALOG 命令删除整个恢复目录 |
| 报告功能 | - LIST 命令列出备份和映像副本等信息
- REPORT 命令分析元数据存储库 |

通过以上对 RMAN 报告与目录管理的全面解析,我们详细了解了虚拟目录的使用、存储脚本的创建与管理、恢复目录的可用性保障、升级、数据库注销、删除以及相关的报告功能。合理运用这些技术和操作,能够提高数据库备份和恢复的效率,增强数据库管理的安全性和可靠性,为数据库的稳定运行提供有力支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值