【知识库译文】在 Oracle 备份期间,如何排除错误“ORA-01031:权限不足”?
已更新
环境:
EMC NetWorker
EMC NetWorker for Database and Application (NMDA)
Oracle
描述:
使用 NMDA/NMO 执行的 Oracle 计划备份需要一个有效的连接字符串,用于连接到目标数据库和恢复目录(如果使用此目录)。用于计划 NMDA/NMO 备份的指定 RMAN 脚本,没有连接目标数据库的连接字符串,或连接字符串中指定的用户没有 SYSDBA 权限。
NetWorker Module For Database Application (NMDA) 和 NetWorker Module for Oracle (NMO) 计划备份失败,
显示错误
ORA-01031:权限不足。手动 NMDA/NMO 备份成功。
NMDA/NMO backup fails with :
============================================================
RMAN-00569:=========== ERROR MESSAGE STACK FOLLOWS ===========
RMAN-00571:=====================================================================
RMAN-00554:initialization of internal recovery manager package failed
RMAN-04005:error from target database:
ORA-01031:insufficient privileges
解决方法:
Oracle 计划备份的每一个 RMAN 脚本中,连接目标 target_user/target_passwd@target_Netservicename 的命令都是必填的。该命令建立了与目标数据库的适当连接。
在连接目标命令中指定正确的值:
“target_user”(目标用户)是有对目标数据库拥有 SYSDBA 权限的用户。
“target_passwd”(目标密码)是目标用户的密码(用于进行 SYSDBA 连接),目标数据库的 orapwd 文件中指定了该密码。
“target_Netservicename”(目标 Net 服务名称)是目标数据库的 Net 服务名称。该名称在连接目标命令中是必
填的。
目标数据库必须使用一个密码文件。要使用密码文件,需使用 orapwd 应用工具,并将 initoracle_sid.ora 文件中的 REMOTE_LOGIN_PASSWORDFILE 参数设置为专有型。相应的 Oracle 文档提供了详细信息。
注意:
由于每一个计划备份 RMAN 脚本需要一个连接目标命令,每一个 Oracle 实例需要一个独立的计划备份 RMAN 脚本。在连接目标命令中,不要使用目标用户的内部值或目标密码的 oracle 值。
如果 Oracle 计划备份使用了恢复目录,那么命令连接目录 cat_user/rcvcat_passwd@rcvcat_Netservicename 是强制性的。该命令建立了与恢复目录数据库的适当连接。
在连接目录命令中指定正确的值:
“rcvcat_user”(恢复目录用户)是恢复目录数据库的所有人。
“rcvcat_passwd”(恢复目录密码)是恢复目录用户的密码。
“rcvcat_Netservicename”(恢复目录 Net 服务名称)是恢复目录数据库的 Net 服务名称。
以下示例是用于计划 NMDA/NMO 备份的一个有效 RMAN 脚本:
connect target sys/sys@orac;
connect catalog rman/rman@rcat;
run {
allocate channel t1 type 'SBT_TAPE';
backup full filesperset 4 format '/prod_%U' database;
release channel t1;
}
以下示例是用于计划 NMDA/NMO 备份的错误 RMAN 脚本:
connect target sys/sys; <======== Net service name not specified
connect catalog rman/rman@rcat;
run {
allocate channel t1 type 'SBT_TAPE';
backup full filesperset 4 format '/prod_%U' database;
release channel t1;
}
connect target / ; <======== connect string does not have user/passwd@SID specified
connect catalog rman/rman@rcat;
run {
allocate channel t1 type 'SBT_TAPE';
backup full filesperset 4 format '/prod_%U' database;
release channel t1;
}
参考:
EMC 支持解决方案编号:163055