如何基於共享伺服器模式shared server mode配置大池large pool之二

wisdomone1發表於2015-09-23

背景

  在前面的文章,我們瞭解瞭如何配置共享伺服器,本文我們深入瞭解下如何配置共享伺服器模式的一些細節資訊,便於全面掌握共享伺服器,為我們基於共享伺服器
配置大池奠定良好的基礎。  




結論

1,共享伺服器模式和諸多引數有關,但引數shared_servers是必須要配置的
2,共享伺服器模式相關的引數有shared_servers,max_shared_servers,dispatchers,max_dispatchers,circuits
3,shared_server_sessions指定開啟多少個共享伺服器會話,可以把餘下的SESSION資源用於專用伺服器會話,因為像RMAN備份之類的不能使用共享伺服器模式的會話
4,sessions源於processes,且2個引數enqueue_resources,transactions源於此2個引數,如果想調整,必須進行同步調整
5,在共享伺服器模式下,建議把sessions配置為1.1*客戶端的會話連線請求個數
6,v$session之server列有4個不同的值,分別為:dedicated,shared,none,pseduo,
   如果共享伺服器會話處理INACTIVE,則其值為NONE,如果正在ACTIVE,則其值為SHARED
7,如果要透過共享伺服器模式建立透過TNSNAMES.ORA的會話,必須還要配置DISPATCHERS引數
8,配置排程器程式的原則是,一般10個客戶端會話請求,對應一個排程器程式,同時還要考慮每天不同時間點業務負載的變化,進行動態調整排程器程式個數,以把資源用於其它用途
9,透過TNSNAMES.ORA連線資料庫,須在此檔案配置SERVER=SHARED,方可為共享伺服器會話
10,關於排程器程式註冊,可以透過LSNRCTL ,SERVICES進行檢視
11,這個系列仍沒有結束,下面的內容還在繼續,力爭把這塊知識搞清晰   




測試



1,與共享伺服器模式相關的一些引數
     a,shared_server  指定初始開啟的共享伺服器程式個數,且是開啟伺服器程式的最小個數,它是開啟共享伺服器程式的必須要配置的引數
     b,max_shared_servers 指定可以同時執行的最大共享伺服器程式的個數
     c,shared_server_sessions 指定同時可以執行的共享伺服器會話的個數,配置這個引數的目的,就是可以為專有伺服器會話預留空閒會話資源
     d,dispatchers 配置排程器程式
     e,max_dispatchers 指定可以同時執行最大多少個排程器程式,此引數可以忽略配置。這個主要用於適應將來負載增加,可以根據併發連線的請求
       動態調整開啟多少個排程器程式。
     g,circuits指定為來自網路的出入會話請求,可以產生多少個虛擬環路(概念是有些抽象,下面再詳細熟悉這個概念的真正含義)


2,透過例項驗證下上述的概念,加深理解
   
3,開啟2個共享伺服器程式
SQL> show parameter shared_servers


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer     2
shared_servers                       integer     2


  ---可見開啟2個共享伺服器程式,共享伺服器以S打頭,後附以數字字尾
SQL> host ps -ef|grep -i --color s00
ora10g    3840     1  0 23:00 ?        00:00:00 ora_s000_ora10g
ora10g    3842     1  0 23:00 ?        00:00:00 ora_s001_ora10g






4,只要配置shared_servers為0,即可禁用共享伺服器
SQL> alter system set shared_servers=0;


System altered.


SQL> show parameter shared_server


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer     2
shared_server_sessions               integer     0
shared_servers                       integer     0
SQL> 




[ora10g@seconary ~]$ ps -ef|grep -i --color s00
ora10g    5731  5233  0 00:10 pts/3    00:00:00 grep -i --color s00
[ora10g@seconary ~]$ 




5, ---shared_server_sessions預設值為空,我們下來主要測試下此引數與sessions引數的關係
SQL> show parameter shared_server_sessions


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_server_sessions               integer








----因為shared_server_sessions與sessions引數相關,所以檢視sessions配置與processes的配置
先看看官方對於這2個引數的含義是什麼


