场景7 Data Guard

场景7  Data Guard

官方文档 :Oracle Data Guard Concepts and Administration

用于数据容灾,通过主备库同步(主库将redo日志传送到备库,一个主库可对应多个备库(30)),实现异地容灾

1. 构建测试库

2. 构建读写分离的环境

3. 实现滚动升级

4. 数据备份

数据容灾 :

1. 基于存储复制

2. 基于逻辑卷复制(镜像)

3. 基于应用(redo log)

redo log : DML/DDL, 记录数据块变化,用于recovery

RAC 高可用性,一个库可用多个实例来访问

Golden Gate : 更灵活,成本更高

物理备库 :收到redo日志后,直接做recovery

逻辑备库 :收到redo日志后,通过logminer抽取日志中sql, 执行sql

1. physical dg : 相当于主库的克隆,相同的名字,相同的id,支持主库所有的应用,在open状态下只读 read only(Active)可将所有写的操作放在主库上,所有读的操作放在备库上

2. logical dg : 和主库是两个独立的数据库,不同的名字,不同的id, 可以open到读写read write状态,(部分DDL操作及数据类型不受支持,如 lob, 一般可用于建立物化视图,建立辅助索引,升级

1. physical dg的构建

2. 保护模式的切换(最大保护,最佳性能(默认),最高可用性)

3. snapshot dg

4. dg 切换

5. broker (FSF) 自动切换

最大保护模式maximum protection(同步方式sync传送日志) :备库RFS确认后(ack),主库才能完成提交任务,若主库一直收不到确认(默认10分钟),则自动shutdown abort, 因此该模式需要至少两个以上的备库,可以保证数据零丢失(主备库间无任何数据差异),但对生产环境影响 较大,网络必须快,备库不能有问题,不然影响主库

LNS (log network service) : 主库发送日志

RFS (receive file service) :备库接收日志,写入本地standby redo log files

最佳性能模式maximum performance(异步方式async传送日志):不需备库确认日志收到后,主库就能完成提交,若redo日志传送失败,且主库已发生日志切换,可讲archive log传送给备库

最高可用性模式maximum availability(同步方式传送日志):备库RFS确认后(ack),主库才能完成提交任务(最大保护模式),若主库一直收不到确认(默认10分钟),则自动转换成最佳性能模式,恢复正常后,又自动转换成最大保护模式

MRP (media recover process) : 介质恢复进程

LSP (logical standby coordinator process) : 逻辑

eg :

desc v$database

select name, force_logging from v$database;

alter database force logging;

archive log list;

搭建DG :

1. 修改初始化文件

eg :

show parameter spfile;

create pfile from spfile;

cd $oracle_home/db

vi init.ora

GAP : 日志间隙

FAL_SERVER :

DB_FILE_NAME_CONVERT=‘/u01/app/oracle/oradata/shdb/‘, ‘/u01/app/oracle/oradata/prod/‘, ‘/u01/app/oracle/oradata/shdb/‘, ‘/u02/app/oracle/oradata/prod/‘

LOG)FILE_NAME_CONVERT=…

数据文件路径转换 :主备库数据文件路径不一致

eg :

select name from v$datafile;

select member from v4logfile;

eg :

startup force gnomon pfile=‘ORACLE_HOME/dbs/initprod.ora’;

show parameter name

show parameter log

create spoil from file;

startup force mount;

alter database create standby controlfile as ‘/home/oracle/std_control01.ctl’;

su -oracle

tail -f /u01/app/oracle/diag/

vi etc/hosts

ping …

cd $ORACLE_HOME/dbs

ls

scp initprod.ora enmo:$ORACLE_HOME/dbs/initshdb.ora

scp orapwprod enmo:$ORACLE_HOME/dbs/orapwshdb

scp /home/oracle/std_control

cd /u01/app/oracle/oradata/prod

scp *.dbf enmo:/u01/app/oracle/oradata/shdb

备库:

mkdir -p /u01/app/oracle/oradata/shdb

chown -R oracle:oinstall /u01/app/oracle/oradata/shdb

