Importar / exportar dados do Ingres

Novembro 2016

O Ingres exporta os dados de uma instalação Ingres para outra (seja qual for o Sistema Operacional de destino ou fonte) com os comandos:
  • unloaddb
  • copydb


A diferença entre estes dois comandos é o seu perímetro:
  • unloaddb engloba todos os objetos do banco de dados (incluindo as fontes de ferramentas front end type ABF, OpenROAD ou Report Writer, os catálogos Replicator, Star, etc)
  • Copydb engloba apenas os objetos daquele que o invoca (ou alguém que finge ser a pessoa que o invoca)

Princípio de funcionamento desses comandos ...


copydb
Exemplo
copydb mabase matable

Este comando vai gerar dois arquivos: copy.in copy.out e copy.out, desde que a tabela mytable exista no banco de dados "meubanco"e que ela te pertence.

Estes arquivos contêm uma série de instruções SQL:
copy.out :
  • descarga de dados: COPY TABLE ... INTO ...

copy.in :
  • criação da tabela: CREATE TABLE ...
  • estrutura da tabela (se necessário) : MODIFY ...
  • recarga de dados: COPY TABLE ... FROM ...
  • criação de índices (se necessário) : CREATE INDEX ...


Utilização desses arquivos
Para descarregar os dados:
sql mabase < copy.out

Para recarregar os dados:
sql mabase < copy.in


unloaddb
Exemplo
unloaddb mabase

Cette commande va générer 4 fichiers : copy.in, copy.out, reload.ing et unload.ing (ou reload.bat et unload.bat sous Windows)

Da mesma forma que para o comando copydb, os arquivos copy.in e copy.out contêm os comandos SQL necessários à descarga dos dados e à criação dos objetos (todos os objetos: tabelas, índices, regras, procedimentos, modos de exibição, dbevent , etc), assim como a recarga dos dados. O que muda com o unloaddb é que ele também gera programas para chamar esses arquivos com código SQL.
Este comando irá gerar quatro arquivos: copy.in, copy.out e unload.ing reload.ing (ou reload.bat unload.bat e Windows)
Este Comando Quatro Arquivos vontade Gerar: copy.in, copy.out unload.ing e reload.ing (ou e reload.bat unload.bat Windows)

Alguns conselhos ...


1 - Para fazer uma cópia móvel de um sistema operacional para outro (independentemente da versão, do tipo, da codificação ISO, etc), use a opção-c (disponível para cada um destes dois comandos) que permitirá que você crie uma exportação/importação de dados no formato ASCII. Inicialmente, também é possível imprimir o arquivo diretamente (não recomendo) mas, de qualquer maneira, relativamente legível através de um editor de texto. Na verdade, veja o formato dos comandos COPY TABLE com ou sem esta opção, tudo acontece neste momento.

2 - Preste atenção às seguintes variáveis (lista incompleta - veja no ambiente do Ingres pelo ingprenv ou no seu ambiente local):
- II_DATE_FORMAT : formato do dado
- II_DECIMAL : Separador decimal (Ingres é um produto americano, por padrão é o ponto)
- II_MONEY_PREC : precisão dos dados do type money
- II_MONEY_FORMAT : formato dos dados do type money (para indicar uma moeda)
- II_NULL_STRING : texto utilizado para representar o valor nulo
Essas variáveis devem ser idênticas entre a máquina fonte e máquina de destino. Na verdade, elas são usadas para formatar os dados durante a exportação, ou para lê-los durante a importação. Por isso, elas precisam ser compatíveis ...

3 - Declare os mesmos locais: mesmo número, mesmos nomes e mesmos tipos. Os diretórios podem ser diferentes.

4 - Amplie o banco de dados de destino para os mesmos locais que o banco de origem: Confira os locais, de um e de outro, pelo comando infodb, use accessdb ou extenddb para estender um banco.
5 - Capture o resultado (stdout) em um arquivo, e procure qualquer linha que comece com E_. Isso indica um erro Ingres, que deve ser analisado.

6 - Se um reload (ou copy.in) falhar, lembre-se que se você reexecutou uma parte dos objetos a serem criados, talvez ela já tenha sido criada...


Tradução feita por Lucia Maurity y Nouira

Veja também :
Este documento, intitulado « Importar / exportar dados do Ingres »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.