实验DG Far Sync的搭建过程

本文介绍了一种通过FarSync实现跨数据中心远程同步数据的方法,详细记录了从实验环境搭建、参数配置到同步验证的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Far Sync跨数据中心远程同步数据,减少网络延迟

主库与Far Sync节点redo同步传输,Far Sync节点与standby节点redo异步传输,standby节点是一个级联备库。


实验环境

 

主端

备端

Far Sync

主机名

12cr2

oracle

farsync

IP地址

192.168.16.81

192.168.16.130

192.168.16.131

db_unique_name

newcdb

newcdbdg

frasync


已经存在同步正常的物理备机standby newcdbdg,添加Far Sync节点

DGMGRL> SHOW CONFIGURATION;

Configuration - dg_newcdb

  Protection Mode: MaxPerformance
  Members:
  newcdb   - Primary database
    newcdbdg - Physical standby database 

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 29 seconds ago)

添加hosts文件

三个节点修改以下内容
[root@oracle ~]# vi /etc/hosts
192.168.16.81   12cr2
192.168.16.130  oracle
192.168.16.131  frasync

配置静态监听

Far Sync节点配置listener.ora文件,添加newcdb的静态监听条目
[oracle@frasync admin]$ cat listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = newcdb)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = newcdb)
    )
   )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.131)(PORT = 1521))
  )

ADR_BASE_LISTENER = /u01/app/oracle
三个节点配置tnsnames.ora文件,主端和备端standby添加far sync的监听连接串, far sync添加主端和备端standby的监听连接串
[oracle@frasync admin]$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_NEWCDB =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.81)(PORT = 1521))


newcdb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.81)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = newcdb)
    )
  )

newcdbdg =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.130)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = newcdb)
    )
  )
frasync =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.131)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = newcdb)
    )
  )
启动far sync节点的监听
[oracle@frasync admin]$ lsnrctl start

tnsping测试网络连通性

备端tnsping主端和frasync
[oracle@oracle ~]$ tnsping newcdb
[oracle@oracle ~]$ tnsping frasync
主端tnsping备端和frasync
[oracle@12cr2 ~]$ tnsping newcdbdg
[oracle@12cr2 ~]$ tnsping frasync
frasync tnsping主端和备端
[oracle@frasync ~]$ tnsping newcdb
[oracle@frasync ~]$ tnsping newcdbdg

主端创建pfile文件并将pfile和密码文件传输到frasync

SQL> create pfile='/home/oracle/pfile.ora' from spfile;

[oracle@12cr2 ~]$ scp pfile.ora 192.168.16.131:/home/oracle/
[oracle@12cr2 dbs]$ scp orapwnewcdb 192.168.16.131:`pwd`

frasync修改主端传输的pfile文件

添加db_unique_name,要不同于主库和备库
[oracle@frasync ~]$ cat pfile.ora 
newcdb.__data_transfer_cache_size=0
newcdb.__db_cache_size=541065216
newcdb.__inmemory_ext_roarea=0
newcdb.__inmemory_ext_rwarea=0
newcdb.__java_pool_size=4194304
newcdb.__large_pool_size=8388608
newcdb.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
newcdb.__pga_aggregate_target=264241152
newcdb.__sga_target=838860800
newcdb.__shared_io_pool_size=33554432
newcdb.__shared_pool_size=239075328
newcdb.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/newcdb/adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='/u01/app/oracle/oradata/newcdb/control01.ctl','/u01/app/oracle/oradata/newcdb/control02.ctl'
*.db_block_size=8192
*.db_name='newcdb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=newcdbXDB)'
*.enable_pluggable_database=true
*.local_listener='LISTENER_NEWCDB'
*.log_archive_dest_1='LOCATION=/archive'
*.log_archive_format='%t_%s_%r.dbf'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=250m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=800m
*.undo_tablespace='UNDOTBS1'
*.db_unique_name='frasync'
*.LOG_FILE_NAME_CONVERT=('/u01/app/oracle/oradata/newcdb','/u01/app/oracle/oradata/newcdb')

frasync创建参数文件所需目录

