Instalar e configurar o RAC no
Linux não é uma tarefa tão simples. Mas e se você vive no mundo Windows? Passei por essa dificuldade na empresa que trabalho. Migrar banco de dados entre plataformas é um bom desafio, que tornei simples neste tutorial.
As dicas:
1) Tire seu banco de dados do modo archive; depois você retorna.
2) Esteja certo que os níveis de patches Oracle aplicados sejam idênticos em ambas as plataformas;
3) Certifique-se de possuir uma conexão Giga bit entre os servidores.
A situação:
Tenho toda a minha base de dados Oracle instalada na plataforma Windows 2003 e agora quero ir para Linux. Quero ir direto para o RAC usando ASM. Não posso perder tempo usando export e import porque a base de dados está em produção e o tempo de migração inviabilizaria o processo. Qual é o meio mais rápido?
O roteiro:
1) Gere o
init.ora para migrar seu banco com os mesmos parâmetros no Linux - create pfile from spfile;
2) Gere o
controlfile - alter database backup controlfile to trace;
3) Retire o banco de dados do ar com opção immediate ou normal - shutdown immediate;
4) Monte diretamente no Linux os discos usando o caminho do diretório dos datafiles:
# mkdir /mnt/datafile
# mount /hostdobancooriginal/diretorio/datafile /mnt/datafile -o user=usuario
Informe a senha.
5) Faça o backup (cópia) do seu banco direto para os discos ASMusando o rman:
# rman target system/system123@sid
# convert datafile '/mnt/datafile/system01.dbf' format '+disk/datafile/system01.dbf' TO PLATFORM = 'Linux x86 64-bit' FROM PLATFORM= 'Microsoft Windows x86 64-bit';
6) Após converter todos os datafiles, copie o initfile do banco Windows editando os parâmetros do novo ambiente RAC usando ASM, veja exemplo:
dbxp1.__db_cache_size=788529152
dbxp2.__db_cache_size=788529152
dbxp1.__java_pool_size=16777216
dbxp2.__java_pool_size=16777216
dbxp1.__large_pool_size=16777216
dbxp2.__large_pool_size=16777216
dbxp1.__shared_pool_size=268435456
dbxp2.__shared_pool_size=268435456
dbxp1.__streams_pool_size=0
dbxp2.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/dbxp/adump'
*.background_dump_dest='/u01/app/oracle/admin/dbxp/bdump'
*.compatible='10.2.0.4.0'
*.control_files='+DG_DISK2/dbxp/controlfile/control.ora'
*.core_dump_dest='/u01/app/oracle/admin/dbxp/cdump'
*.db_block_size=8192
*.db_create_file_dest='+DG_DISK'
*.db_create_online_log_dest_1='+DG_DISK'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='dbxp'
*.db_recovery_file_dest='+DG_DISK'
*.db_recovery_file_dest_size=21474836480
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dbxpXDB)'
*.cluster_database_instances=2
*.cluster_database=true
dbxp2.instance_number=2
dbxp1.instance_number=1
*.job_queue_processes=10
*.nls_language='BRAZILIAN PORTUGUESE'
*.nls_territory='BRAZIL'
*.open_cursors=300
*.pga_aggregate_target=365953024
*.processes=150
*.remote_listener='LISTENERS_DBXP'
*.remote_login_passwordfile='exclusive'
*.sga_target=1098907648
dbxp1.thread=1
dbxp2.thread=2
*.undo_management='AUTO'
dbxp2.undo_tablespace='UNDOTBS1'
dbxp1.undo_tablespace='UNDOTBS4'
*.user_dump_dest='/u01/app/oracle/admin/dbxp/udump'
7) Depois é só editar o controlfile, incluindo os datafiles com a localização nova nos discos ASM, veja exemplo:
CREATE CONTROLFILE SET DATABASE "DBXP" RESETLOGS NOARCHIVELOG
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
MAXINSTANCES 32
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DG_DISK/dbxp/onlinelog/redo01.dbf' SIZE 50M,
GROUP 2 '+DG_DISK/dbxp/onlinelog/redo02.dbf' SIZE 50M
DATAFILE
'+dg_disk/dbxp/data/tools01.DBF',
'+dg_disk/dbxp/data/system_1.DBF',
'+dg_disk/dbxp/data/usersdp_1.DBF',
'+dg_disk/dbxp/data/sysaux01.DBF',
'+dg_disk/dbxp/data/undo02.ora';
'+dg_disk/sxp2h/data/undo03.ora';
8) Pronto! Agora vamos por o banco no ar?
alter database open resetlogs;
Considerações finais:
Como você está criando o banco manualmente (sem DBCA), deverá criar o banco sem os atributos de RAC, como o atributo instance_number. Depois é só incluir novamente. Também será preciso criar os serviços manualmente. Escreverei sobre isso no próximo documento.
Boa sorte e sucesso!
Nenhum comentário foi encontrado.