Soubor db2nodes.cfg slouží k definování serverů databázových oblastí, které se podílejí na instanci DB2. Soubor db2nodes.cfg slouží také k určení adresy IP nebo názvu hostitele vysokorychlostního propojení, chcete-li pro komunikaci serveru databázové oblasti použít vysokorychlostní propojení.
Formát souboru db2nodes.cfg v operačních systémech Linux® a UNIX® je následující:
číslo_databázové_oblasti název_hostitele logický_port síťový_název název_sady_prostředků
Parametry číslo_databázové_oblasti, název_hostitele, logický_port, síťový_název a název_sady_prostředků jsou definovány v následující sekci.
Formát souboru db2nodes.cfg v operačních systémech Windows® je následující:
název_sady_prostředků název_hostitele název_počítače logický_port síťový_název název_sady_prostředků
V operačních systémech Windows jsou položky do souboru db2nodes.cfg přidávány pomocí příkazu db2ncrt nebo START DBM ADD DBPARTITIONNUM. Tyto položky lze také upravit pomocí příkazu db2nchg. Přímé přidávání těchto řádků ani úprava tohoto souboru se nedoporučuje.
Chcete-li škálovat systém dělené databáze, přidejte do souboru db2nodes.cfg položku pro každý server databázové oblasti. Hodnoty číslo_databázové_oblasti vybrané pro další servery databázových oblastí musejí tvořit vzestupnou řadu, v posloupnosti však mohou být mezery. Mezery mezi hodnotami číslo_databázové_oblasti mohou být užitečné, pokud máte v úmyslu přidávat servery logických oblastí a chcete přitom zachovat logické seskupení uzlů v tomto souboru.
Tato položka je povinná.
Jsou-li v souboru db2nodes.cfg uvedeny názvy hostitelů místo IP adres, správce databází se bude pokoušet o dynamické rozpoznávání názvů hostitelů. Toto rozpoznávání může v závislosti na nastavení OS v počítači probíhat lokálně nebo pomocí vyhledávání na zaregistrovaných serverech pro správu doménových názvů (DNS).
Od verze 9.1 produktu DB2 jsou podporovány protokoly TCP/IPv4 i TCP/IPv6. Metoda rozpoznávání názvů hostitelů se změnila.
Zatímco metoda používaná ve vydáních starších než verze 9.1 rozpoznává řetězec podle definice v souboru db2nodes.cfg, metoda ve verzích 9.1 a novějších se pokouší rozpoznat úplné názvy domén (FQDN), jsou-li v souboru db2nodes.cfg definovány krátké názvy. Při zadání krátkých názvů konfigurovaných pro úplné názvy hostitelů může tento postup vést ke zbytečným prodlevám v procesech rozpoznání názvů hostitelů.
Chcete-li předejít prodlevám v příkazech produktu DB2 vyžadujících rozpoznávání názvů hostitelů, použijte některé z následujících náhradních řešení:
db2 catalog tcpip4 node db2tcp2 remote 192.0.32.67 server db2inst1 with "Vyhledávání adres IPv4 z adresy 192.0.32.67"
db2 catalog tcpip6 node db2tcp3 1080:0:0:0:8:800:200C:417A server 50000 with "Vyhledávání adres IPv6 z adresy 1080:0:0:0:8:800:200C:417A"
Produkt DB2 rezervuje určitý rozsah portů (například 60000 - 60003) v souboru /etc/services pro komunikaci mezi oblastmi během instalace. Pole logický_port v souboru db2nodes.cfg určuje, který port v tomto rozsahu chcete přiřadit konkrétnímu serveru logické oblasti.
Není-li pro toto pole zadána žádná položka, je použita výchozí hodnota 0. Pokud však zadáte položku pro pole síťový_název, musíte zadat číslo pro pole logický_port.
Používáte-li logické databázové oblasti, musí hodnoty zadané pro pole logický_port začínat hodnotou 0 a pokračovat ve vzestupném pořadí (například 0,1,2).
Navíc, pokud zadáte položku v poli logický_port pro jeden server databázové oblasti, musíte zadat položku v poli logický_port pro každý server databázové oblasti uvedený v souboru db2nodes.cfg.
Toto pole je nepovinné pouze v případě, že nepoužíváte logické databázové oblasti ani vysokorychlostní propojení.
Je-li zadána položka pro toto pole, veškerá komunikace mezi servery databázových oblastí (kromě komunikace vzniklé důsledkem příkazů db2start, db2stop a db2_all) bude prováděna prostřednictvím vysokorychlostního propojení.
Tento parametr je vyžadován pouze tehdy, pokud používáte pro komunikaci v databázové oblasti vysokorychlostní propojení.
Tento parametr je podporován pouze v systémech AIX, HP-UX a Solaris Operating System.
V systému AIX je tato koncepce známa jako "sady prostředků" a v systému Solaris Operating System se nazývá "projekty". Další informace o správě prostředků naleznete v dokumentaci k příslušnému operačnímu systému.
V systému HP-UX je parametrem název_sady_prostředků název skupiny PRM. Podrobnosti naleznete v příručce "HP-UX Process Resource Manager User Guide. (B8733-90007)" vydané společností HP.
V operačních systémech Windows může být afinita procesu pro logický uzel definována pomocí proměnné registru DB2PROCESSORS.
V operačních systémech Linux definuje sloupec název_sady_prostředků číslo, které odpovídá uzlu NUMA (Non-Uniform Memory Access) v systému. Kromě jádra 2.6 s podporou zásad NUMA musí být k dispozici také systémový obslužný program numactl.
Je-li zadán parametr název_sady_prostředků, musí být určen i parametr síťový_název.
Následující příklady konfigurace vám mohou pomoci při určování konfigurace pro vaše prostředí.
0 ServerA 0 1 ServerA 1 2 ServerA 2 3 ServerA 3
0 ServerA 0 1 ServerB 0
4 ServerA 0 6 ServerA 1 8 ServerA 2 9 ServerB 0
0 ServerA 0 switch1 1 ServerB 0 switch2 2 ServerB 1 switch2
Omezení platí pro následující příklady:
Zde je uveden příklad nastavení sady prostředků pro operační systémy AIX.
V tomto příkladu existuje jeden fyzický uzel s 32 procesory a 8 logickými databázovými oblastmi (MLN). Příklad ukazuje způsob, jak poskytnout afinitu procesu každé oblasti MLN.
DB2/MLN1: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00000,sys/cpu.00001,sys/cpu.00002,sys/cpu.00003 DB2/MLN2: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00004,sys/cpu.00005,sys/cpu.00006,sys/cpu.00007 DB2/MLN3: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00008,sys/cpu.00009,sys/cpu.00010,sys/cpu.00011 DB2/MLN4: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00012,sys/cpu.00013,sys/cpu.00014,sys/cpu.00015 DB2/MLN5: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00016,sys/cpu.00017,sys/cpu.00018,sys/cpu.00019 DB2/MLN6: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00020,sys/cpu.00021,sys/cpu.00022,sys/cpu.00023 DB2/MLN7: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00024,sys/cpu.00025,sys/cpu.00026,sys/cpu.00027 DB2/MLN8: owner = db2inst1 group = system perm = rwr-r- resources = sys/cpu.00028,sys/cpu.00029,sys/cpu.00030,sys/cpu.00031
vmo -p -o memory_affinity=1
chuser capabilities= CAP_BYPASS_RAC_VMM,CAP_PROPAGATE,CAP_NUMA_ATTACH db2inst1
1 regatta 0 regatta DB2/MLN1 2 regatta 1 regatta DB2/MLN2 3 regatta 2 regatta DB2/MLN3 4 regatta 3 regatta DB2/MLN4 5 regatta 4 regatta DB2/MLN5 6 regatta 5 regatta DB2/MLN6 7 regatta 6 regatta DB2/MLN7 8 regatta 7 regatta DB2/MLN8
Tento příklad ukazuje použití skupin PRM pro sdílení procesoru v počítači se čtyřmi procesory a čtyřmi oblastmi MLN, jestliže chcete nastavit podíl sdílení procesoru 24 % pro každou oblast MLN a ponechat 4 % pro ostatní aplikace. Název instance DB2 je db2inst1.
OTHERS:1:4:: db2prm1:50:24:: db2prm2:51:24:: db2prm3:52:24:: db2prm4:53:24::
db2inst1::::OTHERS,db2prm1,db2prm2,db2prm3,db2prm4
prmconfig -i prmconfig -e CPU
1 voyager 0 voyager db2prm1 2 voyager 1 voyager db2prm2 3 voyager 2 voyager db2prm3 4 voyager 3 voyager db2prm4
Konfigurace PRM (kroky 1-3) může být provedena pomocí interaktivního nástroje grafického uživatelského rozhraní xprm.
V operačních systémech Linux definuje sloupec název_sady_prostředků číslo, které odpovídá uzlu NUMA (Non-Uniform Memory Access) v systému. Kromě jádra 2.6 s podporou zásad NUMA musí být k dispozici také systémový obslužný program numactl. Další informace o podpoře zásad NUMA v operačních systémech Linux naleznete na stránce nápovědy k příkazu numact1.
Tento příklad ukazuje postup nastavení počítače se čtyřmi uzly NUMA, přičemž každý logický uzel je přiřazen k uzlu NUMA.
$ numactl --hardwareZobrazí se výstup podobný následujícímu:
available: 4 nodes (0-3) node 0 size: 1901 MB node 0 free: 1457 MB node 1 size: 1910 MB node 1 free: 1841 MB node 2 size: 1910 MB node 2 free: 1851 MB node 3 size: 1905 MB node 3 free: 1796 MB
0 hostname 0 hostname 0 1 hostname 1 hostname 1 2 hostname 2 hostname 2 3 hostname 3 hostname 3
Zde je uveden příklad nastavení projektu pro systém Solaris verze 9.
V tomto příkladu máme jeden fyzický uzel s 8 procesory: jeden procesor se bude používat pro výchozí projekt, tři (3) procesory budou využity Aplikačním serverem a čtyři (4) procesory budou využity produktem DB2. Název instance je db2inst1.
create system hostname create pset pset_default (uint pset.min = 1) create pset db0_pset (uint pset.min = 1; uint pset.max = 1) create pset db1_pset (uint pset.min = 1; uint pset.max = 1) create pset db2_pset (uint pset.min = 1; uint pset.max = 1) create pset db3_pset (uint pset.min = 1; uint pset.max = 1) create pset appsrv_pset (uint pset.min = 3; uint pset.max = 3) create pool pool_default (string pool.scheduler="TS"; boolean pool.default = true) create pool db0_pool (string pool.scheduler="TS") create pool db1_pool (string pool.scheduler="TS") create pool db2_pool (string pool.scheduler="TS") create pool db3_pool (string pool.scheduler="TS") create pool appsrv_pool (string pool.scheduler="TS") associate pool pool_default (pset pset_default) associate pool db0_pool (pset db0_pset) associate pool db1_pool (pset db1_pset) associate pool db2_pool (pset db2_pset) associate pool db3_pool (pset db3_pset) associate pool appsrv_pool (pset appsrv_pset)
system:0:::: user.root:1:::: noproject:2:::: default:3:::: group.staff:10:::: appsrv:4000:App Serv project:root::project.pool=appsrv_pool db2proj0:5000:DB2 Node 0 project:db2inst1,root::project.pool=db0_pool db2proj1:5001:DB2 Node 1 project:db2inst1,root::project.pool=db1_pool db2proj2:5002:DB2 Node 2 project:db2inst1,root::project.pool=db2_pool db2proj3:5003:DB2 Node 3 project:db2inst1,root::project.pool=db3_pool
0 hostname 0 hostname db2proj0 1 hostname 1 hostname db2proj1 2 hostname 2 hostname db2proj2 3 hostname 3 hostname db2proj3