Change Data Guard configuration file location “online”
This short post presents how to change online the Data Guard configuration files location (parameters dg_broker_config_fileX) where X is 1 or 2.
REM ================================================
REM renaming of the dg_broker_config_file parameters
REM=================================================
set head off
set feed off
set echo off
set verify off
set trimspool on
ACCEPT site_number CHAR PROMPT 'Enter site number <2: ' DEFAULT '2'
var filename_dg1 varchar2(2000)
var filename_dg2 varchar2(2000)
spool rename_dg_broker_config_file_do.sql
select 'alter system set dg_broker_start=false scope=memory'||chr(10)||'/'
from dual
/
begin
select '/u00/app/oracle/admin/'||name||'/pfile/dr1_'||name||'_SITE'||&site_number||'.dat' into :filename_dg1
from v$database;
select '/u00/app/oracle/admin/'||name||'/pfile/dr2_'||name||'_SITE'||&site_number||'.dat' into :filename_dg2
from v$database;
end;
/
select '!mv '||value||' '||:filename_dg1
from v$parameter
where name = 'dg_broker_config_file1'
/
select '!mv '||value||' '||:filename_dg2
from v$parameter
where name = 'dg_broker_config_file2'
/
select 'alter system set dg_broker_config_file1=''/u00/app/oracle/admin/'||name||'/pfile/dr1_'||name||'_SITE'||&site_number||
'.dat'''||chr(10)||'/'
from v$database
/
select 'alter system set dg_broker_config_file2=''/u00/app/oracle/admin/'||name||'/pfile/dr2_'||name||'_SITE'||&site_number||
'.dat'''||chr(10)||'/'
from v$database
/
select 'alter system set dg_broker_start=true scope=memory'||chr(10)||'/'
from dual
/
select chr(10) from dual;
spool off
set echo on
set feed on print :filename_dg1
print :filename_dg2
spool rename_dg_broker_config_file_do.log
@@rename_dg_broker_config_file_do.sql
spool off
We could consider that the script is not REALLY online because the Data Guard broker is stopped
, but this has no impact on the instance availability.