Frage

Wir versuchen, eine unserer Informix-Datenbank auf einem Testserver zu kopieren, aber ohne Informix Know-how im Haus können wir nur raten, was wir tun müssen. Ich lerne, dieses Zeug auf dem mich fliegen und bei weitem nicht der Know-how-Ebene notwendig Informix, effizient zu arbeiten oder sogar ineffektiv. Jedenfalls... Wir haben es geschafft, die .dat und IDX-Dateien aus dem Live-Server irgendwo zu kopieren. Installierte Linux und die neuesten Informix Dynamic Server drauf und haben es zum Laufen.

Nun, was sollen wir mit dem .dat und IDX-Dateien aus dem Live-Server zu tun? Haben kopieren wir es irgendwo, und es wird sie automatisch erkennen?

Oder gibt es eine gleichwertige Art und Weise, wie Sie DB von MS SQLServer anhängen Sie können die Datenbankdateien in der neuen Datenbank registrieren?

Bei meinem Seilende ...

War es hilfreich?

Lösung

Sie haben eine ziemlich komplizierte Frage gestellt, ohne es zu merken. Informix ist als alles geteilt Datenbank-Engine architected, was bedeutet, alle verfügbaren Ressourcen auf die Instanz zu jeder Datenbank in diesem Fall zur Verfügung stehen. Das bedeutet, dass mehr als ein Datenbank-Daten in einem bestimmten dbspace, .dat oder IDX-Datei in Ihrem Fall speichern. Die meisten DBA wissen besser als das zu tun, aber es ist etwas bewusst zu sein. In Anbetracht dieses Wissen Sie jetzt wissen, dass die .dat und IDX-Dateien gehören nicht zu einer Datenbank, sondern gehören die Instanz. Die dbspaces und Dateien wurden erstellt, um Ihre Datenbanken Daten enthalten, aber sie gehören technisch zu der Instanz. Es ist erwähnenswert, dass die .dat und IDX-Dateien in die Datenbank durch die logischen dbspace Namen bekannt sind.

Mit dieser Hintergrundinformation Bewaffnete und unter der Annahme, dass die Produktion und Entwicklung Server das gleiche O ausgeführt werden und dass Ihre Hardware ist relativ gleich, nicht eine Kombination aus PARISC, Itanium oder x86 / x64, werde ich ein paar Optionen werfen out für Sie.

  1. Erstellen Sie die dbspaces, die Sie in der neuen Instanz brauchen und verwenden onunload und onload die Datenbank von der Produktion für die Entwicklung zu kopieren.
  2. Verwenden Sie ontape oder onbar die gesamte Produktion Instanz zu sichern und wiederherstellen es über die Entwicklung Instanz.

Option 1 setzt voraus, dass Sie wissen, was die dbspaces benannt sind und wie groß sie sind. Verwenden Sie onstat -d auf die Produktion Instanz dies herauszufinden. BTW, die Zahlen in onstat -d aufgelistet sind in Seiten, ich glaube, dass Linux eine 2K-Seite.

Option 2 erfordert lediglich, dass die Pfade für die Datendateien die auf beiden Servern sind. Dies bedeutet, dass die ROOTDBS das gleiche in beiden Fällen sein muss. Das kann durch die Ausführung onstat -c | grep ROOTDBS gefunden werden

Es gibt eine Menge, die geblieben ist, aber ich hoffe, dass dies gibt Ihnen die Informationen, die Sie brauchen uns darauf, mit Ihrer Aufgabe zu bewegen.

Andere Tipps

Die .dat und IDX-Dateien zugeordnet sind, mit C-ISAM, oder, wenn sie in einem Verzeichnis mit dem Namen DBase.dbs organisiert (wo dbase der Name Ihrer Datenbank ist), werden die .dat und IDX-Dateien mit Informix zugeordnet Standard Motor, auch bekannt als Informix SE. SE verwendet C-ISAM seine Speicher zu verwalten. SE ist ziemlich verschieden von (und viel einfacher als) Informix Dynamic Server (IDS). Es ist nicht unmöglich, dass die .dat und IDX-Dateien mit IDS zugeordnet sind; es ist nur extrem unwahrscheinlich.

Aus den verfügbaren Informationen, es klingt, als ob Sie Ihre Produktionsserver SE läuft. Um die Daten von SE IDS zu bekommen, werden Sie wahrscheinlich wollen DB-Export an dem SE Ende und DB-Import in dem Linux / IDS Ende verwenden. Gewiss, das ist der einfachste Weg, es zu tun.

Es gibt andere mögliche Lösungen - C-ISAM Datablade ist eine solche - aber sie sind teurer und wahrscheinlich nicht gerechtfertigt. Es gibt andere mögliche Ladelösungen, wie HPL (High-Performance-Loader).

Weitere Informationen über Informix, entweder die verschiedenen Web-Sites bereits referenziert ( http://www.informix.com ist ein Link auf den Informix-Abschnitt der Web-Site von IBM), oder verwenden Sie den Internationale Informix User Group (IIUG) Website. Es gibt Mailinglisten zur Verfügung (die Sie benötigen gehören, aber die Mitgliedschaft ist kostenlos) für die Diskussion Informix im Detail.

Diese Informix-SE-Datendateien (.DAT) und ihre zugehörigen Indexdateien (.IDX) sind nutzlos, wenn Sie auch alle zugehörigen Katalogdateien haben, wie SYSTABLES.DAT SYSTABLES.IDX, SYSCOLUMNS, SYSINDEXES, etc.

Dann müssen Sie auch über die Sorgen Version von Informix-SE ihnen erstellt wird, da einige eine 2K- oder 4K-Indexdatei Knotengröße haben.

Ihre beste Ansatz ist es, alle DAT und IDX-Dateien von der Quelle db zu erhalten, sowie die korrekte Standard-Motor, installiert auf der gleichen Hardware und Betriebssystem kam es aus.

Lange Rede kurzer Sinn, auf der Quellmaschine laufen „dbexport“, um alle Daten zu entladen Dateien in ASCII, und führen Sie „dbschema“ alle Schemata und Indizes die Tabelle zu erzeugen. Es würde auch nicht schaden ein „BCHECK“ auf alle Dateien ausführen, bevor sie Entladen flache Dateien in ASCII.

Ich habe keine Informix-spezifische Beratung, sondern für Situationen wie diese können Sie in der Regel die Antwort finden, indem Sie nach oben, wie eine Datenbank bewegen (eine gemeinsame Admin-Aufgabe, und in der Regel auch im Handbuch beschrieben) und das Überspringen nur der Schritte, die die alte Datenbank entfernen würde.

Auch seien Sie vorsichtig von Problemen durch unterschiedliche Systemarchitekturen verursacht werden; einige DBs nicht spektakulär, wenn man sie von einem Big-Endian-System (wie Solaris) auf ein Little-Endian-System (wie x86 Linux) Auch hier ist der Abschnitt zu Bewegen eines DB keine zusätzlichen Schritte abdecken würde bewegen, die benötigt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top