Domanda

Stiamo provando a duplicare uno dei nostri database informix su un server di prova, ma senza l'esperienza Informix in casa possiamo solo indovinare cosa dobbiamo fare. Sto imparando queste cose al volo da solo e in nessun posto vicino al livello di competenza necessario per far funzionare Informix in modo efficiente o addirittura inefficiente. Comunque... Siamo riusciti a copiare i file .dat e .idx dal server live da qualche parte. Installato Linux e il più recente Informix Dynamic Server su di esso e averlo installato e funzionante.

Ora cosa dovremmo fare con i file .dat e idx dal server live? Lo copiamo da qualche parte e lo riconoscerà automaticamente?

O esiste un modo equivalente come è possibile collegare DB da MS SQL Server per registrare i file del database nel nuovo database?

Alla fine della mia corda ...

È stato utile?

Soluzione

Hai fatto una domanda piuttosto complicata senza accorgertene. Informix è progettato come un motore di database condiviso tutto, il che significa che tutte le risorse disponibili per l'istanza sono disponibili per ogni database in tale istanza. Ciò significa che più di un database può archiviare dati in un dato file dbspace, .dat o .idx nel tuo caso. La maggior parte dei DBA sa meglio che farlo, ma è qualcosa di cui essere consapevoli. Data questa conoscenza, ora sai che i file .dat e .idx non appartengono a un database ma appartengono all'istanza. Gli spazi e i file dbs sono stati creati per contenere i dati del database, ma tecnicamente appartengono all'istanza. Vale la pena notare che i file .dat e .idx sono noti al database con il nome logico dbspace.

Grazie a queste informazioni di base e supponendo che i server di produzione e sviluppo stiano eseguendo lo stesso sistema operativo e che l'hardware sia relativamente lo stesso, non una combinazione di PARISC, Itanium o x86 / x64, lancerò un paio di opzioni per te.

  1. Crea gli spazi dbs necessari nella nuova istanza e usa onunload e onload per copiare il database dalla produzione allo sviluppo.
  2. Utilizzare ontape o onbar per eseguire il backup dell'intera istanza di produzione e ripristinalo sull'istanza di sviluppo.

L'opzione 1 richiede che tu sappia come sono chiamati i dbspace e quanto sono grandi. Usa onstat -d sull'istanza di produzione per scoprirlo. A proposito, i numeri elencati in onstat -d sono in pagine, credo che Linux sia una pagina 2K.

L'opzione 2 richiede semplicemente che i percorsi per i file di dati siano gli stessi su entrambi i server. Ciò significa che ROOTDBS deve essere lo stesso in entrambi i casi. Questo può essere trovato eseguendo onstat -c | grep ROOTDBS

C'è molto che è stato lasciato fuori ma spero che questo ti dia le informazioni di cui hai bisogno per andare avanti con il tuo compito.

Altri suggerimenti

I file .dat e .idx sono associati a C-ISAM o, se organizzati in una directory chiamata dbase.dbs (dove dbase è il nome del database), i file .dat e .idx sono associati a Informix Motore standard, noto anche come Informix SE. SE utilizza C-ISAM per gestire la sua memoria. SE è piuttosto diverso da (e molto più semplice di) Informix Dynamic Server (IDS). Non è impossibile che i file .dat e .idx siano associati a IDS; è estremamente improbabile.

Dalle informazioni disponibili, sembra che il tuo server di produzione stia eseguendo SE. Per ottenere i dati da SE a IDS, probabilmente vorrai usare DB-Export alla fine di SE e DB-Import alla fine di Linux / IDS. Certamente, questo è il modo più semplice per farlo.

Esistono altre possibili soluzioni - una delle quali è il datablade C-ISAM - ma sono più costose e probabilmente non garantite. Esistono altre possibili soluzioni di caricamento, come HPL (Caricatore ad alte prestazioni).

Per ulteriori informazioni su Informix, utilizzare i vari siti Web già citati ( http://www.informix.com è un collegamento alla sezione Informix del sito Web di IBM) oppure utilizza il International Informix User Group (IIUG) sito web. Ci sono mailing list disponibili (che richiedono l'appartenenza, ma l'iscrizione è gratuita) per discutere in dettaglio di Informix.

Quei file di dati Informix-SE (.DAT) e i loro file di indice associati (.IDX) sono inutili a meno che tu non abbia anche tutti i file di catalogo associati, come SYSTABLES.DAT SYSTABLES.IDX, SYSCOLUMNS, SYSINDEXES, ecc.

Quindi devi anche preoccuparti di quale versione di Informix-SE li ha creati, poiché alcuni hanno una dimensione del nodo del file di indice 2K o 4K.

L'approccio migliore è quello di ottenere tutti i file .DAT e .IDX dal db di origine, oltre al motore standard corretto, installato sullo stesso hardware e sistema operativo da cui proviene.

Per farla breve, sul computer di origine, esegui " dbexport " per scaricare tutti i dati in file ASCII ed eseguire "dbschema" per generare tutti gli schemi e gli indici delle tabelle. Inoltre, non sarebbe male eseguire un "bcheck" su tutti i file prima di scaricarli in file flat ascii.

Non ho alcun consiglio specifico di Informix ma per situazioni come questa di solito puoi trovare la risposta cercando come spostare un database (un'attività di amministrazione comune e di solito ben descritta nel manuale) e semplicemente saltando il passaggi che rimuoveranno il vecchio database.

Inoltre, prestare attenzione ai problemi causati da diverse architetture di sistema; alcuni DB falliscono in modo spettacolare se li si sposta da un sistema big-endian (come Solaris) a un sistema little-endian (come Linux x86) Ancora una volta, la sezione manuale sullo spostamento di un DB coprirà tutti i passaggi aggiuntivi necessari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top