Dando continuidade ao meu Guia de Estudos para o exame 731 (DBA DB2), falaremos aqui sobre os utilitarios do DB2. Esta parte e realmente facil de se entender, porem, demanda muita experiencia diaria de um DBA! Desconsidere erros de portugues, este guia foi escrito conforme eu estudava, entao o foco era aprender, e nao escrever bem. Vamos la:5.1 Movimentando dados no DB2Antes de falar sobre qualquer utilitario, e importante ressaltar que a FONTE e o DESTINO dos dados precisam ser compativeis, embora obvio, muitas pessoas erram nisso. Os utilitarios trabalham com tipos de dados definidos, o mais famoso e o do tipo DEL (Delimited ASCII), por exemplo, quando exporto uma tabela, exporto para um arquivo .del, para importar, preciso ler esse .del. 5.2 Utilitarios para movimentacao de dados5.2.1 ExportO export extrai dados de uma tabela para um arquivo utilizando uma clausula SQL ou XQuery. Voce pode logar qualquer problema em um arquivo texto utilizando a clausula MESSAGES. Exemplo:EXPORT TO myfile.del OF DEL MESSAGES msg.out SELECT * FROM staff;5.2.2 ImportObviamente o import recebe um arquivo que foi exportado pelo export e o importa em uma tabela ou view. O Import nao importa os dados em tabelas do sistema ou tabelas temporarias. A sintaxe do import e:IMPORT FROM file_name OF file_type MESSAGES message_file [ INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE | CREATE ] INTO target_table_nameComo visto, existem 5 formas de se importar:INSERT: Destino deve existir, os dados serao inseridos na tabela.INSERT_UPDATE: Destino deve existir, os dados serao inseridos na tabela, caso algum ja exista (verificando chave primaria), ele sofrera um update. Destino precisa ter PK definida.REPLACE: Destino deve existir, todos os dados existentes na tabela serao removidos e os novos dados serao inseridos na tabela. Destino precisa ter PK definida.REPLACE_CREATE: Tabela destino nao precisa existir. Neste caso a mesma sera criada e suas chaves tambem. Caso ja exista, o dado existente sera substituido. so funciona com o tipo de arquivos IXF, pois ele armazena dados da estrutura da tabela.CREATE: Tambem so funciona com IXF. Ele cria a tabela com as chaves necessarias e insere os dados.Exemplo:IMPORT FROM emp.ixf OF IXF MESSAGES msg.outCREATE INTO employee IN datatbsp INDEX IN indtbspQuando um import esta sendo efetuado, ele obtem um Lock na tabela. Isso pode ser cancelado atraves da opcao "Allow write access". Tambem pode-se estabelecer uma contagem de linhas para commit ser efetuado, caso contrario, o mesmo sera efetuado somente ao final da transacao.Tambem pode ser utilizado a clausula RESTARTCOUNT, no exemplo abaixo:IMPORT FROM myfile.ixf OF IXF COMMITCOUNT 500 RESTARTCOUNT 30000 ROWCOUNT 100000 MESSAGES msg.out INSERT INTO newtablevamos supor que algum problema ocorra apos a importacao da linha 30000. Se voce executar o comando acima, o import sera reiniciado a partir da linha 30000 do arquivo myfile.ixf e ira ate a linha 100000.5.2.3 LoadFaz exatamente o mesmo que o import, porem ele ignora constraints e nem dispara triggers, dessa forma e muito mais rapido, mas pode gerar alguma inconsistencia no banco se utilizado sem cuidado. Supondo que um DBA deseja deletar todos os dados armazenados em uma tabela employee em um server AIX, para atingir