DataGuard

一、容灾复制方案

1、阵列的复制技术(硬件)

通过在阵列之间进行复制,异地保存数据

对存储设备和网络环境要求比较高。

2、基于逻辑卷的复制技术(操作系统层面)

通过LVM的镜像技术来实现。

3、基于 Oracle 的 redo log 的复制(在应用层)

1) DataGuard

2) GoldenGate

3) Stream

二、什么是DG

1)不同于RAC保护主机,DG保护的是数据库

2)主库(一个)和备库(可以多个),异地容灾

3)物理DG和逻辑DG

逻辑复制:将主库的redo log传递到备库后,再利用logminer 的工具,从redo log中解析出sql语句,在备库执行,保证和主库同步。(主库和备库可以是不同的环境,备库可以处于读写状态)逻辑备库可以看作是一个单独的库(数据库名和DBID和主库都不一样)。

物理复制:将主库的redo log传递到备库后,备库对redo log日志进行recovery,来和主库保持一致。(主库和备库必须是相同的环境,备库一般处于只读状态)

物理的备库和主库是一样的(比如:数据库名、DBID)

4)Oracle Data Guard

Oracle 成本最低的容灾技术(Oracle企业版自动支持,通过主库和备库来实现容灾;一般主库处于生产环境,备库处于备份状态,或者可以利用备库做数据查询、生成报表、数据备份等减轻主库的压力)

主库将redo log传递到备库上,备库对redo log进行应用以保持和主库的同步。

(物理----RECOVERY,逻辑-----应用sql语句)

5)DG 环境

主库1个,备库最多可以有 9 个

1、主库和备库之间都是单实例

2、主库是RAC,备库是单实例

3、主库是RAC,备库也是RAC(MAA实现最高可用性)

三、DG的保护模式

1.最大保护(Maximum Protection)

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

2.最高可用性(Maximum availability)

这种模式在不影响 Primary 数据库可用前提下,提供最高级别的数据保护策略。其实现方式与最大保护模式类似,也是要求本地事务在提交前必须至少写入一台

Standby 数据库的 Standby Redologs 中,不过与最大保护模式不同的是,如果出现故障导致Standby数据库无法访问,Primary数据库并不会被Shutdown,而是自动转为最高性能模式,等Standby数据库恢复正常之后,Primary数据库又会自动转换成最高可用性模式。这种方式虽然会尽量避免数据丢失,但不能绝对保证数据完全一致。这种方式要求Standby Database必须配置Standby Redo Log,而Primary Database 必须使用LGWR SYNC,AFFIRM方式归档到Standby Database.

3.最高性能(Maximum performance)

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

这也是创建Standby数据库时,系统的默认保护模式。这种方式可以使用 LGWR ASYNC 或者 ARCH 进程实现,Standby Database也不要求使用Standby Redo Log

四、DG的有关进程

RFS: 在备库上启用的进程,接受重做日志(redo log和arch log)

LNSn: 本地网络服务,在主库上负责传送redo日志

MRP: 备库上管理恢复进程,如果是物理 DG,用于对redo log做recovery

LSP: 备库上逻辑备用进程,逻辑DG,是对redo log中抽取的sql进行应用。

例1:物理DG

条件:2台机器(PROD1;SBDB1)

PROD1:

ALTER DATABASE FORCE LOGGING;

select force_logging from v$database;

SELECT GROUP#, BYTES FROM V$LOG;

SELECT GROUP#, BYTES FROM V$STANDBY_LOG;

ALTER DATABASE ADD STANDBY LOGFILE (‘/u02/oradata/PROD1/slog1.rdo‘) SIZE 50M;

ALTER DATABASE ADD STANDBY LOGFILE (‘/u02/oradata/PROD1/slog2.rdo‘) SIZE 50M;

ALTER DATABASE ADD STANDBY LOGFILE (‘/u02/oradata/PROD1/slog3.rdo‘) SIZE 50M;

SELECT GROUP#, BYTES FROM V$STANDBY_LOG;

SELECT * FROM V$LOGFILE;

SHOW PARAMETER RECOVER;

NAME     TYPE VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest     string /home/oracle/flash

db_recovery_file_dest_size     big integer 4G

recovery_parallelism     integer 0

archive log list;

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     5

Next log sequence to archive   8

Current log sequence       8

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE OPEN;

在initPROD1.ora文件最后添加一下内容

DB_UNIQUE_NAME=PROD1

LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(PROD1,SBDB1)‘

LOG_ARCHIVE_DEST_1=

‘LOCATION=/home/oracle/arch

VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=PROD1‘

LOG_ARCHIVE_DEST_2=

‘SERVICE=SBDB1 ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=SBDB1‘

FAL_SERVER=SBDB1

DB_FILE_NAME_CONVERT=‘/u03/oradata/SBDB1‘,‘/u02/oradata/PROD1‘

LOG_FILE_NAME_CONVERT=‘/u03/oradata/SBDB1‘,‘/u02/oradata/PROD1‘

STANDBY_FILE_MANAGEMENT=AUTO

在tnsnames。ora文件下创建SBDB1配置

更名spfilePROD1.ora为spfilePROD1.ora.bak

将initPROD1.ora生成spfilePROD1.ora文件

重新启动数据库

将initPROD1.ora文件拷贝至node02机器中

STANDBY database

SBDB1:

更改initPROD1.ora部分内容,并创建相关目录

将改变后的initPROD1.ora文件变成initSBDB1.ora文件

生成SBDB1密码文件

在listener.ora文件中添加SBDB1属性,同时也在TNSNAMEs.ora文件中添加SBDB1属性

启动监听

