https://docs.oracle.com/cd/B28359_01/server.111/b28294/manage_ps.htm#i1007681

一些官方文档上的内容

DG提供的服务进程

Redo Transport Services
Transmit redo data from the primary system to the standby systems in the configuration
重主库将redo log传送的备库

Manage the process of resolving any gaps in the archived redo log files due to a
network failure
管理网络等原因发生的redo log丢失
 
Automatically detect missing or corrupted archived redo log files on a standby system
and automatically retrieve replacement archived redo log files from the primary
database or another standby database
自动检测备库上丢失或损坏的归档重做日志文件,并从主数据库或另一个备用数据库中自动检索替换的归档重做日志文件

DG的三种保护模式

最大可用模式

这种模式在不影响Primary数据库可用前提下,提供最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台Standby数据库的Standby Redologs中,不过与最大保护模式不同的是,如果出现故障导致Standby数据库无法访问,Primary数据库并不会被Shutdown,而是自动转为最高性能模式,等Standby数据库恢复正常之后,Primary数据库又会自动转换成最高可用性模式。

最大性能模式

缺省模式。 这种模式在不影响Primary数据库性能前提下,提供最高级别的数据保护策略。事务可以随时提交,当前Primary数据库的REDO数据至少需要写入一个Standby数据库,不过这种写入可以是不同步的。如果网络条件理想的话,这种模式能够提供类似最高可用性的数据保护,而仅对Primary数据库的性能有轻微影响。这也是创建Standby数据库时,系统的默认保护模式

最大保护模式

这种模式能够确保绝无数据丢失。要实现这一步当然是有代价的,它要求所有的事务在提交前其REDO不仅被写入到本地的Online Redologs,还要同时写入到Standby数据库的Standby Redologs,并确认REDO数据至少在一个Standby数据库中可用(如果有多个的话),然后才会在Primary数据库上提交。如果出现了什么故障导致Standby数据库不可用的话(比如网络中断),Primary数据库会被Shutdown,以防止数据丢失。
使用这种方式要求Standby Database必须配置Standby RedoLog,而Primary Database必须使用LGWR,SYNC,AFFIRM方式归档到Standby Database.

Apply Services

如果是物理备库,则使用Redo Apply
如果是逻辑备库,使用SQL Apply

Role Transitions

DG备库的分类:

物理备库
逻辑备库
快照备库

软件的限制:

1.oracle是企业版

2.使用物理同步的初始化参数必须一致,逻辑备库可以不同

3.主库必须是归档模式

4.主备库必须有自己的控制文件

5.主库备需要开启FORCE LOGGING

备库目录的结构要点:

归档重做日志文件和备用重做日志文件。最好主系统和备用系统上的数据文件、日志文件和控制文件应该具有相同的名称和路径名称,使用OFA标准。
不然需要设置文件路径或者重命名。我觉得一般DG也不会在一台机器上,在同一机器上也没有上面意义了。

官方提供了3种方式:

1.主备在在同一系统上,这我觉得没什么意义

2.主备在不同的系统上,使用相同的路径

3.主备在不同的系统上,使用不同的路径

最推荐2,3:减少维护的成本。

A standby redo log is similar to an online redo log, except that a standby redo log is used to store redo data received from another database.

安装配置

准备

安装好数据库软件
主库 study 备库 studydg

1…Enable Forced Logging and Enable Archiving
SQL> ALTER DATABASE FORCE LOGGING;

确认

SQL> select SUPPLEMENTAL_LOG_DATA_MIN,FORCE_LOGGING from v$database;SUPPLEMENTAL_LOG_DATA_MI FORCE_LOG
------------------------ ---------
NO           YES
2.Create a Password File(创建密码文件)
[oracle@db-test1 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwstudy password="oracle"  entries=10 force=yorapwd file=$ORACLE_HOME/dbs/orapwSTUDYDG password=oracle entries=10 force=yEnter password for SYS:

主备库密码一致

3.配置tns(主备都需要)
STUDY =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.120)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = STUDY)))STUDYDG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.216.14)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = STUDYDG)))
4.配置参数文件