[root@frasync ~]# mkdir /archive
[root@frasync ~]# chown oracle:oinstall /archive/
[oracle@frasync ~]$ mkdir -p /u01/app/oracle/admin/newcdb/adump
[oracle@frasync ~]$ mkdir -p /u01/app/oracle/oradata/newcdb

启动备库到nomount状态

[oracle@frasync ~]$ export ORACLE_SID=newcdb
[oracle@frasync ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sun Jul 2 22:26:22 2017
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> create spfile from pfile='/home/oracle/pfile.ora';
File created.

SQL> startup nomount;
ORACLE instance started.
Total System Global Area  838860800 bytes
Fixed Size                  8798312 bytes
Variable Size             322965400 bytes
Database Buffers          503316480 bytes
Redo Buffers                3780608 bytes
SQL> show parameter db_unique_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      frasync

测试主备库之间的连通性

[oracle@oracle ~]$ sqlplus sys/oracle@newcdbdg as sysdba
[oracle@oracle ~]$ sqlplus sys/oracle@newcdb as sysdba
[oracle@oracle ~]$ sqlplus sys/oracle@frasync as sysdba

[oracle@12cr2 dbs]$ sqlplus sys/oracle@newcdbdg as sysdba
[oracle@12cr2 dbs]$ sqlplus sys/oracle@newcdb as sysdba
[oracle@12cr2 ~]$ sqlplus sys/oracle@frasync as sysdba

[oracle@frasync ~]$ sqlplus sys/oracle@newcdb as sysdba
[oracle@frasync ~]$ sqlplus sys/oracle@newcdbdg as sysdba
[oracle@frasync ~]$ sqlplus sys/oracle@frasync as sysdba

frasync启动dataguard broker

如果使用data guard broker,需要先修改frasync的local_listener参数:
SQL> show parameter local
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      LISTENER_NEWCDB
parallel_force_local                 boolean     FALSE

SQL> alter system set local_listener=frasync;      ##frasync修改
System altered.

SQL> show parameter local
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string      FRASYNC
parallel_force_local                 boolean     FALSE
frasync启动data guard broker
SQL> show parameter dg_broker

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /u01/app/oracle/product/12.2.0
                                                 /db_1/dbs/dr1newcdb.dat
dg_broker_config_file2               string      /u01/app/oracle/product/12.2.0
                                                 /db_1/dbs/dr2newcdb.dat
dg_broker_start                      boolean     FALSE
SQL> !ps -ef |grep dmon
oracle    2309  2305  0 22:34 pts/0    00:00:00 /bin/bash -c ps -ef |grep dmon
oracle    2311  2309  0 22:34 pts/0    00:00:00 grep dmon

SQL> alter system set dg_broker_start=true;
System altered.

SQL> !ps -ef |grep dmon
oracle    2314     1  0 22:34 ?        00:00:00 ora_dmon_newcdb
oracle    2316  2305  0 22:35 pts/0    00:00:00 /bin/bash -c ps -ef |grep dmon
oracle    2318  2316  0 22:35 pts/0    00:00:00 grep dmon

主库备份控制文件,fra sync节点还原

DGMGRL> add far_sync frasync as connect identifier is frasync;
Error: ORA-16525: The Oracle Data Guard broker is not yet available.

Failed.
报错,原因是需要fra sync节点还原控制文件,启动到mount状态
主库备份控制文件传输到fra sync节点上
SQL> ALTER DATABASE CREATE FAR SYNC INSTANCE CONTROLFILE AS '/home/oracle/controlfs01.ctl1';
Database altered.

[oracle@12cr2 ~]$ scp controlfs01.ctl1 192.168.16.131:/home/oracle/
fra sync节点还原控制文件
[oracle@frasync ~]$ rman target /
Recovery Manager: Release 12.2.0.1.0 - Production on Sun Jul 2 22:44:52 2017
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
connected to target database: NEWCDB (not mounted)

RMAN> restore controlfile from '/home/oracle/controlfs01.ctl1';

Starting restore at 02-JUL-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=36 device type=DISK
channel ORA_DISK_1: copied control file copy
output file name=/u01/app/oracle/oradata/newcdb/control01.ctl
output file name=/u01/app/oracle/oradata/newcdb/control02.ctl
Finished restore at 02-JUL-17
fra sync节点启动到mount
[oracle@frasync ~]$ sqlplus / as sysdba
SQL> alter database mount;

DGbroker添加far_sync节点

DGMGRL> add far_sync frasync as connect identifier is frasync;
far sync instance "frasync" added

DGMGRL> SHOW CONFIGURATION;

Configuration - dg_newcdb

  Protection Mode: MaxPerformance
  Members:
  newcdb   - Primary database
    newcdbdg - Physical standby database 
    frasync  - Far sync instance (disabled)

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 33 seconds ago)

