View auf eine externe Datenbank
- Dieses Thema hat 4 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 15 Jahre, 11 Monaten von
Anonym.
-
AuthorPosts
-
18. September 2007 um 16:52 Uhr #2806
AnonymInaktiv[Im Namen von Ingo, der keine Beiträge nicht posten kann. :-[ ]
Hallo Forum,
ist ein View auf eine externe Datenbank möglich?
Node und DB sind catalogisiert.
Connected ist die Datenbank.wenn ich den Befehl:
db2 "c reate view DB1.schema.view as s elect feld1, feld2, feld3, from BD2.schema.Tabelle"
eingebe, erhalte ich den Fehler:
The name "DB1.schema.view" has the wrong number of qualifiers. SQLSTATE=42601
Muss ich die Qualifieres in anderer Reihenfolge setzten?
Wie löse ich das Problem der Authentifizierung nach dem Neustart?Aus der DB2 Doku werde ich an dieser Stelle nicht ganz schlau.
Gruß
Ingo
18. September 2007 um 16:55 Uhr #3186
AnonymInaktivHallo Ingo!
aus Deiner Fage werde ich noch nicht ganz schlau:
– Um welches Datenbank-System geht es? (DB2 for z/OS, Win, Unix, …)
– Was meinst Du mit "externe Datenbank"?
Für den Datenbank-Nutzer ist es transparent (nicht erkennbar), ob die Datenbank lokal oder entfernt liegt.
Unter DB2 for z/OS gibt es den "3 point name": Mit dem ersten vorangestellten Qualifier, der Location, wird der Quell-Server definiert. Auf anderen DB2’s wäre mir die Syntax nicht bekannt.
Auf jeden Fall geht’s so meist ganz gut:
1) db2 connect to DB user myuser password mypsw
2) db2 "s elect * from qualifier.object where …"
2b) db2 "…."
3) db2 connect reset
4) db2 connect to DB user myuser password mypswGruß
Gernot
19. September 2007 um 8:37 Uhr #3437
AnonymInaktivHallo Gernot,
Danke für die Hilfe die Anfrage ins Forum zu stellen.
Und Danke ntürlich für die Antwort.Es geht um ein DB2 for Linux. Angezeigte Version ist 8.2.7
Es soll auf einer Datenbank in Instanz1 ein View einer Tabelle aus einer Datenbank in Instanz2 angelegt werden.
Wenn das so zufriedenstellend läuft wollen wir auch auf der DB aus Instanz1 Views anlegen, die s elects auf einer DB2 for z/OS Version  7.1.1 ausführt.
Das ganz soll gemacht werden um die Zugriffe auf die z/OS DB zu beschleunigen, das diese nicht am Standort steht und nur über eine 2 Mbit Leitung angesprochen werden kann.Also wir wollen views auf einer Linux DB anlegen, die s elects sowohl auf z/OS als auch auf Linux DBs ausführen.
Für den Zugriff auf die z/OS DB haben wir ein Connect Enterprise Gateway laufen.
Wenn ich jetzt von dem Linux Rechner ein s elect auf der z/OS ausführe kann meckert er den 3point Qualifiere auch an.
Beispiel:
db2 connect to dbzos user… using…
db2 s elect * from db2zos.schema.tabelle
Erzeugt den Fehler:
SQL0204N Â "DBZOS" is an undefined name. Â SQLSTATE=42704Nur mit schema.tabelle ist der s elect kein Problem
Gruß
Ingo19. September 2007 um 19:45 Uhr #3596
AnonymInaktivHallo Ingo,
so, wie Du Dir das vorstellst, geht es leider nicht!
1) Durch Anlegen eines Views werden keine Zugriffe beschleunigt!
Alternative: Daten von DB2 for z/OS auf DB2 Linux replizieren (Data Replication oder DB2 EXPORT + IMPORT/LOAD Utility) und dort redundant vorhalten. Große Datenmengen können in erstaunlicher Geschwindigkeit auf DB2 Linux gebracht werden.
2) Views sind logische Konstrukte. Sie können über die Grenze der Datenbank (bzw. DB2 z/OS Instance) hinaus nicht eingesetzt werden.
Alternative: Views am jeweiligen Server über Source Table(s) legen, Zugriff von Linux dann auf Views des DB2 z/OS bzw Views des DB2 Linux.
3) Innerhalb der Unit of Work kann nicht auf verschiedene Quellen (Server) zugegriffen werden.
4) Der DB2 Connect Gateway lohnt sich nur, wenn dadurch viele Connect Personal Lizenzen vermieden werden können und die Clients bereits über ein anderes DB2 Workstation Produkt verfügen.Vielleicht beschreibst Du die Absicht etwas genauer, damit weitere Vorschläge gemacht werden können.
Viele Grüße
Gernot
16. Oktober 2007 um 7:18 Uhr #3715
AnonymInaktivHallo Gernot,
tschuldigung, dass ich mich jetzt erst melde. Mit der Aussage das die Views so nicht funktionieren, hat das Projekt erstmal einen Dämpfer bekommen und anderes war wichtiger.
Trotzdem würde ich gerne unsere Zugriffe auf die S390 DB beschleunigen.
Die Situation:
Wir haben bei uns am Standort für die Auftragssteuerung eigene DB2 Datenbanken auf Linux laufen.
Die Stammdaten (Kunden, Teile etc. ) liegen in Tabellen einer DB2 OS/390 bei unserm Mutterkonzern. Die Verbindung dazwischen läuft über eine 2 Mbit Standleitung. Es geht jetzt um die Beschleunigung der Zugriffe auf diese Stammdaten. Zur Zeit machen wir nachts ein export /import was aber Probleme in der Aktualität hat und nur für lesezugriffe gut ist.
Da aber auch Stammdaten geändert werden müssen, muss auf die Stammtabelle auch schreibend zugegriffen werden.
Meine Idee war halt einen View auf einer DB bei uns anzulegen die auf die Tabelle auf der os390 zugreift. Das geht leider nicht und würde auch keine Beschleunigung bringen.
Würde denn eine Replikation einer oder mehrerer Tabellen bei uns den gewünschten Efekt erzielen?
Was ist dafür zu tun?vielen Dank schon für weitere Informationen
Gruß
Ingo
-
AuthorPosts
You must be logged in to reply to this topic.