Listener.ora içinde SID_LIST_LISTENER olmadan bir Oracle Listener nasıl yapılandırılır?


13

Aşağıdaki listener.ora dosyasını kullanarak bir ORACLE 11g sunucusuna erişimim var

# listener.ora Network Configuration File: D:\app\Administrator\product\11.1.0\db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.111)(PORT = 1521))
    )
  )

ve bu sunucudaki tüm örneklere hizmet eder,

lsnrctl status

Benim sorunum, sanal bir makinede yeni bir Oracle 11g kurulumu yaptığımda, bir listener.ora kullanmak zorunda olduğum

# listener.ora Network Configuration File: C:\app\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )

   (SID_DESC =
     (GLOBAL_DBNAME = ORCL)
     (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
     (SID_NAME = orcl)
    )

   (SID_DESC =
     (GLOBAL_DBNAME = BMBK)
     (ORACLE_HOME = C:\app\oracle\product\11.2.0\dbhome_1)
     (SID_NAME = BMBK)
    )

 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 169.254.200.102)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\oracle

SID_LIST_LISTENER girerse, yani diğer sunucudan böyle bir listener.ora kullanarak

C:\Windows\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 27-NOV-2011 10:14
:24

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

Anmeldung bei (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS des LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
Startdatum                27-NOV-2011 10:14:08
Uptime                    0 Tage 0 Std. 0 Min. 18 Sek.
Trace-Ebene               off
Sicherheit                ON: Local OS Authentication
SNMP                      OFF
Parameterdatei des Listener C:\app\oracle\product\11.2.0\dbhome_1\network\admin\
listener.ora
Log-Datei des Listener    c:\app\oracle\diag\tnslsnr\WSV-BK-W7en64-S\listener\al
ert\log.xml
Zusammenfassung Listening-Endpunkte...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=169.254.200.102)(PORT=1521)))
Der Listener unterst³tzt keine Services
Der Befehl wurde erfolgreich ausgef³hrt.

Son mesaj şu anlama gelir:

Dinleyici hiçbir Hizmeti desteklemez.

Bu iki sunucunun neden farklı davrandığı hakkında hiçbir fikrim yok. Yapılandırma dosyalarında veya kayıt defteri anahtarlarında ipucu bulamadım.

Düzenle:

Sanırım cevap Burleson Consulting tarafından bu yazıda gömülü bir yerde , ama aslında yapılandırıldığı noktayı bulamıyorum.

Yanıtlar:


14

Bu partiye biraz geç ...

Veritabanı otomatik olarak dinleyiciye kaydolmalı ve SID_LISTgirişleri gereksiz hale getirmelidir ve bu 192.168.111.111ortamınızla birlikte gerçekleşiyor gibi görünmektedir . Dinleyici veritabanından sonra başlatılırsa, kayıt olması biraz zaman alabilir ve hiçbir zaman bunu yapmadığı durumlar olabilir.

Bir alter system registerkomutla kaydettirmeye çalışabilirsiniz . Veritabanı, LOCAL_LISTENERkayıt olması gereken dinleyiciyi tanımlamak için parametreyi kullanır . Varsayılan olarak bu null şeklindedir ve bu da belgelere göre eşdeğerdir hostname:1521.

Eğer alter system registerhizmet görünür yapmaz lsnrctl statusçıktı sonra ben de bunu hostname tanımlamak veya çözemediği şüpheli olur, yoksa o dinleyici üzerinde, ya da farklı bir adrese çözme oluyor LOCAL_LISTENERiçin bir şey geçersiz olarak ayarlanır sanal kutu. İle doğrudan LOCAL_LISTENEReşleşecek şekilde ayarlayabilirsiniz listener.ora, örneğin:

alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))' scope=both;
alter system register;

Ya da, bu ayrıntıların sizin adınızda bulunduğu bir takma ad kullanabilirsiniz tnsnames.ora. Örneğin, şöyle bir tnsnames.oragiriş eklerseniz :

MY_LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  )

Sonra şunları yapabilirsiniz:

alter system set local_listener='MY_LISTENER' scope=both;
alter system register;

tnsnames.oraBelki de kısalık dışında , sürümü kullanmanın görebildiğim tek gerçek avantajı , yapılandırmayı veritabanından ziyade SQL * Net dosyalarında değiştirebilmenizdir; ve hatta yalnızca makineler arasında veritabanlarını klonluyorsanız veya dinleyicilerinizin ve veritabanlarınızın farklı hesaplar altında (örneğin, gridRAC / HA için bir kullanıcıyla) çalıştırılması durumunda gerçekten yararlı görünüyor .

Burada daha fazlası LOCAL_LISTENER var .

Edit: Ve bu oldukça kapsamlı görünüyor.


-2

Benzer bir sorun yaşadım ve sadece kapatmanın ve örneği yeniden başlatmanın doğru kaydedilmesine neden olduğunu buldum.

Bu sqlplus komut satırı kullanılarak yapılabilir. SYSDBA ayrıcalıkları (örn. Sistem) sözdizimi ile kullanıcı olarak giriş yapmanız gerekir:

sqlplus name/pass as SYSDBA

sonra 'kapanma'yı çalıştırın ve bitmesini bekleyin. ardından 'startup' komutunu çalıştırın ve bitmesini bekleyin.

parmak çarpı işareti şimdi dinleyiciye kayıtlı bir örneğiniz olmalıdır.

Durumun böyle olup olmadığını kontrol etmek için lsnrctl dosyasını çalıştırabilir ve 'status' komutunu çalıştırabilirsiniz. eğer işe yaramadıysa 'Dinleyici hiçbir hizmeti desteklemiyor' mesajını görmeye devam edersiniz, aksi takdirde

Service "horse" has 1 instance(s).
 Instance "horse", status READY, has 1 handler(s) for this service...

4
Lütfen, yapma ... sadece dinleyici kaydı için veritabanını yeniden başlatmaya gerek yoktur. "sistem kaydını değiştir;" sqlplus bunu yapar ve zaten bir önceki cevapta yazılmıştır.
Balazs Papp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.