Ik heb een postgresql 7.3 database met een tabel die er als volgt uit ziet:
Nu is het zo dat er hosts zijn die een hele IP range hebben: bijv. 192.168.1/24. Door de database zelf wordt voor iedere niet bestaande host een nieuwe aangemaakt, indien nodig natuurlijk
. Het resultaat is een hele lijst met allemaal IP's en een hostname. De gebruiker kan zelf de hostnamen veranderen. Een query als deze zou dan uitgevoerd kunen worden:
Alleen nu heb ik bijv. 30 regels met de zelfde hostname. Omdat het hostip veld van het type CIDR is zou het ook volstaan door 1 host aan te maken. Allen hoe update ik nu mijn andere tabellen, want daar staan nog steeds 30 verschillende hostid's.
Ook kan je meerdere ip ranges hebben (die dus niet met een /x samen vallen) met de zelfde hostname.
Ja kan dus niet met de volgende query achterhalen welke hosts je moet gaan fixen:
Omdat het nogal in de preformance van de database scheelt, zat ik te denken aan een stored procedure die die hosttabel weer een beetje netjes maakt. Deze strored procedure zou dan bijv. dagelijks gedraaid kunnen worden.
Hopelijk heeft een van jullie een idee.
code:
1
2
3
4
5
| Column | Type | Modifiers ----------+-----------------------------+----------------------------------------------------------- hostid | integer | not null default nextval('public.hosts_hostid_seq'::text) hostip | cidr | not null hostname | character varying(20) | |
Nu is het zo dat er hosts zijn die een hele IP range hebben: bijv. 192.168.1/24. Door de database zelf wordt voor iedere niet bestaande host een nieuwe aangemaakt, indien nodig natuurlijk
code:
1
| update hosts set hostname='local network' where hostip << '192.168.1/24'; |
Alleen nu heb ik bijv. 30 regels met de zelfde hostname. Omdat het hostip veld van het type CIDR is zou het ook volstaan door 1 host aan te maken. Allen hoe update ik nu mijn andere tabellen, want daar staan nog steeds 30 verschillende hostid's.
Ook kan je meerdere ip ranges hebben (die dus niet met een /x samen vallen) met de zelfde hostname.
Ja kan dus niet met de volgende query achterhalen welke hosts je moet gaan fixen:
code:
1
2
3
4
5
6
| select * from ( select hostname, count(*) as NumHosts from hosts group by hostname) as temptbl where NumHosts>1; |
Omdat het nogal in de preformance van de database scheelt, zat ik te denken aan een stored procedure die die hosttabel weer een beetje netjes maakt. Deze strored procedure zou dan bijv. dagelijks gedraaid kunnen worden.
Hopelijk heeft een van jullie een idee.
Cupra Born | www.LaadpasTop10.nl