Pregunta

Estamos intentando duplicar una de nuestras bases de datos informix en un servidor de prueba, pero sin la experiencia interna de Informix solo podemos adivinar lo que debemos hacer.Yo mismo estoy aprendiendo estas cosas sobre la marcha y ni mucho menos tengo el nivel de experiencia necesario para operar Informix de manera eficiente o incluso ineficiente.De todos modos...Logramos copiar los archivos .dat y .idx del servidor en vivo en algún lugar.Instalé Linux y el último Informix Dynamic Server y lo tengo en funcionamiento.

Ahora, ¿qué debemos hacer con los archivos .dat e idx del servidor en vivo?¿Lo copiamos en algún sitio y lo reconocerá automáticamente?

¿O existe una forma equivalente de adjuntar una base de datos desde MS SQLServer para registrar los archivos de la base de datos en la nueva base de datos?

Al final de mi cuerda...

¿Fue útil?

Solución

Has hecho una pregunta bastante complicada sin darte cuenta.Informix está diseñado como un motor de base de datos compartido, lo que significa que todos los recursos disponibles para la instancia están disponibles para todas las bases de datos de esa instancia.Esto significa que más de una base de datos puede almacenar datos en cualquier archivo dbspace, .dat o .idx determinado en su caso.La mayoría de los DBA saben que no deben hacer eso, pero es algo a tener en cuenta.Con este conocimiento, ahora sabe que los archivos .dat y .idx no pertenecen a una base de datos sino que pertenecen a la instancia.Los espacios de base de datos y los archivos se crearon para contener los datos de su base de datos, pero técnicamente pertenecen a la instancia.Vale la pena señalar que la base de datos conoce los archivos .dat y .idx por el nombre lógico del espacio de base de datos.

Armado con esta información de fondo y asumiendo que los servidores de producción y desarrollo ejecutan el mismo sistema operativo y que su hardware es relativamente el mismo, no una combinación de PARISC, Itanium o x86/x64, le presentaré un par de opciones. .

  1. Cree los espacios DBS que necesita en la nueva instancia y use OnUnload y Onload para copiar la base de datos de la producción al desarrollo.
  2. Use Ontape o Onbar para hacer una copia de seguridad de toda la instancia de producción y restaurarla en su instancia de desarrollo.

La opción 1 requiere que sepa cómo se llaman los espacios de base de datos y qué tamaño tienen.Usar onstat -d en la instancia de producción para descubrir esto.Por cierto, los números enumerados en onstat -d están en páginas, creo que Linux es una página de 2K.

La opción 2 simplemente requiere que las rutas de los archivos de datos sean las mismas en ambos servidores.Esto significa que ROOTDBS debe ser el mismo en ambos casos.Eso se puede encontrar ejecutando onstat -c | grep ROOTDBS

Hay muchas cosas que se han omitido, pero espero que esto le brinde la información que necesita para seguir adelante con su tarea.

Otros consejos

Los archivos .dat y .idx están asociados con C-ISAM o, cuando se organizan en un directorio llamado dbase.dbs (donde dbase es el nombre de su base de datos), los archivos .dat y .idx están asociados con Informix Standard Engine. también conocido como Informix SE.SE utiliza C-ISAM para gestionar su almacenamiento.SE es bastante diferente (y mucho más simple) de Informix Dynamic Server (IDS).No es imposible que los archivos .dat y .idx estén asociados con IDS;es simplemente extremadamente improbable.

Según la información disponible, parece que su servidor de producción está ejecutando SE.Para obtener los datos de SE a IDS, probablemente desee utilizar DB-Export en el extremo SE y DB-Import en el extremo Linux/IDS.Sin duda, esa es la forma más sencilla de hacerlo.

Hay otras soluciones posibles (una de ellas es el datablade C-ISAM), pero son más caras y probablemente no estén garantizadas.Existen otras posibles soluciones de carga, como HPL (High-Performance Loader).

Para obtener más información sobre Informix, utilice los distintos sitios web ya mencionados (http://www.informix.com es un enlace a la sección Informix del sitio web de IBM), o utilice el Grupo Internacional de Usuarios de Informix (IIUG) sitio web.Hay listas de correo disponibles (que requieren que usted pertenezca, pero la membresía es gratuita) para discutir Informix en detalle.

Esos archivos de datos de Informix-SE (.DAT) y sus archivos de índice asociados (.IDX) son inútiles a menos que también tenga todos los archivos de catálogo asociados, como SYSTABLES.DAT SYSTABLES.IDX, SYSCOLUMNS, SYSINDEXES, etc.

Luego también debe preocuparse por qué versión de Informix-SE los creó, ya que algunos tienen un tamaño de nodo de archivo de índice de 2K o 4K.

Su mejor enfoque es obtener todos los archivos .DAT y .IDX de la base de datos de origen, además del motor estándar correcto, instalado en el mismo hardware y sistema operativo del que procede.

En pocas palabras, en la máquina de origen, ejecute "dbexport" para descargar todos los datos en archivos ascii y ejecute "dbschema" para generar todos los esquemas e índices de tablas.Tampoco estaría de más ejecutar una "bcheck" en todos los archivos antes de descargarlos en archivos planos ASCII.

No tengo ningún consejo específico de Informix, pero para situaciones como esta normalmente puedes encontrar la respuesta buscando cómo mover una base de datos (una tarea administrativa común, y generalmente bien descrita en el manual) y simplemente omitiendo los pasos que eliminar la base de datos antigua.

Además, tenga cuidado con los problemas causados ​​por diferentes arquitecturas del sistema;Algunas bases de datos fallan espectacularmente si las mueve de un sistema big-endian (como Solaris) a un sistema little-endian (como Linux x86). Nuevamente, la sección del manual sobre cómo mover una base de datos cubrirá cualquier paso adicional que sea necesario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top