ORA Error Solutions——ORA-00020 ORA-00257 ORA-00600 ORA-01012 ORA-01031 ORA-01102

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 CauseTheprocesses 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 CauseShutdownprocess 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 – 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*




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章