oracle rman.exe 文件丢失 拷贝rman.exe 报 ora01031错误

今天启动数据库发现本机数据库无法启动。

打开alter日志文件,发现flash_recovery_area 文件已满,发现使用率是100%,

于是决定删除过期的归档日志

>rman 

rman 不是内部命令,

到oracle文件目录里找bin文件夹下的rman.exe ,发现rman.exe文件丢失,

于是从另一台好使的oracle文件里拷贝rman.exe文件到本机。

>rman 

>connect target/

报错误:rman-00571

           rman-00569 

           rman-00571

           ora-01031

原因分析,查了一下ORACLE的原文(来源于网上)

SQLNET.AUTHENTICATION_SERVICES
Purpose

Use the parameter SQLNET.AUTHENTICATION_SERVICES to enable one or more authentication services. If authentication has been installed, it is recommended that this parameter be set to either none or to one of the authentication methods.
Default
None

Values
Authentication Methods Available with Oracle Net Services:

* none for no authentication methods. A valid username and password can be used to access the database.
* all for all authentication methods
* nts for Windows NT native authentication

Windows NT native authentication

An authentication method that enables a client single login access to a Windows NT server and a database running on the server.

原来这个认证方法是WINDOWS系列操作系统特有的,UNIX/LINUX不需要,或者根本不能设为NTS,仔细看ORACLE的配置手册,总结几点如下

1.在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;
2.windows下不设置或者设置为其他任何值都不能使用OS认证。
3.在unix/linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;
4.在unix/linux下设置为其他任何值都不能使用OS认证。

发现本机的sqlnet.ora 的认证方式是 NONE

于是注销修改为

SQLNET.AUTHENTICATION_SERVICES=(NTS) 

>rman

>connect target/

已连接到目标数据库(未启动)

原文地址:https://www.cnblogs.com/umlzhang/p/2836771.html