Migração de Oracle 9i para 10g: Checklist

Este será o primeiro de uma série de postagens documentando o processo de migração do Oracle 9i para o 10g. Algumas decisões foram tomadas no meio do projeto e portanto não será possível adotar este guia ao pé da letra para todos os casos de migração possível. Particularmente, fiz a opção de não utilizar a ferramenta de migração automática da Oracle e seguir o esquema tradicional de importar e exportar os dados manualmente. Este guia poderá ser utilizado em grande parte numa migração com outras versões do Oracle como origem dos dados, mas isto não foi testado. Outras decisões foram tomadas para maximinizar a flexibilidade das instalações e importações como realizar as instalações sem a interface gráfica, utilizar um particionamento de disco um pouco mais agressivo (sem o uso do ASM) e realizar a importação dos dados esquema por esquema.

Fase I – Planejamento

Conheça o banco de dados atual:

1 – Veja como anda a ocupação dos discos, veja se o servidor novo tem a mesma configuração do atual. Veja se pretende manter o esquema de particionamento atual ou se seria um bom momento para mudar. O Oracle 10g trás uma nova ferramenta chamada ASM, pode ser uma alternativa interessante de se utilizar, se você tiver um número grande de discos ou grupos de discos (RAID) e principalmente se você pretende utilizar o RAC em um futuro próximo e já está utilizando um Storage externo. O ASM funciona muito melhor que utilizar RAW devices ou OCFS, mas ainda apresenta uma limitação conhecida: não é possível manipular os arquivos dentro de uma partição ASM através do SO. Além disso anote:
– O espaço ocupado por cada tablespace + margem de segurança + taxa de crescimento esperada;
– O número de datafiles que cada tablespace possui. Você pode utilizar os novos tablespaces do tipo bigfiles para tablespaces muito grandes;
– O espaço ocupado pelos archives;
– O espaço ocupado pelos backups lógicos e físicos;
– O número de logs de REDO;

2 – Conheça os recursos utilizados como JOBs, DB Links, Packages, XML, BLOBs, Streams, etc.

3 – Conheça os usuários, roles e permissões. Permissões de sistema que os usuários e roles possuem também são alvo de checagem cuidadosa neste processo.

4 – Verifique como anda o desempenho do seu banco. Apesar de muitas funcionalidade mudarem no 10g, você não deve desprezar os sinais que você já tem hoje. A distribuição dos Tablespaces, archives, logs de redo devem ser revistos. Os ajustes de memória provavelmente serão alterados, mas vale a pena checar o tamanho da SGA e PGA além do tamanho dos blocos. O momento da migração é um momento propício para fazer algumas mudanças, uma vez que exigem a parada do banco de dados, exportação e reimportação de dados, processo que será realizado na migração. No entanto, tome cuidado para não exagerar na dose:
– Se não tiver segurança no que estiver fazendo, não faça;
– Se for utilizar uma nova funcionalidade que nunca testou antes, não teste agora faça isso depois da migração;
– Se precisar comparar o desempenho entre o 9i e o 10g, você deve manter ao máximo a estrutura atual;
– Muitas mudanças ao mesmo tempo aumentam as chances de erro no processo;
– Se o tempo disponível para a migração for crítico, algumas alterações podem exigir tempo extra para implementar e testar.

5 – Conheça o tempo que leva para:
– Realizar um export e import full do banco de dados;
– Realizar um export e import por schema do banco de dados;
– Copiar todos os datafiles;

6 – Reserve espaço adicional para receber os arquivos de backup.

Fase II – Backup

1 – Pare o banco de dados e assegure-se que ninguém mais, além de você pode entrar no banco de dados. Você pode fazer subindo o banco de dados no modo restrito. Você também pode garantir que ninguém altere os dados colocando os tablespaces apenas para leitura.

2 – Realize um export full do banco de dados e um export para cada schema a ser migrado. Não exporte os schemas referentes a ferramentas do próprio Oracle.

3 – Rode scripts para copiar os dados sobre:
– Tablespaces e datafiles e quotas em datafiles;
– Usuários, roles, permissões e permissões de sistema;

Se estiver utilizando, copie também:
– Sinônimos públicos;
– Nomes para diretórios externos;
– Contexto de aplicações
– Definições de segmentos de rollback
– Perfis de usuários

