ORA-00020 maximumnumber of processes (150) exceeded
Problem: DB instance can’t be login andshow below error:
ORA-00020maximum number of processes (150) exceeded
Root Cause:Theprocesses parameter is set as 150. Sqlplus / as sysdba can’t login.And hangprocesses were locked the DB instances.
Solution: Restart DB server. It is anot a good solution.
More: please set the parameter as 1000at the begging to create DB instance. It is better to kill the blocked processwith kill -9.
ps -ef|grep oraclesid|grep -v grep|cut -c 9-15 |xargs kill -9
ps -ef|grep oraclesid show the process, if LOCAL=YES: the sessionis connected in locale server and not via listener. If LOCAL=NO: the session isconnected via listener.
ORA-00257:archiver error. Connect internal only, until freed
Problem: archive log is full of thedisk, show below error:
ORA-00257:archiver error. Connect internal only, until freed
Root Cause: The archive mode is openand archive log files size is increasing day by day to be full of disk.
Solution: rman clean archive log,because rman can release the space of Oracle.
rman target sys/manager
RMAN>crosscheck archivelog all
RMAN>delete archivelog all; //delete all archive log
RMAN>delete expired archivelog all; //delete expired archive logs
RMAN>delete archivelog until time 'sysdate-1' ;//delete the archive log beforetoday
Check theusage rate SQL:
SQL>select* from V$FLASH_RECOVERY_AREA_USAGE;
More:
sqlplus sys/manager as sysdba
SQL> show parameter log_archive_dest; //Check archive log location
SQL>archive log list; //archive log directory and logsequence
SQL>show parameter recover; // find the recoverdirectory
Closearchive mode:
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database noarchivelog;
SQL>alter database open;
Open archivemode:
SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;
If thedatabase can’t be started normally with archive mode, please firstly close thearchive mode, startup successfully and then open the archive mode.
If DBstartup still failed, please delete some archivelog files;
SQL>select group#,sequence# from v$log;
SQL>alter database clear unarchived logfile group 1;
SQL>ALTER DATABASE OPEN;
SQL>select name from v$datafile;
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST=’/opt/app/oracle/oradata/useagedb/arch’scope=spfile
Or updatethe size
SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=3GSCOPE=both;
ORA-00600:internal error code, arguments: [kcratr1_lastbwr], [], [], [], [],[], [], []
Problem:SQL>startup
ORACLE instance started.
TotalSystem Global Area 1073741824 bytes
Fixed Size 1264916 bytes
Variable Size 264241900 bytes
Database Buffers 801112064 bytes
Redo Buffers 7122944 bytes
Database mounted.
ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [],[],[], []
Encountered in: 10.2.0.2.0 Database
Root Cause:Oracle is unable to perform instance recover but it works whenis invoked manually.
Solution:
SQL>startup mount
ORACLE instance started.
TotalSystem Global Area 1073741824 bytes
Fixed Size 1264916 bytes
Variable Size 264241900 bytes
Database Buffers 801112064 bytes
Redo Buffers 7122944 bytes
Database mounted.
SQL> recover database
Media recovery complete.
SQL> alter database open;
Databasealtered.
More: This manner can’t solve all theORA 600 errors based on different situations.
ORA-01012: not logged on
Problem: DB instance can’t be login andclient reported ora- 12560.
conn / as sysdba report below error: ORA-01012: not logged on
And connect with other user, ORA-01089: immediate shutdown inprogress - no operations are permitted.
Root Cause:Shutdownprocess is failed.
Solution: ps-ef|grep ora_dbw0_$ORACLE_SID
Kill -9 porcessID
Or
ps -ef |grep $ORACLE_SID | grep -v grep | cut -c 9-15 | xargs kill -s 9
More:
关闭数据库是shutdown 后面没有接关闭参数中的任何一个。
nomal --->所有连接都断开时才能关闭;
transactional --->等待事务结束后,主动断开连接;
immediate --->主动断开事务和连接
abort --->立刻关闭数据库,这个操作是危险的,不会同步数据,不触发检查点,回滚段直接清空,相当于掉电,每次启动都要实例恢复。
ORA-01031: insufficient privileges
Problem: Via root account to connectinstance as sysdba, error ora-01031:insufficientprivileges is shown.
Root Cause: root has not the privilege.
Solution: Change the oracle account toconnect instance as sysdba. And export ORACLE_SID in the multiple instances.
More: Check parameter:
[oracle@3816svr~]$ export ORACLE_SID=opdb
[oracle@3816svr~]$ sqlplus / as sysdba
SQL> showparameter password;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
SQL> select *from v$pwfile_users;
USERNAME SYSDB SYSOP SYSAS
----------------------------------- ----- -----
SYS TRUE TRUE FALSE
SQL> grantsysdba to sys;
Update the passwordfile:
SQL>host$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwopdb password=manager force=y
ORA-01102: cannot mount database inEXCLUSIVE mode
Problem: Oracle server (virtual machine)isrestarted accidentally and the ora_data in the mount server(not restart). Whenthe instance is started, below error is shown:
SQL>startup
ORACLE instance started.
TotalSystem Global Area 276824064 bytes
FixedSize 778736 bytes
VariableSize 137371152 bytes
Database Buffers 138412032 bytes
RedoBuffers 262144 bytes
ORA-01102: cannot mountdatabase in EXCLUSIVE mode
Root Cause: the file resource is lockedin the server restart process.
Solution:
(1)cd $ORACLE_HOME/dbs
$ls sgadef*
Sgadef* notfound
$ls lk*
ls<sid>filesis not deleted. So delete them.
$rm lk*
(2)And thencheck alter log, below error is shown: ORA-27086: unable to lock file �C alreadyin use
Because thefile lock is still exited. So the lock should be cleaned.
Executionstep:
mv controlfile /tmp/controlfile
cp/tmp/controlfile /u01/oratab/ora_sid
More:
[root@3816svr ~]# cd$ORACLE_HOME/dbs
[root@3816svr dbs]#fuser -u lk*
[root@3816svr dbs]#fuser -u lkOPDB (uppercase of SID)
lkOPDB: 24981(oracle) 24983(oracle)25016(oracle) 25022(oracle) 25026(oracle) 25028(oracle) 25030(oracle)25032(oracle) 25034(oracle) 25036(oracle) 25038(oracle) 25042(oracle)
Via fuser to killthem:
[root@3816svrdbs]#fuser -k lk*