• Nenhum resultado encontrado

5.5 Preparando o ambiente de restauração e migração

5.5.2 Migrando os arquivos BKPML de objetos complexos

A funcionalidade de migração de dados complexos é utilizada quando o objeto a ser migrado refere-se a um objeto complexo. Um objeto complexo é aquele que necessita de análise visual e alteração manual em sua estrutura para que a restauração possa ser efetivada. A ferramenta considera como objeto complexo os objetos: visão, índice,

permissão, gatilho e método. O único tipo de objeto que não é considerado complexo é

o objeto tabela, testado na seção anterior.

Os objetos visão, índice e permissão, apesar de possuírem uma estrutura simples, são classificados como objetos complexos pois, na sua migração de umSGBDpara outro, o usuário poderá realizar as alterações necessárias antes de sua restauração. Caso contrá- rio, os mesmos poderão ser carregados e submetidos sem intervenção do usuário, uma vez que a ferramenta carrega cada objeto em sua estrutura padrão SQL, com exceção dos objetos dos tipos método e gatilho.

O processo de migração de dados funciona da seguinte maneira. Para início desse processo, o usuário deverá selecionar o arquivo BKPML desejado e pressionar o bo- tão carregar objetos. Após isso, o método carregarObjeto envia uma mensagem com o nome do arquivo para o método SalvarRestaurarArquivos, que por sua vez resgata o arquivo solicitado e devolve para o método que o solicitou. Caso o arquivo não seja encontrado, uma mensagem de erro "arquivo não encontrado" será retornada e o pro- cesso será cancelado. Ao receber o arquivo solicitado, o método carregarObjeto executa quatro processos de forma recursiva utilizando o padrão decorator: validarHash, Des-

compactar, Descriptografar e RestaurarBKPML.

O método validarHash é responsável por validar o hash do arquivo solicitado com o do arquivo quando gerado. Para isso, o primeiro hash é solicitado do sistema de banco de dados, em seguida o código hash do arquivo enviado é extraído e comparado com o do banco. Caso os códigos não sejam compatíveis, uma mensagem de erro "Arquivo

Corrompido" será retornada e o processo será cancelado. Caso contrário, esse método

é finalizado e enviado para o próximo método da pilha de recursão, o método Descom- pactar.

5.5. PREPARANDO O AMBIENTE DE RESTAURAÇÃO E MIGRAÇÃO

O método Descompactar, após receber o arquivo enviado, aplica o algoritmo res- ponsável por descompactar o arquivo e resgatar o arquivo criptografado. Esse método retornará a mensagem "erro ao descompactar, arquivo pode estar corrompido", caso o arquivo não consiga ser descompactado. Caso contrário, o arquivo descompactado é enviado para o próximo método da pilha, o método Descriptografar. Esse método ao receber o arquivo criptografado se responsabiliza em aplicar o algoritmo necessário para descriptografia do arquivo, tornando as informações legíveis para que o próximo método possa validar os dados. Assim como os métodos supracitados, esse método retorna um erro caso não consiga descriptografar o arquivo recebido.

O último método a ser executado é o restaurarBKPML. Esse método recebe o ar- quivo descriptografado, ou seja o arquivo BKPML, e apenas realiza a validação do mesmo para verificar se a estrutura do arquivo está de acordo com a taxonomia definida paraBKPML. Se a validação for realizada com sucesso, o arquivoBKPMLé repassado para o método solicitador, neste caso o método carregarObjeto, para dar continuidade ao processamento dos dados. Caso contrário, um erro será retornado e o processo será cancelado.

Após a recepção do arquivo BKPML o método carregarObjeto repassa o arquivo

BKPML para o método gerarSintaxePadrao e esse por sua vez verifica o tipo de ob- jeto pertencente ao arquivo e aplica a sintaxe padrão definida pela ferramenta. Após a transformação, esse método envia a sintaxe para a tela de migração para que os mesmos possam ser modificados de acordo com oSGBDselecionado. Para melhor visualização das funcionalidades do processo de migração de dados, a Figura5.21apresenta a tela de migração dos dados.

5.5. PREPARANDO O AMBIENTE DE RESTAURAÇÃO E MIGRAÇÃO

A tela de migração de dados funciona como um editor para adaptação da estrutura dos objetos complexos. Essa tela é composta pelas funcionalidades carregar objeto que, conforme apresentada, é responsável pela transformação dos objetos mantidos no arquivoBKPMLpara sua sintaxe padrãoSQL, com exceção dos objetos do tipo método e gatilho. Para esses objetos, seus metadados são transferidos para uma sintaxe nãoSQL

definida pela própria ferramenta. Para melhor entendimento da sintaxe utilizada pela ferramenta para esses objetos, as Figuras5.22e5.23apresentam essas sintaxes.

Figura 5.22 Sintaxe padrão para objetos tipo função

Nesse caso, a estrutura modificada pertence a um objeto do tipo função. A sintaxe de um objeto tipo procedimento segue a mesma ideia, bastando para isso substituir o nome FUNCTION por PROCEDURE e remover o retorno dos dados. O restante é idêntico a ambos os objetos. A Figura5.23apresenta a sintaxe para um objeto do tipo gatilho.

Figura 5.23 Sintaxe padrão para objetos tipo gatilho

Após a sintaxe de um objeto ser carregada para tela de edição, o usuário deverá adap- tar a mesma para a sintaxe correspondente do SGBD selecionado. Após isso, o botão

Submeter Comando deverá ser pressionado para que o objeto possa ser transferido. A

transferência dos objetos complexos ficam sob responsabilidade do método submeter-

Comando, que envia os dados para que o sistema de banco de dados possa validar e

gerar o mesmo em seu ambiente. Toda validação de sintaxe, tipos e estrutura ficam sob responsabilidade do SGBD, que retornará um erro caso a sintaxe não esteja de acordo com seus padrões.

A alteração da sintaxe dos objetos pode ser realizada de duas formas: manual, ou utilizando os métodos Buscar sintaxe Equivalente e Alterar, disponíveis na parte inferior

5.5. PREPARANDO O AMBIENTE DE RESTAURAÇÃO E MIGRAÇÃO

da área de edição. A alteração manual consiste em substituir todas as sintaxes e tipos sem o auxílio da ferramenta.

Para utilização dos métodos supracitados, o usuário deverá selecionar o tipo ou sin- taxe desejada e clicar com o mouse no botão Buscar Sintaxe Equivalente. Essa fun- cionalidade, por sua vez, solicita das tabelas internas da ferramenta a sintaxe ou tipo equivalente e o envia para a caixa de texto localizada ao lado do botão pressionado. Em seguida, o usuário deverá confirmar o resultado obtido e pressionar o botão alterar para realizar a substituição. Vale ressaltar que o botão alterar executa um método JavaScript para realização dessa tarefa. Após a alteração da estrutura, sintaxe e tipos, o botão Sub-

meter Comando deverá ser pressionado. Abaixo, a Figura5.24apresenta o resultado da migração do objeto FNC_DELETAR_CURSO para oSGBDORACLE EXPRESS 10G.

Figura 5.24 Resultado da Migração para o ORACLE Express

O teste realizado na funcionalidade de migração de dados consistiu em migrar todos os objetos considerados complexos pela ferramenta para um SGBD de destino, neste caso foi utilizado o ORACLE EXPRESS. Todos os objetos testados foram migrados cor- retamente para esseSGBD, conforme pode ser observado na Figura5.24.

O tempo médio levado para migração desses objetos foi de 1 segundo, que é um tempo aceitável para restauração desse tipo de objeto. Já os objetos de tipo tabela tendem a demorar mais, dependendo da quantidade de dados que esse objeto possua. A seção a seguir destina-se a testar o tempo levado para restauração de diferentes quantidades de dados de arquivos BKPML de objetos de tipo tabela.

5.5. PREPARANDO O AMBIENTE DE RESTAURAÇÃO E MIGRAÇÃO