ORA-00020、无法使用sys用户登录系统。

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010383786/article/details/52460368


1、测试数据源,报错;查看数据库服务,无法使用sys用户登录系统。

2、重启数据库服务,startup后提示ora-00020错误。查看错误码:

ORA-00020: maximum number of processes (string)exceeded

Cause: All process state objects are in use.

Action: Increase the value of the PROCESSES initialization parameter

(没有可用的空闲进程

  1. 进程数达到最大

  2. 指定进程无法启动/无法执行

结合告警日志查看信息,确定问题原因。

ALTER DATABASEMOUNT

Successful mount of redo thread 1, withmount id 220208027

Database mounted in Exclusive Mode

Lost write protection disabled

Completed: ALTERDATABASE MOUNT

Mon Aug 17 15:08:16 2015

ALTER DATABASE OPEN

LGWR: STARTING ARCHPROCESSES

Mon Aug 17 15:08:16 2015

ARC0 started with pid=19, OS id=8704

ARC0: Archival started

LGWR: STARTING ARCHPROCESSES COMPLETE   (可见归档进程已经启动)

ARCH:Error 19504 Creating archive log file to'F:\ARCHIVELOG\ARC0000015418_0842101596.0001'

Errors in fileD:\APP\ADMINISTRATOR\diag\rdbms\xcky\xcky\trace\xcky_ora_11064.trc:

ORA-16038: 日志 1 sequence# 15418 无法归档(启动后无法执行归档)

ORA-19504: 无法创建文件1、权限问题《系统使用中途报错,可能性很小》  2、磁盘满)

ORA-00312: 联机日志 1 线程 1:'D:\APP\ADMINISTRATOR\ORADATA\XCKY\REDO01.LOG'

ORA-00312: 联机日志 1 线程 1:'E:\ORADATA\REDO\REDO01A.LOG'

ORA-00312: 联机日志 1 线程 1:'E:\ORADATA\REDO\REDO03A.LOG'

USER (ospid: 11064):terminating the instance due to error 16038

System state dump requested by (instance=1,osid=11064), summary=[abnormal instance termination].

SystemState dumped to trace fileD:\APP\ADMINISTRATOR\diag\rdbms\xcky\xcky\trace\xcky_diag_6240.trc

ARC0: STARTING ARCH PROCESSES

Logins disabled; aborting ARCH processstartup (1092)

ARC0: Archival disabled due to shutdown:1092

Shutting down archive processes

Archiving is disabled

  1. 将数据库启动到mount状态。startupmount;

  2. 查看归档日志存放的位置。查看磁盘是否满了。

SQL>showparameter archive_dest

 

经查证,的确是由于归档磁盘空间满导致系统归档进程无法执行,使得用户不能正常登陆系统。

5、修复操作:

使用rman将归档备份,删除一部分老归档文件。之后执行:

rman target /

 

RMAN>crosscheck archivelog all;

 

RMAN>delete expired archivelog all;

 

系统正常运行后,立即对系统做热备份。

rman target /

RMAN> run{

backup incremental level 0 database format'H:\backup\db_level0_%d_%s_%Y%M%D.bak';

set limit channel c1 kbytes=1024000;

sql 'alter system archive log current';

backup archivelog all format'H:\backup1\arch_%d_%s_%Y%M%D_%U.bak' delete all input;

backup current controlfile format'H:\backup1\control_%d_%s_%Y%M%D_%U.bak';

}


展开阅读全文

没有更多推荐了,返回首页