起的动的参数文件先生成:

SQL> create pfile='/tmp/pfile.txt' from spfile;File created.
5.备库从主备的pfile启动

SQL> startup nomount pfile='/tmp/pfile.ora'
ORACLE instance started.Total System Global Area 1068937216 bytes
Fixed Size          2260088 bytes
Variable Size         285213576 bytes
Database Buffers      775946240 bytes
Redo Buffers            5517312 bytes
SQL> SQL> create spfile from  pfile ='/tmp/pfile.ora';File created.

文档上主要方式是修改参数文件:
实例如下:

DB_NAME=chicago
DB_UNIQUE_NAME=chicago
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl'
LOG_ARCHIVE_DEST_1='LOCATION=/arch1/chicago/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=chicago'
LOG_ARCHIVE_DEST_2='SERVICE=boston ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

也可以使用alter命令来修改,我更习惯这种方式,本次配置如下:

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(STUDY,STUDYDG)';
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/study/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STUDY';
alter system set LOG_ARCHIVE_DEST_2='SERVICE=studydg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STUDYDG' scope=spfile;
alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;
alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;:
alter system set FAL_SERVER=STUDYDG;
alter system set FAL_CLIENT=STUDY;
alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/studydg/','/u01/app/oracle/oradata/study/'  scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/studydg/','/u01/app/oracle/oradata/study/' scope=spfile;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;

备库启动到nomout后执行:

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(STUDYDG,STUDY)';
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/studydg/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=STUDYDG';
alter system set LOG_ARCHIVE_DEST_2='SERVICE=STUDY LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STUDY' scope=spfile;
alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;
alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;:
alter system set FAL_SERVER=STUDY;
alter system set FAL_CLIENT=STUDYDG;
alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/study/','/u01/app/oracle/oradata/studydg/'  scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/study/','/u01/app/oracle/oradata/studydg/' scope=spfile;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;

参数说明:
FAL_SERVER指定一个Oracle Net service name,standby数据库使用这个参数连接到FAL server,这个参数适用于standby站点。比如,FAL_SERVER = PrimaryDB,此处PrimaryDB是一个TNS name,指向primary库。

FAL_CLIENT指定一个FAL客户端的名字,以便FAL Server可以引用standby库,这也是一个TNS name,primary库必须适当配置此TNS name指向stanby库。这个参数也是在standby库端设置。比如,FAL_CLIENT = StandbyDB,StandbyDB是standby库的TNS name。

FAL_CLIENT和FAL_SERVER应该成对设置或改变。

这两个参数只需在standby库设置,但也可以在primary库设置这两个参数,以方便switchover或failover时primary库转变为standby角色

其他的具体设置,可以去官方文档看

5.在primary端通过Rman Duplicate创建备库
[oracle@db-test1 admin]$ rman target 'sys/"oracle"'@study auxiliary   'sys/"oracle"'@studydg nocatalogRecovery Manager: Release 11.2.0.4.0 - Production on Mon Apr 1 18:52:22 2019Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.connected to target database: STUDY (DBID=3020442375)
using target database control file instead of recovery catalog
connected to auxiliary database: STUDY (not mounted)duplicate target database for standby from active database nofilenamecheck;
可以不长时间停机,冷备。

这边特别需要注意的是路径和实例名的大小写。

6.配置日志:

Ensure log file sizes are identical on the primary and standby databases.
主要就是主备的数据库redo log大小一致。

Determine the appropriate number of standby redo log file groups
(maximum number of logfiles for each thread + 1) * maximum number of threads
(每个实例的最大日志文件组数+1)* 最大实例数量

