ADG架构搭建2 -- 搭建一主一备ADG架构

171 篇文章 14 订阅

在这里插入图片描述
本文接该系列文章的上一篇:ADG架构搭建1–Oracle安装

前言

在参考本文进行ADG搭建之前,应确保已有两台Linux机器正确安装Oracle软件和数据库。

正文

本文将带领大家完成最简单的Oracle ADG架构(一主一备)的搭建。

一、修改主备库tnsnames.ora和listener.ora文件

在主库(ruiadg1)和备库(ruiadg2)上执行如下操作:

1.修改tnsnames文件
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

假设服务器 ruiadg1 和 ruiadg2 的ip分别为192.168.10.13 和 192.168.10.14 。

添加ORCL_STANDBY的相关配置:

ruiadg1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.13)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = ruiadg)
        )
    )

ruiadg2 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.14)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = ruiadg)
        )
)
2.修改主备库listener.ora文件
$ vi $ORACLE_HOME/network/admin/listener.ora

添加静态监听:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ruiadg)
      (ORACLE_HOME = /oracle/app/product/12.1.0/dbhome_1)
      (SID_NAME = ruiadg)
    )
)

listener.ora修改完成后,需重启监听:

$ lsnrctl stop
$ lsnrctl start

二、修改主备库归档模式

主备库都需要设置为归档模式

1.查看当前归档模式
SQL> archive log list

Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     7
Current log sequence           9
2.修改归档模式

若当前为非归档模式,需要修改为归档模式。方法如下:

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database open;

SQL> archive log list

Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     8
Next log sequence to archive   10
Current log sequence           10

三、设置主库(ruiadg1)为强制归档

SQL> alter database force logging;

因主库出现故障,进行ADG主备切换后,当前备库将变为主库,所以这里也可以同时把备库设置为强制归档。

四、配置参数

说明:
ADG架构的日志传输方式有3种:ARCH方式,LGWR SYNC方式,LGWR ASYNC方式。
若要了解更多请移步《Oracle Data Guard详解》


这里我们配置ARCH方式。

1.简易版

修改主库(ruiadg1)参数

SQL> alter system set log_archive_dest_2='service=ruiadg2 ARCH SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg’;

SQL> alter system set log_archive_dest_1='location=/oradata/arch';

[1] /oradata/arch 目录的创建:

# cd /
# mkdir -p /oradata/arch
# chown oracle:oinstall /oradata/arch

修改备库(ruiadg2)参数

SQL> alter system set fal_client=ruiadg2;

SQL> alter system set fal_server=ruiadg1;

SQL>alter system set standby_archive_dest='/oradata/archlog';
2.完整版

配置完成上述的主备库参数,已经可以实现ADG的配置了。
但是为了便于ADG架构主备库的切换,最好将主备库参数配置如下:

修改主库(ruiadg1)参数

SQL> alter system set fal_client=ruiadg1;

SQL> alter system set fal_server=ruiadg2;

SQL>alter system set standby_archive_dest='/oradata/archlog';

SQL> alter system set log_archive_dest_2='service=ruiadg2 ARCH SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg’;

SQL> alter system set log_archive_dest_1='location=/oradata/arch';

修改备库(ruiadg2)参数

SQL> alter system set fal_client=ruiadg2;

SQL> alter system set fal_server=ruiadg1;

SQL>alter system set standby_archive_dest='/oradata/archlog';

SQL> alter system set log_archive_dest_2='service=ruiadg1 ARCH SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg';

SQL>alter system set log_archive_dest_1='location=/oradata/arch';

补充:
若要设置为其他两种日志传输方式,只需修改log_archive_dest_2参数的值。

LGWR ASYNC:
主库(ruiadg1)
SQL> alter system set log_archive_dest_2=‘service=ruiadg2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg ';
备库(ruiadg2)
SQL> alter system set log_archive_dest_2=‘service=ruiadg1 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg’;

LGWR SYNC:
主库(ruiadg1)
SQL> alter system set log_archive_dest_2='service=ruiadg2 LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg ';
备库(ruiadg2)
SQL> alter system set log_archive_dest_2=‘service=ruiadg1 LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=ruiadg’;

五、数据同步

在备库(ruiadg2)执行

--将备库启动至nomount状态
SQL> shutdown immediate

Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup nomount

ORACLE instance started.

Total System Global Area 4999610368 bytes
Fixed Size                  3721080 bytes
Variable Size            1090521224 bytes
Database Buffers         3892314112 bytes
Redo Buffers               13053952 bytes

--从主库同步数据至备库
$ rman target sys/rui@ruiadg1 auxiliary sys/rui@ruiadg2 --前面是主库,后面是辅库

Recovery Manager: Release 12.1.0.2.0 - Production on Thu Aug 26 14:23:52 2021

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RUIADG (DBID=3080921516)
connected to auxiliary database: RUIADG (not mounted)

RMAN> DUPLICATE TARGET DATABASE for standby FROM ACTIVE DATABASE nofilenamecheck;

Recovery Manager: Release 12.1.0.2.0 - Production on Thu Aug 26 14:23:52 2021

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RUIADG (DBID=3080921516)
connected to auxiliary database: RUIADG (not mounted)

