Alle Instanzen einer Datenbank finden

26. Januar 2017 11:58

Hi,

ich bin auf der Suche nach einer Lösung, alle ServiceTier Instanzen einer Datenbank aus C/AL oder extern (z.B. Poweshell)zu ermitteln. Leider kam ich bisher nur zur Lösung, mittels Powershell Scripte

Get-NAVWebServerInstance -WebServerInstance INSTANZNAME
* gibt die benötigte URL und Ports zurück, Instanzname Voraussetzung

Get-NAVServerConfiguration -ServerInstance INSTANZNAME
* Gibt z.B. DB Server und Datenbank zurück, Instanzname Voraussetzung

Get-NAVWebService -ServerInstance INSTANZNAME
* Gibt alle WebServices der Instanz zurück

Get-NAVServerInstance
* Gibt alle Instanzen auf der Maschine zurück.

mir fehlt aber Get-NAVInstanceForDatabase :-(

Hintergrund:
Ich muss irgendwie dynamisch ermitteln, auf welcher Instanz einer Datenbank ein bestimmter WebService läuft um dessen URL zu bekommen um diese mit externen Programmen zu konsumieren.
Eine Datenbank hat mehrere Instanzen, welche unterschiedlichen Aufgaben / Bereiche zugeordnet sind. Es gibt einige Instanzen, welche die WebService anbieten. Die externen Programme müssen quasi ermitteln.. gib mir die Instanz zurück, für Datenbank XYZ auf welcher der WebService für Auftragsanlage liegt. Klar kann man das hart verdrahten, aber die Instanzen ziehen auch mal um bzw. kann auch der WebDienst kurzfristig auf eine andere umziehen.

Hat dies schon mal jemand, ähnlich, gehabt?

Re: Alle Instanzen einer Datenbank finden

8. Februar 2017 12:22

Hallo,

der Datenbankname steht entweder in den Sessions oder im Tenants.

Code:
Import-Module "C:\Program Files\Microsoft Dynamics NAV\100\Service\NavAdminTool.ps1"

$Tenants = $null

$Instances = Get-NAVServerInstance | Where-Object –Propert ‘State’ –eq ‘Running’ | select -expand ServerInstance

foreach ($Instance in $Instances) {
    $Tenants += Get-NAVTenant $Instance
}


Dieses Skript füllt dir alle Tenants in die entsprechende Variable. Du kannst sie dann weiterverarbeiten.

Gruß

Michael

Re: Alle Instanzen einer Datenbank finden

8. Februar 2017 23:33

Reicht es nicht einfach auf die Tabelle 2000000112 "Server Instance" abzufragen? In dieser Tabelle sind doch alle Instanzen aufgelistet, die aktuell für die betroffene Datenbank gestartet sind.

Re: Alle Instanzen einer Datenbank finden

17. Februar 2017 12:37

Hi,

super ... und man bin ich blind :-( 5x Die 2-er Tabellen und Powershell durchgesucht und jedes mal übersehen :-/

Re: Alle Instanzen einer Datenbank finden

17. Februar 2017 13:36

setz den Beitrag bitte noch auf gelöst :)