processes引數
   A,預設值為100,它是一個靜態引數,需要重啟修改方可生效
   B,RAC每個例項可以採用不同的配置
   C,指定ORACLE可以同時建立多少個程式
   D,到底要建立多少個程式,取決於所有的應用使用者程式有多少個,比如像鎖的個數和JOB QUEUE程式的個數以及並行執行產生的程式,把這些因素全要考慮進去
   E,SESSIONS以及TRANSACDTIONS的預設值是源於此引數的,所以,如果你修改了此引數,一定要同時調整SESSIONS和TRANSACTIONS
      也就是SESSIONS以及TRANSANCTIOS不會同時進行動態調整,需要你手工調整


 sessions引數
   A,預設值為(1.5*processes)+22
   B,靜態引數,修改需重啟庫
   C,指定可以最大建立多少個會話
   D,具體建立多少個會話取決於:同時線上的並會使用者會話是多少,以及後後程式的個數,再加上大約10%左右的遞迴會話
   E,由於ENQUEUE_RESOURCES以及TRANSACTIONS引數的預設值源於此引數,所以,如果你增加了此引數的值,也應該調整此2引數的值
   F,從10G R2開始,引數ENQUEUE_RESOURCE已經廢棄不用
   G,在共享伺服器模式下,注意啊,PROCESSES的值比較小(因為只用少量的共享伺服器程式個數以及排程器程式個數即可以支援大量的客戶端的會話請求)
      所以,ORACLE建議把SESSIONS引數配置為最大客戶端連線請求個數*1.1
      也就是說在共享伺服器模式下,sessions的大小要小於專有伺服器模式的sessions
         
    
看過了概念,再看看上述相關引數的實際配置
SQL> show parameter sessions


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sessions                             integer     170


---檢視processes配置
SQL> show parameter processes


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     150




--鑑於上述引數值過在,為了測試,我們調小上述引數的值各為processes=25,sessions=30


[ora10g@seconary ~]$ ps -ef|grep ora_|grep -v grep|wc -l
19


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


System altered.


SQL> alter system set sessions=30 scope=spfile;


System altered.


SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.


Total System Global Area 1157627904 bytes
Fixed Size                  2095800 bytes
Variable Size             352322888 bytes
Database Buffers          771751936 bytes
Redo Buffers               31457280 bytes
Database mounted.
Database opened.


可見sessions有個最小的值,即使你指定一個值
SQL> show parameter sessions


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sessions                             integer     32
shared_server_sessions               integer
SQL> show parameter processes


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes            integer     2
processes                            integer     25
SQL> 




SQL> show parameter shared_server_sessions


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_server_sessions               integer
SQL> 


--server列可以區分會話是採用專有伺服器模式還是共享伺服器模式
SQL> select distinct server from v$session;


SERVER
---------
DEDICATED


--總的sessions=32,如果我們配置shared_server_sessions=14,我想你再建立2個專有伺服器就會報錯,


SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         17


SQL> alter system set shared_server_sessions=14;


System altered.


shared_server_sessions為動態引數
SQL> show parameter shared_server_sessions;


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_server_sessions               integer     14




--新建專有伺服器會話一直到20
SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         20


--設定共享伺服器會話為10,這樣只餘下2個會話可用於建立專有伺服器模式
SQL> alter system set shared_server_sessions=10;


System altered.


--新的專有伺服器會話就不能建立了
[ora10g@seconary ~]$ sqlplus '/as sysdba'


SQL*Plus: Release 10.2.0.5.0 - Production on Tue Sep 22 23:59:34 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected.


--減少共享伺服器會話的個數從10變成9,這時應該可以建立一個專有伺服器會話,但事實還是不能建立,直到我把此引數變成0,也不成
SQL> alter system set shared_server_sessions=9;


System altered.




--換個角度,肯定是我哪裡理解不對或配置不對,共享伺服器模式,肯定是要透過tnsnames.ora
   (還產生一個問題,如果引數原來沒有值,如何在變更引數值,還原為無值情況呢,此問題先放這兒)


SQL> show parameter cir


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
circuits                             integer
SQL>    


--啟動監聽器
[ora10g@seconary ~]$ lsnrctl status


LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 23-SEP-2015 00:14:26


Copyright (c) 1991, 2010, Oracle.  All rights reserved.


Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                23-SEP-2015 00:14:03
Uptime                    0 days 0 hr. 0 min. 23 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /home/ora10g/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=secondary.redhat.com)(PORT=1521)))
Services Summary...
Service "ora10g" has 1 instance(s).




--檢視配置tnsnames.ora
[ora10g@seconary ~]$ cd /home/ora10g/product/10.2.0/db_1/network/admin
[ora10g@seconary admin]$ more tnsnames.ora 
# tnsnames.ora Network Configuration File: /home/ora10g/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.


