Alterando o local dos arquivos de controle em Oracle

Vamos demonstrar como alterar arquivos de controle local.

  • 1- Consulte a view V$CONTROLFILE para encontrar o local dos arquivos de controle.
  • SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    /u00/oracle/oradata/RCAT/control01.ctl
    /u00/oracle/flash_recovery_area/RCAT/control02.ctl
  • 2-Quando estamos movendo arquivos de controle, temos que alterar a localização, usando os valores armazenados no parâmetro control_files. Para encontrar os valores use a seguinte sintaxe:
  • SQL> show parameter control_files
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_files                        string      /u00/oracle/oradata/RCAT/contr
                                                     ol01.ctl, /u00/oracle/flash_re
                                                     covery_area/RCAT/control02.ctl
  • 3-Para o banco.
  • SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
  • 4-Inicia o banco em modo mount.
  • SQL> startup mount;
    ORACLE instance started.
    
    Total System Global Area 1603411968 bytes
    Fixed Size                  2213776 bytes
    Variable Size            1006635120 bytes
    Database Buffers          587202560 bytes
    Redo Buffers                7360512 bytes
    Database mounted.
  • 5-Movimentar os arquivos de controle para o novo local.
  • mv /u00/oracle/oradata/RCAT/control01.ctl /u01/oracle/oradata/RCAT/control01.ctl
    mv /u00/oracle/flash_recovery_area/RCAT/control02.ctl /u01/oracle/oradata/RCAT/control02.ctl
  • 5-Altere o parâmetro control_files para que irá coincidir com a nova localização dos control_files.
  • ALTER SYSTEM SET control_files='/u01/oracle/oradata/RCAT/control01.ctl','/u01/oracle/oradata/RCAT/control02.ctl' SCOPE=SPFILE;
    System altered.
  • 6-Reinicie seu banco de dados e verificar a sua localização control_files.
  • SQL> select name from v$controlfile;
    
    NAME
    --------------------------------------------------------------------------------
    /u01/oracle/oradata/RCAT/control01.ctl
    /u01/oracle/oradata/RCAT/control02.ctl
    
    SQL>