Wednesday, July 8, 2009

Upgrading to Oracle 11g

E ae!!!!!

Resolvi atualizar a versão do Oracle da minha maquina de estudo, meu ambiente resume-se em:

SO: Centos 4.4
Database: Oracle 10g
Instances: +ASM - Gerenciamento de discos
orcl - Estudo

Passerei ambas as bases para a versão 11g através de scripts. É possivel realizar o upgrade pelo DBUA (o que é o recomendavel) ou através do datapump.

Assim seguiremos o passo-a-passo para um upgrade bem sucessido, irei realizar da seguinte forma:

1) Pre Checks
1.1) Pre check OS;
1.2)
Backup full consistente de toda a base, incluindo controlfile e spfile;

2) Upgrade
2.1) Instalação do software 11g;
2.2) Upgrade do CSS;
2.3) Upgrade da instancia do ASM;
2.4) Upgrade da base de dados, orcl;

3) Pos Upgrade

3.1) Base de dados, orc
3.1.1)
Backup full consistente de toda a base, incluindo controlfile e spfile;
3.1.2) Criação do spfile;
3.1.3) Parametros;
3.1.4) OraPWD;
3.1.5) Configurar o threshold de alerta das tablespaces;
3.1.6) Configurar o Enterprise Manager;

3.2) Discos, ASM instance
3.2.1) Configurar


1)
Pre checks

1.1) Pre check OS

Deve ser verificado durante essa fase parametros do kernel e packages instaladas, caso alguns desses itens esteja incorreto o Oracle irá apresentar um warning durante a instalação e podemos nesse momento ou devemos configura-los da maneira correta.

1.2) Backup full consistente

Não vou entrar em detalhes de como deve ser realizado este backup, fica a critério do DBA. No
meu caso prefiro realizar pelo rman, o importante é saber fazer o restore caso seja necessário.

2) Upgrade

2.1) Instalar o Software do Oracle 11g

Após realizar o download do software da Oracle e descompacta-lo inciar o instalador:
Seguir no diretório e executar o runInstaller como a seguir
[oracle@hobd001dhn database]$ ./runInstaller
Durante o processo de instalação será necessário informar o novo home do Oracle, que no
meu caso será em: /u01/app/oracle/app/oracle/product/11.1.0/db_1

Link para o download: http://www.oracle.com/technology/software/products/database/index.html

A seguir temos as telas para completar a instalação, muito intuitiva a instalação. No meu caso não quero um banco novo e sim fazer o upgrade dos demais, portanto vou realizar a instalação avançada.














2.2) Upgrade do CSS;

O oracle Synchronization Services é um daemon que é instalado pelo root, iniciado a cada boot e é responsável pela comunicação entre a instancia do ASM e as demais bases de dados.
Para atualizar o CSS realizaremos da seguinte forma:

1) Stop de todas as instancias;
2) executar como root
./u01/app/oracle/app/oracle/product/11.1.0/db_1/bin/localconfig reset

2.2) Upgrade do ASM;

Resolvi realizar o upgrade do ASM pelo DBUA, pois achei mais fácil, e também não tenho o procedimento para realizar manualmente.
Devemos com as bases paradas e com as váriaveis de ambiente devidamente configuradas para o novo home do Oracle, PATH, ORACLE_HOME e ORACLE_SID chamar o dbau, e seguir o procedimento:








Ps - Eu não fiz o print nessas duas utimas telas então fui obrigado a busca-la em outro lugar, por isso a divergencia nos nomes do Oracle_home.

2.4) Upgrade da base de dados, orcl;

Antes de realizar o upgrade é necessário realizar um pre-check do database, para tal, utilizar o caminho do ORACLE_HOME da nova instalação e chamar o script ?/rdbms/admin/
utlu111i.sql.
No meu caso utilizava a versão 10.2.0.1, foi necessário realizar upgrade nos arquivos de timezone, realizei os steps para isso de acordo com o site http://advait.wordpress.com/2007/09/07/upgrading-to-oracle-database-11g/ onde segui o guia para aplicar o patch do oracle e atualizar a versão dos arquivos do timezone.

Após o realizar o pre-check de upgrade, e não apresentar mais erros já é possivel realizar o upgrade.

Para realizar o upgrade é necessário modificar alguns parametros, no meu caso foi necessário alterar os parametros: COMPATIBLE='11.1.0' e diagnostic_dest='/u01/app/oracle/diag/rdbms/orcl/orcl/trace'

No caso diagnostic_dest é um novo parametro o qual substitui o user_dump e background_dump_dest.

Com o novo init feito e no seu devido diretório ?/dbs/initorcl.ora parar o banco de dados e realizar o upgrade:

startup upgrade pfile='?/dbs/initorcl.ora';
@?/rdbms/admin/catupgrd.sql

Após o termino do upgrade realizar a validação do upgrade:
@?/rdbms/admin/utlu111s.sql

Oracle Database 11.1 Post-Upgrade Status Tool 07-19-2009 20:24:06
.
Component Status Version HH:MM:SS
.
Oracle Server
. VALID 11.1.0.6.0 01:54:20
JServer JAVA Virtual Machine
. VALID 11.1.0.6.0 00:00:00
Oracle Workspace Manager
. VALID 11.1.0.6.0 00:00:00
OLAP Analytic Workspace
. VALID 11.1.0.6.0 00:00:00
OLAP Catalog
. VALID 11.1.0.6.0 00:00:00
Oracle OLAP API
. VALID 11.1.0.6.0 00:00:00
Oracle Enterprise Manager
. VALID 11.1.0.6.0 00:00:00
Oracle XDK
. VALID 11.1.0.6.0 00:00:00
Oracle Text
. VALID 11.1.0.6.0 00:00:00
Oracle XML Database
. VALID 11.1.0.6.0 00:00:00
Oracle Database Java Packages
. VALID 11.1.0.6.0 00:00:00
Oracle Multimedia
. VALID 11.1.0.6.0 00:24:09
Spatial
. VALID 11.1.0.6.0 00:00:00
Oracle Expression Filter
. VALID 11.1.0.6.0 00:00:00
Oracle Rules Manager
. VALID 11.1.0.6.0 00:00:00
Gathering Statistics
. 00:17:25
Total Upgrade Time: 02:35:59

PL/SQL procedure successfully completed.

É preciso verificar se ficou algum objeto invalido:
@?/rdbms/utlrp.sql
SELECT COUNT(*) FROM DBA_INVALID_OBJECTS;

É recomendavel nesse momento realizar o backup da base de dados.

Abraços

No comments: