Hoje vamos fazer um teste em um ambiente Oracle XE para mover o banco de dados do ASM para FileSystem.
Primeiramente vamos garantir as seguintes informações:
Baixar o banco de dados e o listener do servidor.
Iniciar apenas o banco de dados Oracle e manter o Listener baixado, para garantir que nenhum usuário irá conectar no ambiente no momento das atividades.
Verifique as tablespaces temporárias no seu ambiente de banco de dados e elimine-as do ambiente, ou seja, podemos dropar as temporárias.
Feito isso, vamos ao passo a passo das atividades:
1 - Criar tablespace temporária no Filesystem, conforme exemplo abaixo:
SQL> alter tablespace TEMP add tempfile '/mnt/backup/oracle/xe/temp_01.dbf' size 128m autoextend on next 64m maxsize 4096m;
Tablespace altered.
2 - Mover os controlfiles para o Filesystem:
2.1 Baixe o banco de dados novamente com o comadno:
SQL> shutdown immediate
2.2 Apenas monte o banco de dados conforme comando abaixo:
SQL> startup mount
2.3 Configure o parametro do controlfile no filesystem, conforme comando abaixo:
SQL> alter system set control_files='/mnt/backup/oracle/xe/control01.ctl' scope=spfile;
2.4 Baixe o banco de dados novamente:
SQL> shutdown immediate
2.5 Apenas monte o banco de dados com o comando:
SQL> startup mount
2.6 Restaurar o Controlfile via rman, segue exemplo abaixo:
rman target /
RESTORE CONTROLFILE FROM '+DATA/xe/controlfile/current.256.745338209';
alter database mount;
3 - Verifique os Datafiles do seu ambiente de banco de dados:
SQL> select file#, name from v$datafile;
FILE# NAME
---------- ------------------------------------------------
1 +DATA/xe/datafile/system.260.745338219
2 +DATA/xe/datafile/undotbs1.261.745338231
3 +DATA/xe/datafile/sysaux.262.745338237
4 +DATA/xe/datafile/users.264.745338243
5 +DATA/xe/datafile/rm_dados.266.745340513
6 +DATA/xe/datafile/rm_dados2.166.74534051
7 +DATA/xe/datafile/rm_indices.268.745340545
8 +DATA/xe/datafile/rm_dados_ff.269.745340559
8 rows selected.
4 - Realize a cópia dos datafiles do seu ambiente de banco de dados para o Filesystem do servidor:
RMAN> BACKUP AS COPY DATAFILE 1 FORMAT '/mnt/backup/oracle/xe/system01.dbf';
RMAN> BACKUP AS COPY DATAFILE 2 FORMAT '/mnt/backup/oracle/xe/undotbs1.dbf';
RMAN> BACKUP AS COPY DATAFILE 3 FORMAT '/mnt/backup/oracle/xe/sysaux.dbf';
RMAN> BACKUP AS COPY DATAFILE 4 FORMAT '/mnt/backup/oracle/xe/users.dbf';
RMAN> BACKUP AS COPY DATAFILE 5 FORMAT '/mnt/backup/oracle/xe/rm_dados.dbf';
RMAN> BACKUP AS COPY DATAFILE 6 FORMAT '/mnt/backup/oracle/xe/rm_dados2.dbf';
RMAN> BACKUP AS COPY DATAFILE 7 FORMAT '/mnt/backup/oracle/xe/rm_indices.dbf';
RMAN> BACKUP AS COPY DATAFILE 8 FORMAT '/mnt/backup/oracle/xe/rm_dados_ff.dbf';
5 - Execute o Switch para alterar os datafiles e utilizar a cópia que acabamos de gerar:
RMAN> switch datafile 1 to copy;
RMAN> switch datafile 2 to copy;
RMAN> switch datafile 3 to copy;
RMAN> switch datafile 4 to copy;
RMAN> switch datafile 5 to copy;
RMAN> switch datafile 6 to copy;
RMAN> switch datafile 7 to copy;
RMAN> switch datafile 8 to copy;
6 - Verifiquei se os datafiles foram alterados e estão no diretório correto:
SQL> select name from v$datafile;
NAME
----------------------------------------------------
/mnt/backup/oracle/xe/system01.dbf
/mnt/backup/oracle/xe/undotbs1.dbf
/mnt/backup/oracle/xe/sysaux.dbf
/mnt/backup/oracle/xe/users.dbf
/mnt/backup/oracle/xe/rm_dados.dbf
/mnt/backup/oracle/xe/rm_dados2.dbf
/mnt/backup/oracle/xe/rm_indices.dbf
/mnt/backup/oracle/xe/rm_dados_ff.dbf
8 rows selected.
7 - Abra o banco de dados com o seguinte comando:
SQL> alter database open;
Database altered.
Pronto, feito isso o seu banco de dados está completamente no filesystem, apenas lembre de recriar os redologs e também mudar o diretório dos archivelog.
Espero que tenha ajudado, qualquer dúvida, deixe o seu comentário.
Nenhum comentário:
Postar um comentário