Pergunta

Estamos tentando duplicar um de nosso banco de dados Informix em um servidor de teste, mas sem Informix experiência em casa só podemos adivinhar o que precisamos fazer. Estou aprendendo essas coisas no me voar e longe do nível conhecimentos necessários para operar de forma eficiente Informix ou mesmo de forma ineficiente. De qualquer forma ... Conseguimos copiar o .dat e arquivos .idx do algures servidor ao vivo. Instalado Linux e as últimas Informix Dynamic Server on-lo e tê-lo instalado e funcionando.

Agora o que devemos fazer com o .dat e arquivos IDX do servidor ao vivo? Será que copiá-lo em algum lugar e que irá reconhecê-lo automaticamente?

Ou há uma maneira equivalente como você pode fazer anexar DB de MS SQLServer para registrar os arquivos de banco de dados no novo banco de dados?

No meu fim corda ...

Foi útil?

Solução

Você fez uma pergunta muito complicada sem perceber. Informix é arquitetado como um motor de tudo o banco de dados compartilhado, ou seja, todos os recursos disponíveis para a instância estão disponíveis para cada banco de dados nessa instância. Isso significa que mais de um banco de dados pode armazenar dados em qualquer dbspace, .dat ou ficheiro.IDX no seu caso. A maioria do DBA sabe melhor do que fazer isso, mas é algo a ter em conta. Dado este conhecimento que você já sabe que o .dat e arquivos .idx não pertencem a um banco de dados, mas pertencem a instância. Os dbspaces e arquivos foram criados para conter seus bancos de dados de dados, mas que tecnicamente pertencem à instância. É importante notar que os arquivos .dat e .idx são conhecidos para o banco de dados pelo nome dbspace lógico.

Armado com esta informação de fundo e supondo que os servidores de produção e desenvolvimento estão executando o mesmo sistema operacional e que o seu hardware é relativamente o mesmo, não uma combinação de PARISC, Itanium ou x86 / x64, eu vou jogar um par de opções para você.

  1. Criar os dbspaces que você precisa na nova instância ea utilização onunload e onload para copiar o banco de dados de produção para o desenvolvimento.
  2. Use ontape ou onbar fazer backup de toda a instância de produção e restaurá-lo sobre sua instância de desenvolvimento.

Opção 1 requer que você saiba o que os dbspaces são nomeados e como eles são grandes. Use onstat -d na instância de produção para descobrir isso. BTW, os números listados na onstat -d estão em páginas, acredito que o Linux é uma página de 2K.

Opção 2 simplesmente requer que os caminhos para os arquivos de dados são os mesmos em ambos os servidores. Isto significa que o rootdbs precisa ser o mesmo em ambos os casos. Que pode ser encontrado execução onstat -c | grep ROOTDBS

Há muito que tem sido deixado de fora, mas espero que este dá-lhe a informação que você precisa para avançar com a sua tarefa.

Outras dicas

Os arquivos .dat e .idx estão associados com C-ISAM, ou, quando organizados em um diretório chamado DBASE.DBs (onde dbase é o nome do seu banco de dados), o .dat e arquivos .idx estão associados com Informix Motor padrão, também conhecido como Informix SE. SE utiliza C-ISAM para gerir o seu armazenamento. SE é bastante diferente (e mais simples do que) Informix Dynamic Server (IDS). Não é impossível que os arquivos .dat e .idx estão associados com IDS; é apenas extremamente improvável.

A partir das informações disponíveis, soa como se seu servidor de produção está sendo executado SE. Para obter os dados de SE a IDS, você provavelmente vai querer usar DB-Export no final SE e DB-Import no final Linux / IDS. Certamente, essa é a maneira mais simples de fazê-lo.

Existem outras soluções possíveis - C-ISAM DataBlade sendo um tal - mas eles são mais caros e provavelmente não garantido. Existem outras soluções de carregamento possíveis, tais como HPL (High-Performance Loader).

Para mais informações sobre Informix, utilize os vários sites da Internet já referenciados ( http://www.informix.com é um link para a seção Informix do site da IBM), ou usar a Internacional Informix User Group (IIUG) web site. Há listas de discussão disponíveis (que requerem que você pertence, mas a adesão é gratuita) para discutir Informix em detalhes.

Os arquivos de dados Informix-SE (DAT) e seus arquivos de índice associadas (.IDX) são inúteis a menos que você também tem todos os arquivos de catálogo associados, como SYSTABLES.DAT SYSTABLES.IDX, SYSCOLUMNS, SYSINDEXES, etc.

Em seguida, você também tem que se preocupar com qual versão do Informix-SE criado-los, como alguns têm um tamanho nó de arquivo 2K ou 4K índice.

Seu melhor abordagem é obter todos os arquivos DAT e .IDX do db fonte, além de o motor padrão correto, instalado no mesmo hardware e sistema operacional veio.

Para encurtar a história, na máquina de origem, execute "dbexport" para descarregar todos os dados para arquivos ASCII, e executar "dbschema" para gerar todos os esquemas de tabela e índices. Também não faria mal para executar um "BVerifique" em todos os arquivos antes de descarregá-los para ascii arquivos simples.

Eu não tenho nenhum conselho específico do Informix, mas para situações como esta normalmente você pode encontrar a resposta, observando-se como mover um banco de dados (a tarefa de administração comum, e geralmente bem descrito no manual) e apenas pular o passos que iria remover o antigo banco de dados.

Além disso, ter o cuidado de problemas causados ??por diferentes arquiteturas de sistemas; alguns bancos de dados falhar espetacularmente se você movê-los de um sistema big-endian (como Solaris) a um sistema little-endian (tal como x86 Linux) Mais uma vez, a seção do manual sobre mover um DB cobriria quaisquer passos adicionais que são necessários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top