Create the Pfile for farsync:
=====================
Instance parameter file - as a copy of primary database configuration (not necessary)
*.audit_file_dest='/home/oracle/admin/test12c/adump'
*.audit_trail='db'
*.compatible='12.1.0.0.0'
*.control_files='/u01/app/oracle/oradata/test12c/control01.ctl','/u01/app/oracle/oradata/test12c/control02.ctl','/u01/app/oracle/oradata/test12c/control03.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='test12c'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=test12cXDB)'
*.log_archive_dest_1='location=/u01/app/oracle/oradata/test12c/arch'
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=450m
*.undo_tablespace='UNDOTBS1'
# for far sync
*.db_unique_name='test12c_far_sync'
*.LOG_FILE_NAME_CONVERT='test','test'
*.local_listener='(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = <local host>)(PORT = 1522)))'
Main parameter change:
There are three parameters which have to be changed:
db_unique_name
local_listener - new instance has to be registered in proper listener
log_file_name_convert - it is useful to have even with dummy values so Oracle can recreate standby logs automatically
Listener configuration
=================
SID_LIST_LISTENER_DG =
(SID_LIST =
(SID_DESC=
(ORACLE_HOME= /u01/app/oracle/product/12.1.0/db1)
(SID_NAME=test12c)
)
(SID_DESC =
(SID_NAME = test12c)
(GLOBAL_DBNAME = test12c_far_sync_DGMGRL)
(ORACLE_HOME = /u01/app/oracle/product/12.1.0/db1)
)
)
LISTENER_DG =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCDG1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.60)(PORT = 1522))
)
)
Connection String:
==============\
test12c_prim =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.45)(PORT = 1522))
)
(CONNECT_DATA =
(SID = test12c)
(SERVER=dedicated)
)
)
test12c_std =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.1.79)(PORT = 1522))
)
(CONNECT_DATA =
(SID = test12c)
(SERVER=dedicated)
)
)
test12c_far_sync =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.60)(PORT = 1522))
)
(CONNECT_DATA =
(SID = test12c)
(SERVER=dedicated)
)
)
Create the Farsync Controlfile:
======================
[oracle@ora12c dbs]$ rlwrap sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 26 23:21:59 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/tmp/farsync.ctl';
Database altered.
Move the file to the farsync site:
=======================
[oracle@ora12c dbs]$ scp /tmp/farsync.ctl 192.168.1.60:/u01/app/oracle/oradata/test12c/control01.ctl
oracle@192.168.1.60's password:
farsync.ctl 100% 10MB 10.3MB/s 00:00
[oracle@ora12c dbs]$ scp /tmp/farsync.ctl 192.168.1.60:/u01/app/oracle/oradata/test12c/control02.ctl
oracle@192.168.1.60's password:
farsync.ctl 100% 10MB 10.3MB/s 00:01
[oracle@ora12c dbs]$ scp /tmp/farsync.ctl 192.168.1.60:/u01/app/oracle/oradata/test12c/control03.ctl
oracle@192.168.1.60's password:
farsync.ctl 100% 10MB 10.3MB/s 00:00
[oracle@ora12c dbs]$
start the farsync database and add the logfile:
=================================
[oracle@oraclese dbs]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Fri Jul 26 23:24:27 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create spfile from pfile;
File created.
SQL> startup mount
ORACLE instance started.
Total System Global Area 471830528 bytes
Fixed Size 2289688 bytes
Variable Size 293605352 bytes
Database Buffers 167772160 bytes
Redo Buffers 8163328 bytes
Database mounted.
SQL> alter system set dg_broker_start = true;
System altered.
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/test12c/standby01.log') size 50M reuse;
Database altered.
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/test12c/standby02.log') size 50M reuse;
Database altered.
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/test12c/standby03.log') size 50M reuse;
Database altered.
Configure the Farsync using dgmgrl:
==========================
[oracle@ora12c ~]$ dgmgrl /
DGMGRL for Linux: Version 12.1.0.1.0 - 64bit Production
Copyright (c) 2000, 2012, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
Connected as SYSDG.
DGMGRL> connect /
Connected as SYSDG.
DGMGRL> show configuration verbose;
Configuration - fsc
Protection Mode: MaxPerformance
Databases:
test12c_prim - Primary database
test12c_std - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
Adding the Farsync environment to Broker:
===============================\
DGMGRL> add far_sync test12c_far_sync as connect identifier is 'test12c_far_sync';
far sync instance "test12c_far_sync" added
Adding Far Sync
DGMGRL> show configuration verbose;
Configuration - fsc
Protection Mode: MaxPerformance
Databases:
test12c_prim - Primary database
test12c_std - Physical standby database
test12c_far_sync - Far Sync (disabled)
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
Create the rules to transport the redo entries:
===============================
Primary to Farsync:<sync method>
DGMGRL> edit database 'test12c_prim' set property redoroutes='(local : test12c_far_sync sync)';
Property "redoroutes" updated
From farsync : <async mode>
DGMGRL> edit far_sync 'test12c_far_sync' set property redoroutes='(test12c_prim : test12c_std)';
Property "redoroutes" updated
Enabling and checking configuration
===========================
DGMGRL> enable far_sync test12c_far_sync;
Enabled.
DGMGRL> show configuration verbose;
Configuration - fsc
Protection Mode: MaxPerformance
Databases:
test12c_prim - Primary database
test12c_far_sync - Far Sync
test12c_std - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS
Change the production mode to Maximum availability:
=======================================
DGMGRL> edit configuration set protection mode as MaxAvailability;
Succeeded.
DGMGRL> show configuration verbose;
Configuration - fsc
Protection Mode: MaxAvailability
Databases:
test12c_prim - Primary database
test12c_far_sync - Far Sync
test12c_std - Physical standby database
Properties:
FastStartFailoverThreshold = '30'
OperationTimeout = '30'
TraceLevel = 'USER'
FastStartFailoverLagLimit = '30'
CommunicationTimeout = '180'
ObserverReconnect = '0'
FastStartFailoverAutoReinstate = 'TRUE'
FastStartFailoverPmyShutdown = 'TRUE'
BystandersFollowRoleChange = 'ALL'
ObserverOverride = 'FALSE'
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS