过去:当我遇到错误时ORA-00257: Archiver error
,我使用 RMAN 命令解决了它:
rman target sys/1234
delete archivelog all;
这次, 当我尝试连接到 rman 目标时:
rman target sys/1234
我收到错误:
RMAN-00554: initialization of internal recovery manager packagefailed.
RMAN-04005: error from target database.
ORA-28001:the password has expired.
当我尝试以 sys SYSDBA 身份连接 sqlplus 时,会引发以下错误:错误:
ORA-28001: the password has expired
Changing password for SYS
New password:
当我输入新密码时,出现的错误是:
ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.
所以问题是..
- 当我通过 sqlplus 作为 sys SYSDBA 连接时,由于 archivelog RMAN,我无法更改过期的 sys 密码。
- 当我尝试修复 RMAN 错误时,由于系统密码过期,我无法连接到 RMAN。
我该如何解决这个问题?
您的根本问题(存档器问题)是您的磁盘空间不足。
归档器有一个简单的工作 - 获取已满的在线重做日志文件并将其内容写入归档重做日志(ArchiveLog)文件,从而释放在线重做日志文件以接受进一步的更改。
当归档器无法做到这一点时(由于磁盘空间不足),它会停止,并因此停止整个数据库,因为数据库不会接受任何它无法记录的更改(在重做中)。
以 SYSDBA 身份连接 SYS:
如果您已经登录到数据库服务器操作系统,则无需密码即可登录,假设您可以以 Oracle 软件所有者身份运行命令并设置了 ORACLE_SID 环境参数:
或者
如果您通过网络连接:
或者
SYSDBA 角色凭据存储在外部密码文件中,并且不会过期。该密码不一定与您在不调用 SYSDBA 角色的情况下用于连接的密码相同。