Esse procedimento serve também para:
* Apagar um controlfile;
* Adicionar um controlfile (basta copiar de um controlfile existente com o banco de dados offline);
* Renomear um controlfile.
Hipoteticamente, o controlfile encontra-se em:
/u01/oradata/controlfiles/control01.ctl/u01/oradata/controlfiles/control02.ctlE será movido para:
/u01/oradata/control01.ctl/u01/oradata/control02.ctlConfirmando os parâmetros e a atual localização dos controlfiles no banco de dados
SQL> select name from v$controlfile;/u01/oradata/controlfiles/control01.ctl/u01/oradata/controlfiles/control02.ctlSQL> show parameter control_filesNAME TYPE VALUE-------------- ------- ----------------------------------------------control_files string /u01/oradata/controlfiles/control01.ctl, /u01/ oradata/controlfiles/control02.ctlMovendo um controlfile utilizando Sqlplus
1. Alterando o parâmetro no spfile
SQL> alter system set control_files = '/u01/oradata/control01.ctl', '/u01/oradata/control02.ctl' scope = spfile;2. Baixando o banco
SQL> shutdown immediate;3. Movendo os arquivos
SQL> host mv /u01/oradata/controlfiles/control01.ctl /u01/oradata/control01.ctlSQL> host mv /u01/oradata/controlfiles/control02.ctl /u01/oradata/control02.ctl4. Iniciando o banco em modo nomount
SQL> startup nomount5. Abrindo o banco de dados
SQL> alter database open;Movendo um controlfile manualmente
1. Criando uma cópia do SPFILE
SQL> create pfile '/u01/pfile.ora' from spfile;2. Baixando o banco
SQL> shutdown immediate;3. Edite o arquivo /u01/pfile.ora e procure pela linha
*.control_files='/u01/oradata/controlfiles/control01.ctl', '/u01/oradata/controlfiles/control02.ctl'4. Altere a linha para
*.control_files='/u01/oradata/control01.ctl', '/u01/oradata/control02.ctl'5. mova os controlfiles para o novo local
$ mv /u01/oradata/controlfiles/control01.ctl /u01/oradata/control01.ctl$ mv /u01/oradata/controlfiles/control02.ctl /u01/oradata/control02.ctl6. Inicie o banco
SQL> startupAtravés desses dois processos é possível renomer os controlfiles, apagá-lo ou adicioná-los.
Marcos Aurélio Braga
OCA - Oracle Database 10g Administrator