RMAN> DUPLICATE TARGET DATABASE for standby FROM ACTIVE DATABASE nofilenamecheck;

Starting Duplicate Db at 26-AUG-21
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=249 device type=DISK

contents of Memory Script:
{
   backup as copy reuse
   targetfile  '/oracle/app/product/12.1.0/dbhome_1/dbs/orapwruiadg' auxiliary format
 '/oracle/app/product/12.1.0/dbhome_1/dbs/orapwruiadg'   ;
}
executing Memory Script

Starting backup at 26-AUG-21
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=26 device type=DISK
Finished backup at 26-AUG-21

contents of Memory Script:
{
   restore clone from service  'ruiadg1' standby controlfile;
}
executing Memory Script

Starting restore at 26-AUG-21
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ruiadg1
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/oracle/app/oradata/ruiadg/control01.ctl
output file name=/oracle/app/fast_recovery_area/ruiadg/control02.ctl
Finished restore at 26-AUG-21

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database

contents of Memory Script:
{
   set newname for tempfile  1 to
 "/oracle/app/oradata/ruiadg/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/oracle/app/oradata/ruiadg/system01.dbf";
   set newname for datafile  3 to
 "/oracle/app/oradata/ruiadg/sysaux01.dbf";
   set newname for datafile  4 to
 "/oracle/app/oradata/ruiadg/undotbs01.dbf";
   set newname for datafile  6 to
 "/oracle/app/oradata/ruiadg/users01.dbf";
   restore
   from service  'ruiadg1'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to /oracle/app/oradata/ruiadg/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 26-AUG-21
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ruiadg1
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /oracle/app/oradata/ruiadg/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ruiadg1
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /oracle/app/oradata/ruiadg/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ruiadg1
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /oracle/app/oradata/ruiadg/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ruiadg1
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /oracle/app/oradata/ruiadg/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 26-AUG-21

sql statement: alter system archive log current

contents of Memory Script:
{
   switch clone datafile all;
}
executing Memory Script

datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1081607081 file name=/oracle/app/oradata/ruiadg/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1081607081 file name=/oracle/app/oradata/ruiadg/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1081607081 file name=/oracle/app/oradata/ruiadg/undotbs01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=4 STAMP=1081607081 file name=/oracle/app/oradata/ruiadg/users01.dbf
Finished Duplicate Db at 26-AUG-21

RMAN>

--启动备库
SQL> alter database open;

Database altered.


SQL> alter database recover managed standby database disconnect from session;

Database altered.

命令摘要:
– 启动备库至nomount状态
SQL> shutdown immediate
SQL> startup nomount
– 同步数据
$ rman target sys/rui@ruiadg1 auxiliary sys/rui@ruiadg2
RMAN> DUPLICATE TARGET DATABASE for standby FROM ACTIVE DATABASE nofilenamecheck;
– 启动备库并应用日志
SQL> alter database open;
SQL> alter database recover managed standby database disconnect from session;

六、测试ADG有效性

1.在主库建表并插入数据
SQL> create table test1 (name varchar(20),age int);
SQL> insert into test1 values ('rui',20);
SQL> commit;
2.在主库手动切log
SQL> alter system switch logfile;
3.在备库查看数据同步状况
select * from test1;

到这里,我们已经完成了一主一备ADG架构的搭建,是不是很开心?
在这里插入图片描述


上一篇:ADG架构搭建1–Oracle安装
下一篇:ADG架构搭建3 – 一主一备ADG主备切换

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如今,许多模拟输入模块使用线链路(跳线)来配置客户输 入要求,配置和重新配置输入需要时间、知识和手动干预。 本电路提供一个用来配置工作模式的软件可控开关以及用来 激励RTD 的恒流源。本电路也可以重新配置,以便设置热电 偶配置的共模电压。一个差分放大器用来调理Σ-Δ ADC 的模 拟输入范围。本电路以最低的成本提供业界领先的性能。 REF194产 生。 RTD 测量 如连接表所示,本电路支持2/3/4 线RTD配置。此时,传感器是 一个1000 Ω铂(Pt) RTD(电阻温度检测器)。最精确的配置是4 引脚RTD配置。在所示的应用中,外部200 μA电流源提供RTD 所需的激励电流,AD7193 在16 倍增益下工作,使电路的动态 范围达到最大。选择RTD测量模式时, 由于AD8676和AD8275提供电压增益,因此该设计特别适合 小信号输入、所有类型的RTD或热电偶。 AD7193是一款24 位Σ-Δ型ADC,可配置为四路差分输入或八 路伪差分输入。 AD8617放大器被配置为 电流源。选择热电偶测量时,它在闭环中重新配置,以便设置 共模电压。AD8617 是一款双通道低噪声放大器,因此它能同时 驱动电路板上的两个输入通道。配置电流源的电阻必须具有低 温度系数,以免在测量电路中引入温漂误差。 ADuM1400和ADuM1401在微控制器与ADC之 间提供所需的全部信号隔离。本电路还含有标准外部保护功 能,符合IEC 61000 标准。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值