进入sqlplus界面

生成 SBDB1的spfile

create spfile from pfile=‘initPROD1.ora‘;

启动到nomount的状态

PROD1:

rman target sys/[email protected] auxiliary sys/[email protected] nocatalog

duplicate target database for standby from active database  dorecover nofilenamecheck;

SBDB同步数据

sql > recover managed standby database using current logfile disconnect from session;

recover managed standby database cancel;

alter database open;

recover managed standby database using current logfile disconnect from session;

时间: 2024-08-02 21:37:44

DataGuard的相关文章

Oracle 11g Dataguard 配置,维护与详解 (ADG)

一.前言: 本手册主要记录如何配置,还介绍了配置原因,以及注意要点,已经主备切换,以及故障转移等重要操作步骤,我希望这个文章可以作为进行dataguard配置的一个参考手册. 二.前提 1.主库是归档模式: 如果我们不清楚为什么是归档模式,那我们就应该也不会清楚dataguard是用来做什么的.透过很多修饰的官方语言,我们需要明确DG(dataguard简称,后同)实际上的作用就是用来高可用.而实现原理就是从主库获取数据到从库,在主库发生异常的时候,从库接管主库,完成身份的变化.可以一个主库,最

oracle11g dataguard 完全手册

一.前言: 网络上关于dataguard的配置文章很多,但是很多打着oracle11g的文章实际都是只能在9 10 上运行,比如FAL_CLIENT在11g中已经废弃,但是现在网络上的文章都是没有标注这一点.而且对于具体含义语焉不详对于新手只能知其然而不知其所以然.这篇文章我就想让像我这样的人对于dataguard配置不仅仅知道怎么配置,还要知道为什么需要这样配置,这样的效果才是最好的. 这篇文章不仅仅是记录如何配置,还介绍了为什么是这样,以及注意要点,我希望这个文章可以作为进行dataguar

Oracle 11.2.0.4.0 Dataguard部署和日常维护(6)-Active dataguard

1. 检查主备库的状态 on primary column DATABASE_ROLE format a20 column OPEN_MODE format a15 column PROTECTION_MODE format a20 column SWITCHOVER_STATUS format a20 select DATABASE_ROLE,OPEN_MODE,PROTECTION_MODE,SWITCHOVER_STATUS from v$database; DATABASE_ROLE O

Oracle数据库集群容灾实施与维护(RAC+DataGuard+GoldenGate)培训教程

套餐介绍: 风哥Oracle数据库集群容灾(RAC+DataGuard+GoldenGate)实施与维护培训教程套餐)包括内容: Oracle12c DataGuard容灾实施与维护1+1, Linux系统Oracle RAC 12C安装实施与维护, Oracle11gR2 RAC下DataGuard容灾实施与维护2+1, Linux系统Oracle RAC 11gR2安装与维护, Linux系统上安装Oracle12c数据库, Linux上安装Oracle11g数据库, Linux系统安装Or

【DATAGUARD】物理dg配置客户端无缝切换--Fast-Start Failover的配置

[DATAGUARD]物理dg配置客户端无缝切换--Fast-Start Failover的配置 一.2.2  实验环境介绍 项目 主库 dg库 db 类型 单实例 单实例 db version 11.2.0.3 11.2.0.3 db 存储 FS type FS type ORACLE_SID oradg11g oradgphy db_name oradg11g oradg11g 主机IP地址: 192.168.59.130 192.168.59.130 OS版本及kernel版本 RHEL6

使用broker监控dataguard

使用broker查看dataguard信息时有告警 DGMGRL> show configuration; Configuration - DRTEST Protection Mode: MaxPerformance Databases: ora11gn1 - Primary database ora11gn2 - Physical standby database Warning: ORA-16792: configurable property value is inconsistent w

【DATAGUARD】物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误

[DATAGUARD]物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Data Guard Broker 的配置 ② Fast-Start Failover 的配置 ③ Oracle DataGuard 之客户端TAF 配置 ④ 使用DGMGRL 来管理数据库

Oracle学习之DATAGUARD(六) 创建和启用Broker配置

DataGuard Broker是一个分布式管理架构用于自动创建.维护和监视dataguard配置.你可以使用OEM(图像化界面)或者DGMGRL(命令行方式)进行以下操作:1.创建和激活dataguard配置,包括设置redo transport services and log apply services2.可以在任何系统管理这个配置中的整个dataguard配置(所有的主库和备库)3.管理和监视包含RAC primary或standby数据库的dataguard配置4.简化角色切换操作,

Oracle学习之DATAGUARD(一) DG架构

DataGuard运行原理非常简单:传输日志.应用日志.下图表示了DG的基本架构 日志传输服务将主库产生的日志数据传到从库. 应用服务(Apply Service)验证日志数据,并且更新从库的数据文件. 主数据库的写进程更新数据文件,并不依赖于DataGuard架构. 当网络或者从库故障恢复时,DG自动重传已经被主库归档的日志数据. 日志传输服务Redo Transport Services Redo Transport Services协调主从库之间的日志传输.当主库LGWR写日志时,Log

ORACLE 11G DataGuard的一些高级管理案例研究

搭建完了ORACLE 11G dataguard后,也做了角色切换的实验,有switchover已经failover,感觉受益颇多,而后继续研究了下dataguard的一些高级管理功能,所谓冰山一角,ORACLE果然博大精深,总结记录如下:1,ORACLE 11G dataguard的高级管理1.1.READ ONLY/WRITE模式打开物理STANDBY一般standby都是可以设置为mount状态的,于物理standby 可以有效分担primary 数据库压力,提升资源利用,实际上说的就是这