电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

对rman命令行为的操作简单分析


发布日期:2019/12/15
 

rman 对dbms_backuprestore 的一些特定调用完梢酝üebug 分析出来

通过设置debug 模式我们可以跟蹤到大量的Log从而为分析提供一定的说明假定我们提交如下的命令

rman target / debug trace=d/rman_tracelog

通过查看日志我们得之rman 首先确定数据库状态

DBGSQL EXEC SQL AT TARGET select decode(statusOPEN) into b from v$instance

DBGSQL sqlcode=

DBGSQL b =

判断数据库是否是在open 状态下然后要去获取数据库的compatible参数值

接下来调用dbms_backup_restore确定rman 可用的版本信息对应的一些参数如下

protocol_version_number_min NUMBER =

protocol_release_number_min NUMBER =

protocol_update_number_min NUMBER =

protocol_version_number_max NUMBER =

protocol_release_number_max NUMBER =

protocol_update_number_max NUMBER =

这个范围内可用 ? 是不是很熟悉?

下面调用dbms_rcvman的getPackageVersion 函数

($ORACLE_HOME/rdbms/admin/recoverbsq创建dbms_rcvman 并可以获得相关注释)获取package 的版本可用信息

接下来rman 会查询V$database 从中获取name resetlogs_time resetlogs_change# dbid 等信息

下面这个比较重要 x$kcccp( Kernel Cache Checkpoint Progress)中获取检查点记录

类似如下的SQL

select nvl(max(cpmid)) from x$kcccp where cpsta=

这些操作完成后rman 从v$option 中获取相关信息包括Parallel backup and recoveryIncremental backup and

recoveryDuplexed backupsBlock Media RecoveryPointintime tablespace recovery通过这些来判断数据库是否具有这些

功能

然后Log中显示连接到目标数据库

分析过程并不复杂不过在涉及到深入的命令的时候会产生大量的Log要有一定的耐心才能继续下去在rman 出现故障的时候

设置Debug模式进行分析是一种非常有效的办法如果可能得话以后的文章中我会举几个例子来说明

上一篇:如何架构高性价比的分布式计算机集群 (3)

下一篇:Job进程不能启动时间再次停止运行的现象