Unterschiedliche sqlldr-Positionen auf Knoten mit Lastenausgleich

0

In einem Load Balancer, auf dem eine WebSphere-Anwendung eines Drittanbieters ausgeführt wird, befinden sich zwei Knoten in einem Cluster.

Wir haben festgestellt, dass ./sqlldr für beide Knoten unterschiedlich ist. Für einen Knoten gilt Folgendes: /usr/app/oracle/product/11.2.0/client

Zum anderen ist es:
/usr/app/oracle/product/11.2.0/client_1

Ich glaube, dass dies das Problem in unserer WebSphere-Anwendung verursacht, deren Konfigurationsdatei einen Pfad zum Festlegen des Speicherorts ./sqlldr enthält.

Können Sie mir sagen, wie Sie diesen Fehler am besten beheben können, ohne einen großen Schritt wie die Neuinstallation des Produkts zu unternehmen?

Würde das Problem durch das Erstellen eines Symlinks behoben?

Madhur Ahuja
quelle

Antworten:

1

Sie haben (mindestens) zwei Möglichkeiten:

  1. Symlink (wie Sie vorgeschlagen haben), um die Pfade identisch zu machen. Zum Beispiel:

    $ ln -s /usr/app/oracle/product/11.2.0/client /usr/app/oracle/product/11.2.0/client_1
    
  2. Erstellen Sie einen bedingten Alias ​​im Profil des Kontos (vorausgesetzt, die Profile müssen identisch sein). In .bash_profile oder eine andere Profildatei, die vor dem Zugriff auf sqlldr gelesen wird:

    if [`hostname` =" server_a "]; dann
        alias sqlldr = '/ usr / app / oracle / product / 11.2.0 / client / bin / sqlldr'
    sonst
        alias sqlldr = '/ usr / app / oracle / product / 11.2.0 / client_1 / bin / sqlldr'
    fi
    

Beides sollte funktionieren und ich würde zuerst die Option symlink ausprobieren, da dies als einfacher angesehen werden kann.

Graswurzel
quelle
Danke für die Antwort. Ich werde das versuchen. Denken Sie, dass die Argumente von ls umgekehrt sind?
Madhur Ahuja
lnDie Argumente sind in Ordnung ln -s <source> <destination>.
Graswurzel
OK habe es. Es hängt davon ab, welchen Pfad Sie als den ursprünglichen / korrekten Pfad behandeln.
Madhur Ahuja