Active Data Guard Far Sync
Active Data Guard Far Sync是Oracle 12c的新功能(也称为Far Sync Standby),Far Sync功能的实现是通过在距离主库(Primary Database)相对较近的地点配置Far Sync实例,主库(Primary Database) 同步(synchronous)传输redo到Far Sync实例,然后Far Sync实例再将redo异步(asynchronous)传输到终端备库(Standby Database)。这样既可以保证零数据丢失又可以降低主库压力。Far Sync实例只有密码文件,init参数文件和控制文件,而没有数据文件。
如果 redo 传输采用 Maximum Availability 模式,我们可以在距离生产中心(Primary Database)相对较近的地点配置 Far Sync实例,主库(Primary Database)同步(synchronous)传输 redo 到 Far Sync 实例,保证零数据丢失(zero data loss),同时主库和 Far Sync 距离较近,网络延时很小,因此对主库性能影响很小。然后 Far Sync 实例再将 redo 异步(asynchronous)发送到终端备库(Standby Database)。
如果redo 传输采用 Maximum Performance 模式,我们可以在距离生产中心(Primary Database)相对较近的地点配置 Far Sync 实例,主库(Primary Database) 异步传输 redo 到 Far Sync 实例,然后 Far Sync 实例再负责传输 redo 到其他多个终端备库(Standby Database)。这样可以减少主库向多个终端备库(Standby Database)传输redo的压力(offload)。
Far Sync配置对于Data Guard 角色转换(role transitions)是透明的,即switchover/failover命令方式与12c之前相同。
考虑到可能发生 Data Guard 角色转换,即 switchover/failover,可以在距离备库较近的地方也配置 Far Sync 实例,这个 Far Sync 实例只有在当前的备库切换为主库后才启用。
考虑到 Far Sync 实例的单点故障,可以在距离主库较近的地点配置 2 个Far Sync实例,起到备用的作用。

环境描述
| 角色 | IP地址 | hostsname | DB_unique_name | 实例名 | 控制文件 |
|---|---|---|---|---|---|
| 主库 | 192.168.10.91 | primary-database | primary | orcl | /orcl/app/oracle/oradata/orcl/control01.ctl,/orcl/app/oracle/fast_recovery_area/orcl/control02.ctl |
| 备库 | 192.168.10.94 | standby-database | standby | orcl | |
| far sync 1 | 192.168.10.92 | far-sync-01 | farsync01 | orcl |

