sexta-feira, 20 de fevereiro de 2015

Movendo o Banco de Dados Windows 11gR2 (source) para Oracle Linux 12c (target).

No Post anterior (http://alecordeirosilva.blogspot.com.br/2015/02/instalacao-do-software-do-banco-de.html), foi apresentado a instalação do software Oracle 12c no Linux, neste será apresentado a migração do banco 11g em Windows para o 12c.

No banco source logue e realize a consulta abaixa para confirmação que é possivel realizar o upgrade direto, pois dependendo do S.O a ser migrado é preciso realizar alguns passos a mais para conversão.


1 - Coloque no estado Mount o banco de dados source e faça um backup limpo.

C:\>sqlplus /nolog
SQL> connect sys/senha@bdagnus as sysdba
Conectado.
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database open read only;
SQL> exit;

C:\>rman target sys/senha@bdagnus nocatalog

rman> run { allocate channel discozero type disk format
'C:\BCK_AGNUS\BCK/%d%T_%s.bkp'; 
backup incremental level = 0 (database include current controlfile);}

2-Criar um pfile para o banco de dados target.

rman>exit;
C:\>sqlplus /nolog
SQL> connect sys/senha@bdagnus as sysdba
Conectado.
SQL> create pfile='c:\BCK_AGNUS\initbdagnus.ora' from spfile;


3- Configure o pfile e as pastas linux para restaurar o ControlFile.

Edit o arquivo pfile para o padrão linux, como no exemplo abaixo:

*.audit_file_dest='/u01/app/oracle/admin/cdbagnus/adump'
*.control_files='/u01/app/oracle/oradata/cdbagnus/controlfile/control01.ctl'
*.db_name='BDAGNUS'
*.diagnostic_dest='/u01/app/oracle/'

Abra uma sessão no putty com usuario oracle e crie as pastas necessárias.

[oracle@LXAGNUS ~] cd /u01/app/oracle/
[oracle@LXAGNUS ~] mkdir -p admin/cdbagnus/adump
[oracle@LXAGNUS ~] mkdir -p oradata/cdbagnus/controlfile/

4- Mount o compartilhamento do Windows para ter acesso aos backups.

[root@LXAGNUS ~] mount -t cifs -o username=usuario,password=senha //192.168.56.1/bck_agnus /mnt

5- Inicie a Instância no modo nomount

[oracle@LXAGNUS ~] sqlplus / as sysdba
SQL> startup nomount pfile='/mnt/initbdagnus.ora';

6- Restore o ControlFile.

Logue no Rman e restore o controlfile lendo o backup feito no Windows. O backup é composto por dois arquivos, o menor é o backup do controlfile.

[oracle@LXAGNUS ~] rman target /
RMAN> restore controlfile from '/mnt/BCKBDAGNUS20150210_47.BKP';
RMAN> alter database mount;

7-Catalogue o backup no servidor Linux.

Rman> crosscheck backup;
Rman> delete expired backup;
Rman> Catalog start with '/mnt/bck_agnus/';

8-Restaurar o Banco de dados.

Rman > sql 'ALTER SYSTEM SET DB_CREATE_FILE_DEST="/u01/app/oracle/oradata/cdbagnus"';
Rman > run {set newname for database to NEW;
                        restore database;
                        switch datafile all;
                        recover database; }

9-Abrir o Banco de dados com resetlogs.

Rman > exit;
[oracle@LXAGNUS ~]sqlplus / as sysdba
SQL> Select member from v$logfile ;

MEMBER
---------------------------------
C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO01.LOG
C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO02.LOG
C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO03.LOG

SQL> alter database rename file 'C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO01.LOG' TO '/u01/app/oracle/oradata/cdbagnus/onlinelog/redo01.log';

SQL> alter database rename file 'C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO02.LOG' TO '/u01/app/oracle/oradata/cdbagnus/onlinelog/redo02.log';

SQL> alter database rename file 'C:\APP\ALESSANDRO\ORADATA\BDAGNUS\ONLINELOG\REDO03.LOG' TO '/u01/app/oracle/oradata/cdbagnus/onlinelog/redo03.log';

SQL> alter database open resetlogs upgrade;

10- Criar a tablespace Temp.

SQL>create temporary tablespace temp2 tempfile '/u01/app/oracle/oradata/cdbagnus/oradata/TEMP.dbf' size 1G;
SQL>ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
SQL>drop tablespace temp;
SQL>ALTER TABLESPACE temp2 RENAME TO temp;

11-Chamar o catupgrd para realizar o upgrade do Banco 11g para 12c. 

SQL> exit;
[oracle@LXAGNUS ~]$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql

12 - Aguardar a execução, a saida será algo do tipo:

Analyzing file catupgrd.sql  
Serial   Phase #: 0 Files: 1      Time: 340s  
Serial   Phase #: 1 Files: 3      Time: 147s  
Restart  Phase #: 2 Files: 1      Time: 3s  
Parallel Phase #: 3 Files: 18     Time: 41s  
Restart  Phase #: 4 Files: 1      Time: 0s  
... 

Após a execução o seu banco de dados foi migrado do 11g Windows para o Oracle 12C Linux.

Nenhum comentário:

Postar um comentário