4 – Se for migrar e utilizar o mesmo servidor, então copie para outro local:
– Todos os datafiles, controlfiles e logs de redo;
– Todos os exports gerados anteriormente;
– O init.ora, tnsnames.ora, listner.ora, sqlnet.ora;
– Outros scripts de manutenção criados no SO;
– Todos os dados gerados anteriormente (tablespaces, usuários, etc.)

Fase III – Preparação do SO:

Eu particularmente gosto de formatar o servidor onde a instalação será feita e configurar tudo a partir do zero. É comum durante a vida de um servidor serem instalados pacotes desnecessários, alterações em configurações não documentadas e outras coisas mais. Se você tem 100% de confiança sobre a configuração do seu SO, então você não precisa reinstalar ele.

1 – Instale o SO:
– Tome cuidado para não instalar pacotes desnecessários, particularmente eu prefiro não instalar a interface gráfica como um todo, o que economiza um pouco de espaço em disco, um pouco de memória e abre menos brechas de segurança;
– Faça o particionamento dos discos minuciosamente de acordo com o seu planejamento prévio;
– Instale todos os paths de segurança no SO.

2 – Instale as dependências do Oracle

3 – Crie os usuários e grupos no SO

4 – Crie os diretórios necessários e dê as permissões adequadas neles

5 – Faça alterações nos parâmetros do kernel e outros arquivos de configuração

6 – Copie o software do Oracle para o seu HD

7 – Copie os dumps e todos os arquivos a serem utilizados para para a criação do banco de dados

Fase IV – Instalação do Servidor Oracle:

Aqui você fará a instalação do software da Oracle. Existem 3 formas básicas de se fazer isso:
– Utilizando o Oracle Universal Instaler (OUI) no modo interativo, que é o método mais conhecido e exige a instalação da interface gráfica no servidor;
– Utilizando um arquivo de respostas para automatizar algumas respostas para o OUI, que automatiza e padroniza uma parte do trabalho e tem respostas visuais gráficas, o que exige a instalação da interface gráfica no servidor;
– Utilizar um arquivo de respostas no modo silencioso, que não exige o uso da interface gráfica no servidor.

1 – Configure as variáveis de ambiente necessárias.

2 – Crie o arquivo /etc/orainst.loc .

3 – Configure as variáveis de ambiente adequadas.

4 – Rode o instalador do Oracle no modo escolhido.

5 – Aplicaque os paths de atualização do Oracle

Fase V – Instalação do Banco de Dados Oracle

Novamente você tem 3 formas básicas de criar o seu banco de dados:
– Durante a instalação do Servidor Oracle que é a forma mais simples e menos flexível, que eu não recomendo para ambientes de produção;
– Utilizando o Data Base Configuration Assistant (DBCA), que é uma forma bastante flexível, mas exige o uso da interface gráfica instalada no servidor;
– Utilizando scripts SQL para a criação do banco de dados, que é a forma mais complexa, mais flexível e que não exige o uso da interface gráfica;

1 – Configurar as variáveis de ambiente

2 – Criar um arquivo init.ora

3 – Utilize o DBCA ou rode seus scripts para criar o banco de dados

4 – Configure a rede (listner.ora, tnsnames.ora, sqlnet.ora)

5 – Teste o banco de dados

6 – Crie o pfile

Fase VI – Importe os dados

1 – Crie os tablespaces adicionais

2 – Crie os usuários, roles e privilégios de sistema

3 – Crie os alias para diretórios dumps, perfis e DB Links.

4 – Importe os dados a partir dos exports por esquema

5 – Crie os privilégios e os sinônimos públicos e outros objetos exportados anteriormente

6 – Importe novamente os dados por esquema

7 – Compile os views, packages, procedures, functions e triggers

8 – Rode um analyze em todas tabelas e índices

9 – Realize testes preliminares

Fase VII – Configurações finais

1 – Configure as variáveis de ambiente no usuário Oracle

2 – Configure a inicialização automática do Oracle em /etc/init.d/

3 – Crie os scrips de manutenção

4 – Coloque a instância no modo archive

5 – Ative os parâmetros de auditoria mínimos

6 – Verifique a utilização do espaço em disco

7 – Verifique as políticas de segurança

8 – Crie um script para o controlfile

Fase VIII – Testes

1 – Teste os backups

2 – Teste a reinicialização do servidor

3 – Teste as aplicações

4 – Monitore o desempenho

5 – Termine a documentação do processo antes de liberar o servidor

6 – Libere o servidor

7 – Monitore atentamente o servidor nas primeiras semanas

2 comentários sobre “Migração de Oracle 9i para 10g: Checklist

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s