Specifica della NIC tramite la quale un membro Db2 può acquisire l'accesso esclusivo a una porta

È possibile specificare una o più NIC (network interface card) tramite cui un membro Db2 può acquisire l'accesso esclusivo a una porta specifica per assistere i client o i driver remoti. È possibile specificare una particolare NIC in base al relativo indirizzo IP o in base al nome host associato a tale indirizzo nel file nicbinding.cfg .

Informazioni preliminari

Poiché i nomi host completi derivano dai nomi host o dagli indirizzi IP specificati per le NIC, assicurarsi che il driver o il client remoto possa utilizzare i valori specificati per identificare in modo univoco le NIC corrette. Il client o il programma di controllo remoto deve essere in grado di risolvere i nomi host completi tramite il DNS o il file /etc/hosts .

Un valore dal file nicbinding.cfg può essere restituito da un membro al client remoto o al driver come indirizzo IP specificato o come nome host completo (indipendentemente dal fatto che sia stato specificato un indirizzo IP o un nome host), a seconda della configurazione del server Db2 . Associando il valore restituito all'ubicazione corretta per il membro, il driver o il client remoto può accedere al database.

Informazioni su questa attività

Quando un membro Db2 viene avviato, tenta di acquisire l'accesso esclusivo a una porta specifica su una o più NIC sull'host in cui risiede. Se un membro Db2 riesce ad ottenere l'accesso esclusivo a una porta specifica su tutti i NIC sull'host, qualsiasi altra istanza Db2 sullo stesso host deve essere configurata per utilizzare una porta diversa per i client o i driver remoti.

A partire dalla Versione 10.5 Fix Pack 5, è possibile specificare uno o più NIC mediante i quali un membro Db2 può acquisire l'accesso esclusivo a una porta specifica, evitando in tal modo il conflitto per lo stesso numero di porta. È possibile abilitare questa funzione per un sottoinsieme di membri Db2 o per tutti i membri nell'istanza.

È possibile specificare una particolare NIC tramite il suo indirizzo IP o il nome host che corrisponde a quell'indirizzo nel file nicbinding.cfg , che si trova nella directory ~/sqllib/cfg (o nella directory ~/sqllib_shared/cfg negli ambienti) in linux/, mentre per windows si trova nella directory Db2 pureScale ambienti) in linux/ AIX, per windows si trova nella directory C:\ProgramData\IBM\DB2\DB2COPY1\DB2\cfg . Per specificare più NIC, utilizzare un nome host multihome che corrisponda agli indirizzi IP per tali NIC. Un host multihomed è un host il cui nome host viene associato (tramite DNS) a più indirizzi IP NIC.

Se la porta specificata su una NIC specificata è già di proprietà di un'altra istanza di Db2 , oppure il nome host o l'indirizzo IP specificato non rappresenta alcuna NIC valida sull'host, l'accoppiamento viene considerato non valido e viene restituito SQL5043N quando viene avviato il membro Db2 .


Limitazioni

  • Per ogni membro Db2 destinato al servizio del client remoto o del traffico del programma di controllo, verificare che sia presente almeno una NIC che può essere utilizzata per il traffico client / server sull'host su cui risiede il membro Db2 .
  • Per un'istanza Db2 a singolo membro, è possibile specificare al massimo un indirizzo IP o un nome host che rappresenti una o più NIC. Se l'ID membro è 0, è possibile specificare l'indirizzo IP o il nome host senza l'ID membro, poiché in questo caso l'ID membro assume il valore predefinito 0.
  • Per un'istanza Db2 multimembro, è possibile specificare al massimo un indirizzo IP o un nome host che rappresenti uno o più NIC per ciascun membro.

Procedura

Utilizzando un editor di testo, aggiungere le informazioni di binding al file nicbinding.cfg .
Ogni linea nel file di configurazione rappresenta un collegamento tra un singolo membro Db2 e la relativa NIC.
Nota: sul sistema operativo Windows, è richiesto un carattere di nuova riga dopo ogni indirizzo IP nel file nicbinding.cfg per rendere effettivo il binding. Per aggiungere un carattere di nuova riga, premere Invio alla fine di ogni riga.
Nel seguente esempio, il file di configurazione definisce i bind per tutti e tre i membri (0, 1 e 2) in un'istanza Db2 .
0 9.1.2.1
1 9.1.2.2
2 host1.newyork.mycompany.com
Se un particolare membro non ha alcuna voce nel file, tale membro è collegato a tutte le NIC sull'host in cui risiede. Nel seguente esempio, il file di configurazione definisce i bind per tre membri (0, 1 e 3) in un'istanza Db2 di quattro membri:
0 host1
1 host2.chicago.mycompany.com
3 9.1.2.4
Il membro 2 non è specificato nel file, quindi è collegato a tutte le NIC sull'host in cui risiede.