enablefar_sync节点

DGMGRL> ENABLE FAR_SYNC frasync;
Enabled.
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_newcdb

  Protection Mode: MaxPerformance
  Members:
  newcdb   - Primary database
    newcdbdg - Physical standby database 
    frasync  - Far sync instance 

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 1 second ago)

DGMGRL> SHOW FAR_SYNC VERBOSE frasync;

Far Sync Instance - frasync

  Transport Lag:      (unknown)
  Instance(s):
    newcdb

  Properties:
    DGConnectIdentifier             = 'frasync'
    LogXptMode                      = 'ASYNC'
    RedoRoutes                      = ''
    Binding                         = 'optional'
    MaxFailure                      = '0'
    MaxConnections                  = '1'
    ReopenSecs                      = '300'
    NetTimeout                      = '30'
    RedoCompression                 = 'DISABLE'
    LogShipping                     = 'ON'
    TransportLagThreshold           = '30'
    TransportDisconnectedThreshold  = '30'
    LogArchiveMaxProcesses          = '4'
    LogArchiveMinSucceedDest        = '1'
    LogFileNameConvert              = '/u01/app/oracle/oradata/newcdb, /u01/app/oracle/oradata/newcdb'
    InconsistentProperties          = '(monitor)'
    InconsistentLogXptProps         = '(monitor)'
    LogXptStatus                    = '(monitor)'
    StandbyArchiveLocation          = '/archive'
    AlternateLocation               = ''
    LogArchiveTrace                 = '0'
    LogArchiveFormat                = '%t_%s_%r.dbf'
    TopWaitEvents                   = '(monitor)'

Far Sync Instance Status:
SUCCESS

主端切换归档,查看fra sync节点和备机接收状态
##主端切换归档
[oracle@12cr2 ~]$ sqlplus / as sysdba
SQL> alter system switch logfile;
##fra sync节点
2017-07-02T23:00:06.996529+08:00
Archived Log entry 3 added for T-1.S-87 ID 0x22fd0e8 LAD:1
2017-07-02T23:00:06.996698+08:00
RFS[1]: Selected log 5 for T-1.S-88 dbid 36700136 branch 947543403
##standby备机
2017-07-02T23:00:07.920455+08:00
RFS[5]: Selected log 4 for T-1.S-88 dbid 36700136 branch 947543403
2017-07-02T23:00:07.989933+08:00
Archived Log entry 15 added for T-1.S-87 ID 0x22fd0e8 LAD:1
2017-07-02T23:00:08.048623+08:00
Media Recovery Waiting for thread 1 sequence 88 (in transit)
2017-07-02T23:00:08.048938+08:00
Recovery of Online Redo Log: Thread 1 Group 4 Seq 88 Reading mem 0
  Mem# 0: /u01/app/oracle/oradata/newcdb/stdbyredo01.log

fra sync节点没有数据文件
[oracle@frasync ~]$ cd /u01/app/oracle/oradata/newcdb
[oracle@frasync newcdb]$ ll
total 856244
-rw-r----- 1 oracle oinstall  18956288 Jul  2 23:02 control01.ctl
-rw-r----- 1 oracle oinstall  18956288 Jul  2 23:02 control02.ctl
-rw-r----- 1 oracle oinstall 209715712 Jul  2 23:00 stdbyredo01.log
-rw-r----- 1 oracle oinstall 209715712 Jul  2 23:02 stdbyredo02.log
-rw-r----- 1 oracle oinstall 209715712 Jul  2 22:51 stdbyredo03.log
-rw-r----- 1 oracle oinstall 209715712 Jul  2 22:51 stdbyredo04.log


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值