一、listener文件中的GLOBAL_DBNAME ,SID_NAME可能与实例名称不符,修改后,重启listener.

二、专有服务器模式下processes值设的过小。可通过以下方法解决:

    1.cmd

    2.sqlplus

    3.connect sys/test as sysdba

    4.查看会话数、processes、sessions

    SQL> select count(*) from v$session;

         COUNT(*)

 

        ----------

           45

    SQL> show parameter processes

    NAME                                 TYPE        VALUE

    db_writer_processes                  integer     1

    gcs_server_processes                 integer     0

    job_queue_processes                  integer     10

    log_archive_max_processes            integer     2

    processes                            integer     50

    SQL> show parameter sessions

    NAME                                 TYPE        VALUE

    java_soft_sessionspace_limit         integer     0l

    icense_max_sessions                 integer     0

    license_sessions_warning             integer     0

    logmnr_max_persistent_sessions       integer     1

    sessions                             integer     60

    shared_server_sessions               integer

    5.修改processes和sessions值:sessions=(1.1*process+5)

    SQL> alter system set processes=300 scope=spfile;

   系统已更改。
  SQL
>
 
alter
 system 
set
 sessions
=
335
 scope
=
spfile;

    系统已更改。

    6.重启数据库,使更改生效

三、共享模式下

    1.show parameters dispatchers;

    NAME                TYPE             VALUE
    dispatchers         string           (protocol=tcp)(service=oracle10xdb)

    max_dispatchers      integer  

    2.确定是否有足够的dispatchers

    SQL> select  name, (busy/(busy + idle)) "dispatcher busy rate" from v$dispatcher ;   

    NAME dispatcher busy rate

    ---- --------------------
    D000           .000121704
    D001           .000042597

    D002           .004935402  

    如果超过50%,则需要考虑增加更多的dispatchers;

    3.改变dispathchers:

    SQL>alter system set dispatchers = '(protocol=tcp)(dispatchers=3)(service=oracle10xdb)';

    system altered

四、PGA内存设置太小

    注:该方法没试过。