mkdir op /dsk1/arch_shdb

chown -R oracle:oinstall /dsk/arch_shdb

recover managed standby database disconnect from session;

recover managed standby database cancel;

主备库切换 :

1. switchover 正常手工切换

2. failover 容灾切换 :主库down了,将备库强制切换成主库

eg :

alter system switch logfile;

select name, dbid, database_role, protection_mode, switchover_status from v$database;

select username, sid from v$session where username is not null;

alter database commit to switchover to standby; (主库切换到备库)

alter database commit to switchover to standby with session shutdown; (主库切换到备库, 强制关闭会话)

shutdown immediate;

startup mount;

select name, dbid, database_role, protection_mode, switchover_status from v$database;

备库 :

select name, dbid, database_role, protection_mode, switchover_status from v$database;

select username, sid from v$session where username is not null;

select name, dbid, database_role, protection_mode, switchover_status from v$database;

alter system kill session; (强制杀掉绘画)

alter database commit to switchover to primary;

alter database open;

recover managed standby database disconnect from session;

select max(sequence#) from v$archived_log;

desc v$archive_dest

select name, database_role, protection_mode, switchover_status from v$database;

snapshot dg : 用于应用测试,建立快照,生成一个还原点,测试期间不能和主库同步,但可以继续接收主库的日志,测试完成后,回到还原点,开始recover

snapshot 保存到 recover area

show parameter recover

alter system set db_recovery_file_dest_size = 2g;

alter system set db_recovery_file_dest = ‘/dsk1’;

alter database convert to snapshot standby;

show parameter recover

show parameter spfile

create spfile from pfile;

startup force mount;

chown -R oracle:dba /dsk1

切换模式 :

shutdown immediate;

startup mount

alter database set standby database to maximize protection;

select name, database_role, protection_mode from v$database;

alter database open;

备库 :

select name, database_role, protection_mode from v$database;

alter database open;

eg :

alter database add standby logfile ‘/u01/app/oracle/oradata/shdb/std_redo01.log’ size 50m;

alter database add standby logfile ‘/u01/app/oracle/oradata/shdb/std_redo02.log’ size 50m;

alter database add standby logfile ‘/u01/app/oracle/oradata/shdb/std_redo03.log’ size 50m;

alter database add standby logfile ‘/u01/app/oracle/oradata/shdb/std_redo04.log’ size 50m;

select member from v$logfile;

select group#, sequence#, status from v$standby_log;

eg :

conn scott/tiger

insert into emp1 select * from emp;

commit

insert into emp1 select * from emp;

select count(*) from emp1;

commit;

主库 :

ifconfig

默认 :MRP只对archive log

eg ;

select group#, sequence#, status from v$standby_log;

recover managed standby database using current logfile disconnect from session; (启动实时应用)

Data Guard Broker

dgmgrl

connect sys/[email protected]

create configuration ‘bjdbcfg’ as primary database is ‘bjdb’ connect identifier is ‘bjdb’;

show configuration

add database ‘shdb’ as connect identifier is shdb maintained as physical;

show configuration

enable configuration; (是Broker生效)

show configuration

edit database ‘bjdb’ set property ‘logxptmode’ = ‘sync’;

edit database ‘shdb’ set property ‘logxptmode’ = ‘sync’;

enable fast_start failover;

show configuration

srvctl (需装GI)

时间: 2024-10-14 03:31:30

场景7 Data Guard的相关文章

Boss要求零数据丢失,Data Guard的三种保护模式如何选择?

公司现在越来越重视数据的灾备,部署了大量的Data Guard和Oracle GoldenGate.核心系统的数据非常重要,大boss的要求很简单就是数据零丢失. 仔细衡量Data Guard的三种保护模式,在最大可用和最大保护之间展开了激烈的讨论.下面从技术层面看看这两种保护模式的特点和区别. 零数据丢失: 在DataGuard中同步传输SYNC(synchronous transport)又称为零数据丢失.因为要等到确认事务恢复所需要的redo数据已经被写入备用数据库的磁盘上(Standby

Oracle Data Guard 概念篇

一个Data Guard 配置由一个生产库和一个或者多个standby数据库组成,在Data Guard配置中,主库和备库都既可以是rac环境,也可以是单机环境. 这篇文章主要介绍dataguard的一些基本知识 dataguard的分类.dataguard的服务类型.dataguard的保护模式 1.Dataguard中的备库分为物理备库和逻辑备库及快照备库 备库是主库的一致性拷贝,使用一个主库的备份可以创建多到30个备库,将其加入到dataguard环境中,创建成功后,dataguard通过

Data Guard 介绍

一.摘要 Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案. DataGuard可以提供Oracle数据库的冗灾.数据保护.故障恢复等,实现数据库快速切换与灾难性恢复. 在生产数据库的保证"事务一致性"时,使用生产库的物理全备份创建备库,备库会通过生产库传输过来的归档日志或重做条目自动维护备用数据库. DataGuard

Data guard概念篇一(转载)

本文转载至以下链接,感谢作者分享! http://tech.it168.com/db/2008-02-14/200802141545840_1.shtml 一.Data Guard配置(Data Guard Configurations) Data Guard是一个集合,由一个primary数据库(生产数据库)及一个或多个standby数据库(最多9个)组成.组成Data Guard的数据库通过Oracle Net连接,并且有可能分布于不同地域.只要各库之间可以相互通信,它们的物理位置并没有什么

YH1:Oracle Data Guard知识库

小编:大家对Oracle DataGuard 应该很熟吧? 众人:那是相当熟. 小编:好的,那我们今天就不讲基础知识了,直入主题!跟不上课的孩子自己回去补. 今天的话题包括: 12.2中ADG的性能与诊断 ADG上部署列式存储 DG跨平台迁移 DG数据恢复 DG的归档管理 12.2中ADG的性能与诊断 在Oracle 12.2中,ADG有许多惊人的改进,通过ADG standby数据库的性能数据收集和诊断.快照standby数据库的应用,以及实时的数据库操作监控的实现,能够根据用户需求相协调来提

Data guard概念篇二(转载)

本文转载至以下链接,感谢作者分享! http://tech.it168.com/db/2008-02-14/200802141545840_1.shtml 一.Standby数据库类型     前章我们简单介绍了Standby数据库,并且也知道其通常分为两类:物理standby和逻辑standby,同时也简短的描述了其各自的特点,下面我们就相关方面进行一些稍深入的研究: 1. 物理standby 我们知道物理standby与primary数据库完全一模一样(默认情况下,当然也可以不一样,事无绝对

Oracle RAC + Data Guard 环境搭建

国庆之前就准备做这个实验了. 后来时间不够,就没搞了. 6天的长假一放,都散漫的不成样子了.懒散了很多. 今天7号. 上班也没啥精神,但是该做的实验还得继续. Oracle 高可用性的三个主要体现是: RAC, Data Guard 和 Stream.  所以熟练掌握这些技术就是评价DBA的标准一个. RAC + Data Guard 主要用在灾备或者报表服务器上. 比如用RAC+ 逻辑standby 做报表,从而减轻RAC 系统的压力. 关于Data Guard 的一些原理知识可以参考: Or

Data Guard - Snapshot Standby Database配置

转载自:https://blogs.oracle.com/Database4CN/entry/data_guard_snapshot_standby_database 概述 一般情况下,物理standby数据库处于mount状态接收和应用主库的REDO日志,物理standby数据库不能对外提供访问.如果需要只读访问,那么可以临时以read-only的方式open物理备库,或者配置ACTIVE DATA GUARD,那么物理standby数据库可以进行只读(read-only)访问(比如报表业务查

ORACLE 11g 用Duplicate恢复Data Guard 备库详细过程

1.先查找备库控制文件路径 先在备库上找出控制文件的路径,通过和主库一样,不过为了以防万一,还是check为好. SQL>  select name from v$controlfile; NAME -------------------------------------------------------------------------------- /Oracle/app/oracle/oradata/powerdes/control01.ctl /oracle/app/oracle/