当主库写入日志到 far sync 实例,由 far sync 实例异步到备库。
当生主从切换后,数据写入新的主库(原备库),far sync 实例,由 far sync 实例异步到新备库(原主库)。
尝试在 far sync 配置
部署 ADG(一主一备)
FAR SYNC的两台服务器的话直接克隆的备库主机,克隆后删除数据文件即可;重新搭建的话只需要ORACLE软件,不需要建立数据库
http://bytesystem.online/doc/2564/
部署 Far sync
主库创建控制文件,pfile
step 1.创建控制文件
SYS@primary> alter database create far sync instance controlfile as '/home/oracle/fs01.ctl';
Database altered.
SYS@primary>
step 2.创建 pfile 文件
SYS@primary> create pfile='/home/oracle/initorcl.ora' from spfile;
File created.
SYS@primary>
拷贝控制文件,pfile
传输控制文件,pfile,密码文件文件到 Far Sync instance 节点
scp /u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapworcl oracle@192.168.10.93:/u01/app/oracle/product/19.3.0/dbhome_1/dbs/
scp /u01/app/oracle/product/19.3.0/dbhome_1/dbs/spfileorcl.ora oracle@192.168.10.93:/u01/app/oracle/product/19.3.0/dbhome_1/dbs/
scp /home/oracle/fs01.ctl oracle@192.168.10.93:/u01/app/oracle/product/19.3.0/dbhome_1/dbs/
主库部署
step 1.编辑 tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary-database)(PORT = 1521))
PRIMARY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary-database)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby-database)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
FARSYNC01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = far-sync-01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
step 2.配置 DB_UNIQUE_NAME
alter system set db_unique_name='primary' ;
step 3.配置 FAL_SERVER
alter system set fal_server='standby,farsync01';
alter system set fal_client='primary';
fal_server的值写的是tnsname中的服务名
step 4.配置 LOG_ARCHIVE_CONFIG
alter system set log_archive_config='dg_config=(primary,farsync01,standby)';
警告:尚未定义LOG_ARCHIVE_CONFIG参数,但已配置远程Data Guard目标。Oracle强烈建议在使用Data Guard时设置此参数,如Data Guard手册中所述。
其中,primary 是主数据库的本地网络服务名,farsync01,standby 是主数据库的远程网络服务名。
step 5.配置 log_archive_dest
LOG_ARCHIVE_DEST_1 指向本地归档路径
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/archivelog VALID_FOR=(online_logfile,primary_role) DB_UNIQUE_NAME=primary';
LOG_ARCHIVE_DEST_2
LOG_ARCHIVE_DEST_2 原来是指向备库的,现在指向fs机器,使用sync
alter system set log_archive_dest_2='service=FARSYNC01 lgwr SYNC affirm max_failure=1 alternate=log_archive_dest_3 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=farsync01';
或
alter system set log_archive_dest_2='service=FARSYNC01 LGWR SYNC AFFIRM delay=0 optional ALTERNATE=LOG_ARCHIVE_DEST_3 compression=disable max_failure=1 reopen=300 net_timeout=30 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=farsync01'
LOG_ARCHIVE_DEST_3
LOG_ARCHIVE_DEST_3 这个就设置成指向FS2服务器的,使用async
alter system set log_archive_dest_3='service=STANDBY lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby';
当初始的目的地失败,将使用该参数指定一个轮换的归档目的地。该属性不支持LOG_ARCHIVE_DEST_11到LOG_ARCHIVE_DEST_31 Redo目的地设置。
ALTERNATE=LOG_ARCHIVE_DEST_n,LOG_ARCHIVE_DEST_n是一个目的地,n是从1到10的一个值。
通过V$ARCHIVE_DEST.STATUS可以查看ALTERNATE目的地相关信息。
以上配置的说明:
- 日志先在本地归档,然后传送给 far server,
- FARSYNC02 是备用的,当FARSYNC01正常使用的时候,FARSYNC02不启用
- 当FARSYNC01挂了,FARSYNC02才会自动启用,FARSYNC01好了,FARSYNC02会自动关闭。
- 主到fs是sync,fs到备库是使用async同步模式来传输归档给备库。
配置 Far Sync 实例
FarSync 实例添加 standby log,该配置已经在DG环境中添加。无需重复操作。
step 1.配置 FarSync 实例的 tnsnames
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = far-sync-01)(PORT = 1521))
PRIMARY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary-database)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby-database)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
FARSYNC01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = far-sync-01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
step 2.创建相应的文件目录
mkdir -p /u01/app/oracle/archivelog
mkdir -p /u01/app/oracle/fast_recovery_area/orcl
mkdir -p /u01/app/oracle/admin/orcl/adump
mkdir -p /u01/app/oracle/oradata/orcl
step 3.启动到 nomount
SQL> startup nomount
step 3.配置 DB_UNIQUE_NAME
alter system set db_unique_name='farsync01';
step 4.配置 FAL_SERVER
alter system set fal_server='primary,standby';
alter system set fal_client='farsync01';
step 5.配置log_archive_config
alter system set log_archive_config='dg_config=(primary,farsync01,standby)';
step 6.配置 log_archive_dest_n
log_archive_dest_1,写归档到本地归档路径
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl';
log_archive_dest_2,写归档到备库,用async的方式,因为主到fs是sync,fs到备库是async。
- 当主库归档写到 fs ,fs 传送到备库。
alter system set log_archive_dest_2='service=STANDBY async ALTERNATE=LOG_ARCHIVE_DEST_3 valid_for=(standby_logfiles,standby_role) db_unique_name=standby';
- 当主从数据库切换,备库归档写到 fs ,fs 传送到主库。
alter system set log_archive_dest_3='service=PRIMARY async ALTERNATE=LOG_ARCHIVE_DEST_2 valid_for=(standby_logfiles,standby_role) db_unique_name=primary';
step 7.恢复控制文件
[oracle@far-sync-01 dbs]$ rman target /
Recovery Manager: Release 19.0.0.0.0 - Production on Sun Apr 28 11:37:24 2024
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (not mounted)
RMAN> restore controlfile from '/u01/app/oracle/product/19.3.0/dbhome_1/dbs/fs01.ctl';
Starting restore at 2024-04-28 11:38:17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=261 device type=DISK
channel ORA_DISK_1: copied control file copy
output file name=/u01/app/oracle/oradata/ORCL/control01.ctl
output file name=/u01/app/oracle/oradata/ORCL/control02.ctl
Finished restore at 2024-04-28 11:38:21
RMAN>
step 8.在 Far Sync 实例服务器创建监听器(过程略)。
step 9.启动到 mount
SQL> alter database mount;
恢复后再后续的启动中就只需要启动到 mount 状态即可
step 10.创建standby redo log
在Far Sync实例创建standby redo log,standby redo log大小等于主库online redo log大小:
alter database drop standby logfile group 4;
alter database drop standby logfile group 5;
alter database drop standby logfile group 6;
alter database drop standby logfile group 7;
alter database add standby logfile group 8 '/u01/app/oracle/oradata/ORCL/STANDBY_REDO08.LOG' size 200M;
alter database add standby logfile group 9 '/u01/app/oracle/oradata/ORCL/STANDBY_REDO09.LOG' size 200M;
alter database add standby logfile group 10 '/u01/app/oracle/oradata/ORCL/STANDBY_REDO10.LOG' size 200M;
alter database add standby logfile group 11 '/u01/app/oracle/oradata/ORCL/STANDBY_REDO11.LOG' size 200M;
备库配置
step 1.编辑 tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby-database)(PORT = 1521))
PRIMARY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary-database)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby-database)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
FARSYNC01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = far-sync-01)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
step 2.配置 DB_UNIQUE_NAME
alter system set db_unique_name='standby';
step 3.配置 FAL_SERVER
alter system set fal_server='primary,farsync01';
alter system set fal_client='standby';
step 4.配置LOG_ARCHIVE_CONFIG
alter system set log_archive_config='dg_config=(primary,farsync01,standby)';
dg_config是写db_unique_name的值。
step 5.log_archive_dest 配置
log_archive_dest_1,写归档到本地归档路径
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl';
LOG_ARCHIVE_DEST_2
LOG_ARCHIVE_DEST_2 原来是指向备库的,现在指向fs机器,使用sync
alter system set log_archive_dest_2='service=FARSYNC01 lgwr SYNC affirm max_failure=1 alternate=log_archive_dest_3 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=farsync01';
或
alter system set log_archive_dest_2='service=FARSYNC01 LGWR SYNC AFFIRM delay=0 optional ALTERNATE=LOG_ARCHIVE_DEST_3 compression=disable max_failure=1 reopen=300 net_timeout=30 valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=farsync01'
LOG_ARCHIVE_DEST_3
LOG_ARCHIVE_DEST_3 这个就设置成指向FS2服务器的,使用async
alter system set log_archive_dest_3='service=PRIMARY lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary';
检查配置情况
# 查看dataguard_config
select * from V$DATAGUARD_CONFIG;
# 查看同步情况
select * FROM V$DATAGUARD_STATS;
select dest_id,status,error from v$archive_dest;
查看 LOG_ARCHIVE_DEST_n 状态时, 2 或者 3 总一个一个是错误,“ORA-16009: invalid redo transport destination” 为正常情况。
SYS@orcl> select dest_id,status,error from v$archive_dest;
DEST_ID STATUS ERROR
---------- ------------------ -----------------------------------------------------------------
1 VALID
2 VALID
3 IDLE ORA-16009: invalid redo transport destination
测试FarSync
数据同步测试
查看主从库
SYS@primary> select database_role,db_unique_name from v$database;
DATABASE_ROLE DB_UNIQUE_NAME
-------------------------------- ------------------------------------------------------------
PRIMARY orcl
SYS@primary>
SYS@standby> select database_role,db_unique_name from v$database;
DATABASE_ROLE DB_UNIQUE_NAME
-------------------------------- ------------------------------------------------------------
PHYSICAL STANDBY orcl
SYS@standby>
创建表,插入数据测试
create table t(id int);
insert into t values(1);
select count(*) from t;
从日志查看,后台进程的运行
主库先通过 log_archive_dest_2 SYNC同步给FarSync实例
2024-04-28T15:34:04.471861+08:00
rfs (PID:22967): Database mount ID mismatch [0x650bab38:0x650ba60e] (1695263544:1695262222)
rfs (PID:22967): Client instance is standby database instead of primary
rfs (PID:22967): Not using real application clusters
2024-04-28T15:34:20.268620+08:00
LGWR (PID:21043): SRL selected for T-1.S-30 for LAD:2
2024-04-28T15:34:22.893367+08:00
Thread 1 advanced to log sequence 30 (LGWR switch)
Current log# 3 seq# 30 mem# 0: /u01/app/oracle/oradata/ORCL/redo03.log
2024-04-28T15:34:23.221977+08:00
ARC2 (PID:21107): Archived Log entry 47 added for T-1.S-29 ID 0x650692a7 LAD:1
FarSync 实例再通过 log_archive_dest_2 ASYNC 同步给备库
2024-04-28T15:34:13.205352+08:00
ARC2 (PID:17756): Archived Log entry 5 added for T-1.S-29 ID 0x650692a7 LAD:1
2024-04-28T15:34:15.813310+08:00
rfs (PID:20868): Primary database is in MAXIMUM PERFORMANCE mode
2024-04-28T15:34:20.288224+08:00
rfs (PID:20868): Selected LNO:8 for T-1.S-30 dbid 1694913959 branch 1167133230
2024-04-28T15:34:24.414502+08:00
TT02 (PID:19487): SRL selected for T-1.S-30 for LAD:2
备库进行应用
2024-04-28T03:34:12.036563-04:00
ARC2 (PID:5226): Archived Log entry 13 added for T-1.S-29 ID 0x650692a7 LAD:1
2024-04-28T03:34:12.596382-04:00
PR00 (PID:10843): Media Recovery Log /u01/app/oracle/archivelog/1_29_1167133230.dbf
2024-04-28T03:34:13.665850-04:00
PR00 (PID:10843): Media Recovery Waiting for T-1.S-30
2024-04-28T03:34:20.468662-04:00
rfs (PID:22517): Primary database is in MAXIMUM PERFORMANCE mode
2024-04-28T03:34:22.878710-04:00
rfs (PID:22517): Selected LNO:4 for T-1.S-30 dbid 1694913959 branch 1167133230
测试备用链路切换
断开 far-sync-01 节点的网络,可以看到主库发现了备库的连接
2024-04-28T16:56:27.385495+08:00
rfs (PID:28600): Database mount ID mismatch [0x650bc40d:0x650ba516] (1695269901:1695261974)
rfs (PID:28600): Client instance is standby database instead of primary
rfs (PID:28600): Not using real application clusters
此时,在主库插入数据,切换日志;查看主库的后台日志
2024-04-28T17:07:01.252717+08:00
Thread 1 advanced to log sequence 41 (LGWR switch)
Current log# 2 seq# 41 mem# 0: /u01/app/oracle/oradata/ORCL/redo02.log
2024-04-28T17:07:02.102785+08:00
ARC0 (PID:27172): Archived Log entry 70 added for T-1.S-40 ID 0x650692a7 LAD:1
2024-04-28T17:07:02.556815+08:00
TT02 (PID:27186): SRL selected for T-1.S-41 for LAD:3
从库的后台日志
2024-04-28T05:07:01.041857-04:00
rfs (PID:26924): Selected LNO:5 for T-1.S-41 dbid 1694913959 branch 1167133230
2024-04-28T05:07:01.041978-04:00
ARC1 (PID:26188): Archived Log entry 24 added for T-1.S-40 ID 0x650692a7 LAD:1
2024-04-28T05:07:06.105633-04:00
PR00 (PID:26261): Media Recovery Log /u01/app/oracle/archivelog/1_40_1167133230.dbf
2024-04-28T05:07:07.334841-04:00
PR00 (PID:26261): Media Recovery Waiting for T-1.S-41 (in transit)
网络恢复后,far sync 实例进入 gap
2024-04-28T17:10:35.521510+08:00
TT00 (PID:21025): Gap Manager starting
主备切换测试
step 1.查看主备数据库的状态
主库
SYS@primary> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
41
# 查看主库状态
SYS@primary> select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
------------------ ---------------------------------------- -------------------------------- ---------------------------------------- ----------------------------------------
ORCL READ WRITE PRIMARY MAXIMUM PERFORMANCE FAILED DESTINATION
SYS@primary>
从库
SYS@standby> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
41
# 切换时要停库,最好没有其他session链接
SYS@standby> select username,sid from v$session where username is not null;
USERNAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SID
----------
SYS
3
PUBLIC
18
PUBLIC
19
SYS
138
PUBLIC
142
PUBLIC
271
6 rows selected.
# 查看备库状态
SYS@standby> select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
------------------ ---------------------------------------- -------------------------------- ---------------------------------------- ----------------------------------------
ORCL READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM PERFORMANCE NOT ALLOWED
SYS@standby>
step 2.在主库执行切换
SYS@primary> alter database commit to switchover to standby;
Database altered.
SYS@primary>
# 主库变状态变化,等待确认切换状态
SYS@orcl> select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
------------------ ---------------------------------------- -------------------------------- ---------------------------------------- ----------------------------------------
ORCL READ ONLY PHYSICAL STANDBY MAXIMUM PERFORMANCE TO PRIMARY
SYS@orcl>
# 启用mrp0进程,并查看角色及切换状态
SYS@orcl> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
SYS@orcl>
step 3.从库执行切换
SYS@standby> shut immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@standby> startup mount
ORACLE instance started.
Total System Global Area 2432695144 bytes
Fixed Size 8899432 bytes
Variable Size 536870912 bytes
Database Buffers 1879048192 bytes
Redo Buffers 7876608 bytes
Database mounted.
SYS@standby> select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
------------------ ---------------------------------------- -------------------------------- ---------------------------------------- ----------------------------------------
ORCL MOUNTED PHYSICAL STANDBY MAXIMUM PERFORMANCE TO PRIMARY
SYS@standby> alter database commit to switchover to primary;
Database altered.
SYS@standby> alter database open;
Database altered.
SYS@standby>
step 4.查看主从数据库的状态
# 新主
SYS@standby> select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
------------------ ---------------------------------------- -------------------------------- ---------------------------------------- ----------------------------------------
ORCL READ WRITE PRIMARY MAXIMUM PERFORMANCE FAILED DESTINATION
# 查看后台进行状态
SYS@standby>
SYS@standby> select process,status from v$managed_standby;
PROCESS STATUS
------------------ ------------------------
ARCH CONNECTED
DGRD ALLOCATED
DGRD ALLOCATED
ARCH CLOSING
ARCH CLOSING
ARCH CONNECTED
LNS WRITING
DGRD ALLOCATED
8 rows selected.
SYS@standby>
# 新备
SYS@orcl> select name,open_mode,database_role,protection_mode,switchover_status from v$database;
NAME OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS
------------------ ---------------------------------------- -------------------------------- ---------------------------------------- ----------------------------------------
ORCL READ ONLY WITH APPLY PHYSICAL STANDBY MAXIMUM PERFORMANCE NOT ALLOWED
SYS@orcl>
新主插入数据观察状态
2024-04-28T05:33:50.808923-04:00
LGWR (PID:28683): LAD:2 is UNSYNCHRONIZED
2024-04-28T05:33:51.231345-04:00
Thread 1 advanced to log sequence 45 (LGWR switch)
Current log# 3 seq# 45 mem# 0: /u01/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_3_m2t5hm05_.log
2024-04-28T05:33:51.842268-04:00
Expanded controlfile section 11 from 28 to 256 records
Requested to grow by 228 records; added 9 blocks of records
2024-04-28T05:33:51.842717-04:00
ARC2 (PID:28739): Archived Log entry 29 added for T-1.S-44 ID 0x650a7fde LAD:1
2024-04-28T05:33:54.694483-04:00
TT02 (PID:28774): SRL selected for T-1.S-45 for LAD:3
新备查看日志
2024-04-28T17:33:56.207340+08:00
rfs (PID:30843): Selected LNO:5 for T-1.S-45 dbid 1694913959 branch 1167133230
2024-04-28T17:33:56.207619+08:00
ARC1 (PID:30503): Archived Log entry 76 added for T-1.S-44 ID 0x650a7fde LAD:1
2024-04-28T17:34:09.450575+08:00
PR00 (PID:30650): Media Recovery Waiting for T-1.S-45 (in transit)
2024-04-28T17:34:09.451400+08:00
Recovery of Online Redo Log: Thread 1 Group 5 Seq 45 Reading mem 0
Mem# 0: /u01/app/oracle/oradata/ORCL/STANDBY_REDO05.LOG
尝试给 Far Sync 实例配置两个归档日志的配置,切换数据库后,不用从新配置。
该尝试和配置,发现 Far Sync 节点连接其他库异常,“ORA-12154: TNS:could not resolve the connect identifier specified” ,同时主从库配置了 直接应用主库的归档日志,进而验证了 DG的可靠性。