ORA10G =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.3)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ora10g)
    )
  )


未透過TNSNAMES.ORA建立會話前
SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         19


  [ora10g@seconary admin]$ sqlplus scott/system@ora10g


SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 23 00:16:18 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.




Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> host
[ora10g@seconary admin]$ sqlplus scott/system@ora10g


SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 23 00:16:35 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.




Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> 


--透過TNSNAMES.ORA建立會話後,可見仍沒有采用共享伺服器模式


SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         21




--肯定是哪裡的引數沒有配置完全或正確,想到是上述關閉了共享伺服器程式以及配置可以建立的共享伺服器會話為0,調整其2個引數的值
SQL> alter system set shared_servers=2;


System altered.


SQL> alter system set shared_server_sessions=5;


System altered.


可見已經啟用了調器度程式及共享伺服器程式
SQL> host ps -ef|grep -i --color s00
ora10g    5977     1  0 00:18 ?        00:00:00 ora_s000_ora10g
ora10g    6031  3779  0 00:20 pts/1    00:00:00 /bin/bash -c ps -ef|grep -i --color s00


SQL> host ps -ef|grep -i --color d00
ora10g    4832     1  0 Sep22 ?        00:00:00 ora_d000_ora10g
ora10g    6039  3779  0 00:20 pts/1    00:00:00 /bin/bash -c ps -ef|grep -i --color d00


SQL> 


再次透過TNSNAMES.ORA建立會話報錯了
[ora10g@seconary admin]$ sqlplus scott/system@ora10g


SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 23 00:20:59 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


ERROR:
ORA-12516: TNS:listener could not find available handler with matching protocol
stack




Enter user-name: 


檢視報錯好像是說要在監聽中註冊排程器資訊


SQL> host oerr ora 12516
12516, 00000, "TNS:listener could not find available handler with matching protocol stack"
// *Cause: None of the known and available service handlers for the given 
// SERVICE_NAME support the client's protocol stack: transport, session, 
// and presentation protocols.
// *Action: Check to make sure that the service handlers (e.g. dispatchers) 
// for the given SERVICE_NAME are registered with the listener, are accepting 
// connections, and that they are properly configured to support the desired 
// protocols.




從監聽器的註冊資訊來看,服務service ora10g沒有看到排程器資訊註冊進來
[ora10g@seconary ~]$ lsnrctl


LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 23-SEP-2015 00:23:35


Copyright (c) 1991, 2010, Oracle.  All rights reserved.


Welcome to LSNRCTL, type "help" for information.


LSNRCTL> services
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "ora10g" has 1 instance(s).
    Handler(s):
      "DEDICATED" established:2 refused:0 state:ready
         LOCAL SERVER
Service "ora10gXDB" has 1 instance(s).
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: seconary, pid: 4832>
         (ADDRESS=(PROTOCOL=tcp)(HOST=secondary.redhat.com)(PORT=54385))
Service "ora10g_XPT" has 1 instance(s).
    Handler(s):
      "DEDICATED" established:2 refused:0 state:ready
         LOCAL SERVER
The command completed successfully




所以肯定是排程器引數配置不正確,調整其配置即可
SQL> show parameter dispa


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP) (SERVICE=ora10g
                                                 XDB)
max_dispatchers                      integer     2


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


System altered.


SQL> show parameter dispa


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (protocol=tcp)(service=ora10g)




SQL> alter system register;


System altered.


SQL> exit


你看這下服務ora10g裡面有排程器資訊了
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[ora10g@seconary ~]$ lsnrctl


LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 23-SEP-2015 00:26:29


Copyright (c) 1991, 2010, Oracle.  All rights reserved.


Welcome to LSNRCTL, type "help" for information.


LSNRCTL> services
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "ora10g" has 1 instance(s).
    Handler(s):
      "DEDICATED" established:2 refused:0 state:ready
         LOCAL SERVER
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: seconary, pid: 4832>
         (ADDRESS=(PROTOCOL=tcp)(HOST=secondary.redhat.com)(PORT=54385))


再次透過TNSNAMES.ORA連線即可成功
[ora10g@seconary admin]$ sqlplus scott/system@ora10g


SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 23 00:27:18 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.




Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> 




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


  COUNT(*)
----------
        22


SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         21
NONE               1




[ora10g@seconary admin]$ sqlplus scott/system@ora10g


SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 23 00:28:18 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.




Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> 




SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         21
NONE               3


如果你建立TNSNAME.ORA就會報錯了,會報ORA-00018,表明已經超過了可以建立的共享伺服器會話的個數
[ora10g@seconary admin]$ sqlplus scott/system@ora10g


SQL*Plus: Release 10.2.0.5.0 - Production on Wed Sep 23 00:29:27 2015


Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-00018: maximum number of sessions exceeded




6,從上述的v$session的server列,發現有值dedicated,none,我們來學習下這個列的幾種取值,經查官方手冊
有4個不同的取值
dedicated
shared
pseudo
none


即使透過TNSNAMES.ORA連線過來的會話,SERVER列為NONE,所以我想肯定與TNSNAMES.ORA配置有關,修改此檔案,新增選項server
ORA10G =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.3)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ora10g)
      (server=shared)
    )
  )


  再次透過TNSNAMES.ORA連線資料庫,還是顯示SERVER列為NONE




  嘗試重啟監聽試下,發現仍然沒有用
  lsnrtl stop
  lsnrctl start
  alter system register




經過BAIDU,發現如下文章:
http://blog.itpub.net/756652/viewspace-242505




SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         20
NONE               4


如果共享伺服器構建的會話正在工作,而非空閒,則對應哪個會話會由NONE變成shared
SQL> select count(*) from dba_objects,dba_objects;




SQL> select server,count(*) from v$session group by server;


SERVER      COUNT(*)
--------- ----------
DEDICATED         20
NONE               3
SHARED             1


從會話狀態列status也可以區分出來,就是說inactive時,共享伺服器會話為none
如果為inactive,共享伺服器會話為shared,所以這裡有個體會,ORACLE的知識真是錯綜複雜
有時要解決一個問題,相關的知識點全要掌握,而且這個資訊在官方手冊也沒有體現出來
需要你自己去思考
SQL> select server,status,count(*) from v$session group by server,status;


SERVER    STATUS     COUNT(*)
--------- -------- ----------
SHARED    ACTIVE            1
DEDICATED INACTIVE          3
NONE      INACTIVE          3
DEDICATED ACTIVE           17




7,我們學習如何配置共享伺服器程式
      A,為了啟動共享伺服器,必須配置1個共享伺服器程式及1個排程器程式;
   
      B,如果你沒有顯式配置排程器程式,資料庫仍舊會啟動1個排程器程式


      C,為了考慮向前的相容性,如果以PFILE啟動資料庫時,沒有配置shared_server引數,但是配置了dispatchers,也會開啟預設1個共享伺服器,即shared_server=1


        但是,如果SHARED_SERERS以及DISPATCHERS皆未配置,就不能開啟共享伺服器模式


      D,在大多資料庫配置環境中,每10個客戶端會話,可以配置1個共享伺服器程式;對於OLTP,每當客戶端請求次數很低,或者對於資料庫伺服器的使用比率很低,可能連線到資料庫伺服器的個數就會很高;
        相反的情況是,每當客戶端請求次數很高,可能連線到資料庫伺服器的個數就很低。


      E,如果你瞭解資料庫的負載特徵,可以最優配置引數SHARED_SERVERS
         有個真實的例子:
            比如你的資料庫是一個電信級的資料庫,最大有1000個應用要連線到資料庫,這樣你就可以根據C的原則,配置SHARED_SERVERS=100;
            但是因為資料庫一天的工作負載是有變化的,可能到了晚上只有200個應用要連線到資料庫,此時可以配置SHARED_SERVRER=20


      F,如果你減少SHARED_SERVER值,會由PMON回收處於INACTIVE狀態的共享伺服器程式,直到你由SHARED_SERVER指定的值   


      G,控制或限制共享伺服器程式個數的原因:
           G1,還要把一些比如CPU,記憶體資源用於其它專有伺服器程式,比如:當時還在跑批應用
           G2,如果本啟共享伺服器程式過多,也會產生嚴重的換頁現象,引發效能不佳
           G3,用於除錯分析所用,比如:配置不同的MAX_SHARED_SERVERS值,從很小值到一個更大的值,目的就是看到多少值可以穩定支援特定使用者個數的連線與響應,現象就是響應沒有延遲     




8,如何保護共享記憶體結構
       這個與引數CIRCUITS有關,此引數無預設值,用於指定在共享記憶體可以最大建立多少個虛擬鏈路,如果未指定此引數,則按需建立,受限於DISPACHERS引數以及系統的資源,一般不建議指定其值
       SQL> show parameter cir


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
circuits                             integer


--circuits引數為動態引數
SQL> alter system set circuits=10;


System altered.


SQL> show parameter cir


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
circuits                             integer     10
SQL> 


9,如何配置排程器dispatchers


--官方說如果不顯式指定dispatchers,僅指定shared_servers,資料庫會建立預設的僅通訊協議的排程器,但無通訊地址
SQL> show parameter shared_server


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer     2
shared_server_sessions               integer     7
shared_servers                       integer     2
SQL> 
SQL> 
SQL> 
SQL> show parameter dispa


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (protocol=tcp)(service=ora10g)
max_dispatchers                      integer     2
SQL> host ps -ef|grep -i --color d00
ora10g    4832     1  0 Sep22 ?        00:00:00 ora_d000_ora10g
ora10g   10452  6658  0 03:36 pts/1    00:00:00 /bin/bash -c ps -ef|grep -i --color d00


SQL> host ps -ef|grep -i --color s00
ora10g    5977     1  1 00:18 ?        00:03:20 ora_s000_ora10g
ora10g    6423     1  0 00:33 ?        00:00:00 ora_s001_ora10g
ora10g   10508  6658  0 03:39 pts/1    00:00:00 /bin/bash -c ps -ef|grep -i --color s00


--等同於配置dispatchers="(PROTOCOL=tcp)"
SQL> alter system set dispatchers='';


System altered.


SQL> show parameter dispa


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string
max_dispatchers                      integer     2


可見雖然沒有配置dispatchers,但仍會啟一個排程器程式
SQL> host ps -ef|grep -i --color d00
ora10g    4832     1  0 Sep22 ?        00:00:00 ora_d000_ora10g


但從監聽服務來看,狀態為BLOCKED,即不能接受新的連線請求
[ora10g@seconary admin]$ sqlplus scott/system@ora10g


ERROR:
ORA-12520: TNS:listener could not find available handler for requested type of
server


LSNRCTL> services
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "ora10g" has 1 instance(s).
    Handler(s):
      "D000" established:0 refused:0 current:4 max:1022 state:blocked
         DISPATCHER <machine: seconary, pid: 4832>
         (ADDRESS=(PROTOCOL=tcp)(HOST=secondary.redhat.com)(PORT=54385))


恢復排程器引數配置後,即可正常連線資料庫
SQL> alter system set dispatchers='(protocol=tcp)(service=ora10g)';


System altered.


[ora10g@seconary admin]$ sqlplus scott/system@ora10g


個人簡介


8年oracle從業經驗,具備豐富的oracle技能,目前在國內北京某專業oracle服務公司從事高階技術顧問。
服務過的客戶:
中國電信
中國移動
中國聯通
中國電通
國家電網
四川達州商業銀行
湖南老百姓大藥房
山西省公安廳
中國郵政
北京302醫院     
河北廊坊新奧集團公司

 專案經驗:
中國電信3G專案AAA系統資料庫部署及最佳化
      中國聯通4G資料庫效能分析與最佳化
中國聯通CRM資料庫效能最佳化
中國移動10086電商平臺資料庫部署及最佳化
湖南老百姓大藥房ERR資料庫sql最佳化專案
四川達州商業銀行TCBS核心業務系統資料庫模型設計和RAC部署及最佳化
四川達州商業銀行TCBS核心業務系統後端批處理儲存過程功能模組編寫及最佳化
北京高鐵訊號監控系統RAC資料庫部署及最佳化
河南宇通客車資料庫效能最佳化
中國電信電商平臺核心採購模組表模型設計及最佳化
中國郵政儲蓄系統資料庫效能最佳化及sql最佳化
北京302醫院資料庫遷移實施
河北廊坊新奧data guard部署及最佳化
山西公安廳身份證審計資料庫系統故障評估
國家電網上海災備專案4 node rac+adg 
       貴州移動crm及客服資料庫效能最佳化專案
       貴州移動crm及客服務資料庫sql稽核專案
       深圳穆迪軟體有限公司資料庫效能最佳化專案

聯絡方式:
手機:18201115468
qq   :   305076427
qq微博: wisdomone1
新浪微博:wisdomone9
qq群:275813900    
itpub部落格名稱:wisdomone1    http://blog.itpub.net/9240380/






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-1807316/,如需轉載,請註明出處,否則將追究法律責任。

相關文章