SQL> SELECT GROUP#, BYTES/1024/1024 FROM V$LOG;GROUP# BYTES/1024/1024
---------- ---------------1     252     253     25
主库
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/study/standyredo01a.log') SIZE 25M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/study/standyredo02a.log') SIZE 25M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/study/standyredo03a.log') SIZE 25M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/study/standyredo04a.log') SIZE 25M;备库
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/studydg/standyredo01a.log') SIZE 25M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/studydg/standyredo02a.log') SIZE 25M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/studydg/standyredo03a.log') SIZE 25M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/studydg/standyredo04a.log') SIZE 25M;
7.Start Redo Apply.
SQL> alter database recover managed standby database using current logfile disconnect from session;Database altered.

对应的停止是: alter database recover managed standby database cancel;

8.Verify the Physical Standby Database Is Performing Properly
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered.SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# FIRST_TIME        NEXT_TIME
---------- ------------------- -------------------5029 2019-04-01 21:08:16 2019-04-01 21:58:485030 2019-04-01 21:58:48 2019-04-01 21:59:185031 2019-04-01 21:59:18 2019-04-01 22:00:185032 2019-04-01 22:00:18 2019-04-01 22:08:155033 2019-04-01 22:08:15 2019-04-02 02:23:465034 2019-04-02 02:23:46 2019-04-02 08:02:476 rows selected.

在主库切换日志:

SQL>  aLTER SYSTEM SWITCH LOGFILE;System altered.

next_time有更新

关于ADG和DG:

If a license for the Oracle Active Data Guard option has been purchased, a physical standby database can be open while redo apply is active. This capability is known as real-time query. See Section 9.2.1 for more details.

If a license for the Oracle Active Data Guard option has not been purchased, a physical standby database cannot be open while redo apply is active, so the following rules must be observed when opening a physical standby database instance or starting redo apply:

Redo apply must be stopped before any physical standby database instance is opened.

If one or more physical standby instances are open, those instances must be closed before starting redo apply

如果有授权,开启ADG需要:

 alter database recover managed standby database cancel; alter database open;  alter database recover managed standby database using current logfile disconnect from session;  --开启实时应用

测试:

SQL> create table study.create_dg(id number);
Table created.

备库:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;Database altered.SQL> ALTER DATABASE OPEN;Database altered.SQL> select count(*) from study.create_dg;COUNT(*)
----------0

切换至ADG:

SQL> alter database recover managed standby database using current logfile disconnect from session;Database altered.SQL> SELECT open_mode FROM V$DATABASE;OPEN_MODE
------------------------------------------------------------
READ ONLY WITH APPLY

主库:

SQL> insert into study.create_dg values(1);  1 row created.SQL> commit;Commit complete.

备库:

SQL> select * from study.create_dg;ID
----------1
ADG的限制

STANDBY_MAX_DATA_DELAY如果设置为0

The standby database must receive redo data via the SYNC transport.

The redo transport status at the standby database must be SYNCHRONIZED and the primary database must be running in either maximum protection mode or maximum availability mode.

Real-time apply must be enabled

其他

https://www.oracle.com/technetwork/database/features/availability/maa-wp-11gr1-activedataguard-1-128199.pdf

