一卡通vip充值消费线上oracle库服务器故障排查过程_第1张图片 

上图是oracle体系总架构图

今天突然公司所有终端pos机不能刷卡消费,财务室不能充值,一下很多电话打过来了,第一反应肯定数据库出问题了,登陆到数据库服务器,果然sqlplus连进去后就不断提示要求输入用户名,弹出一下提示:

ERROR:
ORA-00020: maximum number of processes (150) exceeded
Enter user-name: sys
Enter password:
ERROR:
ORA-00020: maximum number of processes (150) exceeded
Enter user-name: sys
Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied
SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

思考分析了一会,果断把oracle通过任务管理器把其相关进程给杀了,终于可以进去了,通过研究,解决办法如下:

oracle@wu101:~> sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Nov 15 17:07:40 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show parameter processes;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     150
SQL> alter system set processes=1500 scope = spfile;

System altered.

SQL> commit;

Commit complete.

SQL> shutdown abort        # 这个命令慎重执行,若是在生产环境下,还是用"shutdown immediate"比较好,小白是自己的环境,才如此暴力强制下线的。
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2228784 bytes
Variable Size            1073745360 bytes
Database Buffers          520093696 bytes
Redo Buffers                7344128 bytes
Database mounted.
Database opened.
SQL> show parameter processes;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     1500


windows上的oracle的pfile和spfile的路径在如下目录:

D:\app\Administrator\product\11.2.0\dbhome_1\database

 

今天给大家分享一个oracle问题的解决实例

 

如启动Oracle时提示“ORA-00600: internal error code, arguments”错误?

 

SQL> startup

 

ORA-00600: internal error code, arguments: [ksunfy : too few sessions], [9504], [75040], [], [], [], [], [], [], [], [], []

 

解决办法:这里的错误说明Oracleprocessessessions的值调的太大了。

 

(1)修改processessessions的值,可先通过目前有问题的spfile创建成新的pfile,因为pfile是文本文件,它才打得开,用以下命令创建:create pfile from spfile;然后到D:\app\Administrator\product\11.2.0\dbhome_1\databasevim INIThlecard.ORA,然后修改里面的值,如下:

 

*.processes=10000

 

*.sessions=10000

 

保存

 

2SQL> create spfile from pfile

 

File created.

 

SQL> startup

 

ORACLE instance started.

 

Total System Global Area 8.5516E+10 bytes

 

Fixed Size                  2237776 bytes

 

Variable Size            8858372784 bytes

 

Database Buffers         7.6504E+10 bytes

 

Redo Buffers              151142400 bytes

 

Database mounted.

 

Database opened.