Esempi

Indirizzi VIP (Virtual IP)
È possibile identificare una NIC utilizzando un indirizzo VIP (virtual IP) o associare un nome host al VIP. È possibile associare un VIP a qualsiasi indirizzo IP NIC sull'host. Se si verifica un malfunzionamento di rete, il VIP può essere associato a un indirizzo IP per una NIC differente sullo stesso host o su un host differente. Nel seguente esempio, è possibile utilizzare una delle tre coppie per eseguire il bind di questa istanza Db2 alla NIC:
0 9.2.3.2 -> static IP address of the NIC
0 9.2.3.9 -> virtual IP address (VIP) associated with another NIC on the same system
0 host3   -> network interface host name mapped to the VIP
Istanze di database con partizioni
  • I membri 0, 3 e 6 di un'istanza di database con partizioni risiedono su host67, host68e host77. Tutti e tre i membri hanno il numero di porta logico 0, il che significa che possono essere tutti impostati con un listener TCP/IP o SSL per la gestione del traffico del driver o del client remoto.
  • Su host67, NIC4, NIC5e NIC6 si associano al membro 0. Il nome host host67m1 viene associato agli indirizzi IP per questi tre NIC.
  • Su host68, NIC5 e NIC6 si associano al membro 3. Il nome host host68m1 è associato agli indirizzi IP per questi due NIC.
  • Su host77, NIC6 si associa al membro 6. Il nome host host77e3 corrisponde all'indirizzo IP per NIC6 (9.2.5.6).
Poiché i membri 0 e 3 utilizzano più NIC su host67 e host68 per traffico client / server remoto, il bind dei membri ai relativi NIC deve essere stabilito utilizzando nomi host multihome, come mostrato nel seguente esempio:
0 host67m1
3 host68m1
6 host77e3
È possibile utilizzare l'indirizzo IP statico 9.2.5.6 al posto di host77e3 per il membro 6.
Istanze Db2 pureScale
  • I membri 0, 1 e 2 di una istanza Db2 pureScale risiedono su host67, host68e host77. Tutti e tre i membri possono essere impostati per gestire il traffico del driver o del client remoto.
  • Su host67, NIC3 viene associato al membro 0. L'indirizzo IP per NIC3 è 9.2.3.3.
  • Su host68, la NIC è anche denominata NIC3 ed è associata al membro 1. Il nome host host68e2 viene associato all'indirizzo IP per NIC3 (9.2.4.3).
  • Su host77, NIC2 viene associato al membro 2. Il nome host host77e1 è associato all'indirizzo IP per NIC2 (9.2.5.2).
L'esempio riportato di seguito mostra come eseguire il bind dei membri 0, 1 e 2 di questa istanza Db2 pureScale ai relativi NIC:
0 9.2.3.3
1 host68e2
2 host77e1
È possibile utilizzare l'indirizzo IP statico 9.2.4.3 al posto di host68e2 per il membro 1 e l'indirizzo IP statico 9.2.5.2 al posto di host77e1 per il membro 2.

Operazioni successive

È possibile utilizzare la funzione tabella MON_GET_INSTANCE per richiamare le informazioni di bind NIC per membri specifici. La seguente query di esempio restituisce l'ID membro e il nome host o l'indirizzo IP Db2 specificato nel file nicbinding.cfg :
db2
  "select MEMBER,
     substr(NETWORK_INTERFACE_BOUND,1,16)
       as NETWORK_INTERFACE_ID
     from table(MON_GET_INSTANCE(-2))"

MEMBER NETWORK_INTERFACE_ID
------ --------------------
     1 host67e1  
     0 9.2.3.3           

2 record(s) selected.
È anche possibile utilizzare i comandi del sistema operativo per monitorare il bind NIC e l'utilizzo della porta. Per ulteriori informazioni, vedi Chi sta utilizzando la mia porta? (AIX®, Linux®, esempio Windows).