ORACLE DG(1)基本配置相关推荐

  1. 【Oracle RAC+DG实验】Oracle RAC+ASM+DataGuard配置实验记录+常见问题

    [Oracle RAC+DG实验]Oracle RAC+ASM+DataGuard配置实验记录+常见问题 1.环境规划: ---RAC环境介绍(primary database)            ...

  2. Oracle DG 之--DG Broker 配置基本概念

    Oracle DG 之DG Broker 配置 系统环境: 操作系统: RedHat EL55_64 Oracle:    Oracle 11.2.0.3.0 Data Guard 配置: 主库bjd ...

  3. 在dg中建立oracle,Oracle Dg配置过程

    Oracle Dg配置过程 发布时间:2020-03-02 23:51:19 来源:51CTO 阅读:834 作者:小陈子057 第一章:Dg理论讲述 Data Guard(简称:Dg)是oracle ...

  4. oracle DG模式搭建详解

    oracle DG搭建 安装环境 在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例,dg搭建之后数据会同步过去.    数据库参数优化(也可在spfile文件统 ...

  5. ORACLE DG专题3--手把手部署DG 物理备库

    前言 笔者前文已介绍了ORACLE DG的成员身份与数据保护模式等相关理论知识,从本文开始,将进入ORACLE DG理论与实践相结合模式,深入理解ORACLE DG的内在原理与基本运维技能.本文讲述如 ...

  6. oracle 11g dataguard 安装,oracle 11g dataguard安装配置

    1.判断DataGuard是否安装 select * from v$option where parameter = 'Oracle Data Guard'; 网络配置 192.168.1.10(or ...

  7. Oracle中dg日志同步,oracle DG 日志传输小结

    1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志,其示意图如下: 注:上图来自<大话Oracle RAC> 其大致过程如下: 1)主库:日志先写入 ...

  8. oracle DG日志传输模式详解

    原文来自http://blog.itpub.net/31520497/viewspace-2156783/ 1. 日志传输方式 有两种日志传输方式(ARC和LGWR),第一种是采用ARC进程传输日志, ...

  9. ORACLE DG专题6--重做传输服务

    前言 重做传输服务用于在DG配置间自动传输重做数据.可能的传输目的地有: DG备库 如前文所描述的物理备库.逻辑备库的部署: 归档日志仓库 此目的地用于临时卸载归档日志的存储: oracle 流捕获数 ...

最新文章

  1. JavaScript: 对象
  2. 计算机应用乘法,计算机系统原理(十) 二进制整数的乘法运算和除法运算
  3. 如何通过命令终端访问本地/局域网/远程的MySQL数据库_访问数据库_连接数据库_登录数据库
  4. 云服务器一般选什么系统,云服务器一般选择什么系统好
  5. HoloLens开发手记 - 使用混合现实捕捉 Using mixed reality capture
  6. AndroidStudio_android使用自己封装的消息队列处理问题_封装LinkedQueue---Android原生开发工作笔记242
  7. kettle使用记录
  8. db_name,instance_name,service_names,db_domain,dbid,oracle_sid等区别与联系
  9. Win-MASM64汇编语言-MOV/MOVSB/MOVSW/MOVSD/REP/REPZ/REPE/REPNZ/REPNE
  10. 实验四_078_刘玲志
  11. 使用Telnet 在DS300上配置阵列
  12. Atitit 登录票据安全法 目录 1.1. cookie对象规范 1 1.2. Cookie加解密 1 1.3. Cookie密文动态更换,根据一个时间3天比如 1 1.4. 服务端撤销key 1
  13. [FJOI2014] 石子合并问题
  14. 抽象代数之可解群的子群是可解群以S4为例
  15. arcgis 10 扩展模块授权无效的解决方法
  16. yocto相关class总结
  17. google 图片搜索API
  18. 机器学习笔记week1——奥卡姆剃刀原则、L1与L2范数正则化、模型泛化性
  19. 如何编写ddos防御脚本
  20. 考拉海购操作教学-API接口

热门文章

  1. Java开发实战经典第二版,小白也能看明白
  2. 捷径从html制作多信息文本,捷径详情介绍
  3. 生物智能发展和对AI的启发
  4. 格言警句收集2-双语对照
  5. 聚焦2021云栖大会,边缘云专场畅谈技术应用创新
  6. mblock机器人指令_慧编程(mBlock 5)+程小奔 机器人系列课程(合集)
  7. 计算机毕业设计ssm毕业生派遣系统
  8. w7系统计算机搜索无法搜索了,Win7系统搜索功能失效不能用解决方法
  9. python获取12306验证码
  10. 手把手教写拖拽布局插件(辅助线功能篇)