场景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/oracle@bjdb

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)

场景7 Data Guard的更多相关文章

  1. 场景3 Data Management

    场景3 Data Management 数据管理 性能优化 OLTP OLAP 物化视图 :表的快照 传输表空间 :异构平台的数据迁移 星型转换 :事实表 OLTP : 在线事务处理 1. trans ...

  2. Data Guard组件等相关介绍

    1.Data Guard组件介绍  Data Guard架构归类为3个主要的组件. Data Guard 重做传输服务  重做传输服务用来将主数据库生成的重做数据传输给备用数据库. Data Guar ...

  3. Data Guard 介绍

  4. 一步一步搭建 Oracle Data Guard

    前言 为什么要写前言,因为我要吐槽一下.作为一个Java后端,搭建Oracle Data Guard真的是一件,嗯,既不专业也不擅长的事情,然而,为什么还是要我来弄? 因为DBA出差了,我们这边急着要 ...

  5. Oracle 19c Data Guard DML Redirection ADG备库上执行DML重定向(未来更好的进行读写分离)

    资料来自官方网站: https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/managing-oracle-data-g ...

  6. Oracle Data Guard的配置

    概述 Oracle Data Guard 是针对企业数据库的最有效和最全面的数据可用性.数据保护和灾难恢复解决方案.它提供管理.监视和自动化软件基础架构来创建和维护一个或多个同步备用数据库,从而保护数 ...

  7. 场景4 Data Warehouse Management 数据仓库

    场景4 Data Warehouse Management 数据仓库 parallel 4 100% —> 必须获得指定的4个并行度,如果获得的进程个数小于设置的并行度个数,则操作失败 para ...

  8. 【原】Configuring Oracle Data Guard In Physical Standby Database

    作者:david_zhang@sh [转载时请以超链接形式标明文章] http://www.cnblogs.com/david-zhang-index/p/5042640.html参照文档:https ...

  9. DG - 开启Active Data Guard

    在配置active data guard之前,phycial standby必须处于以下两个状态之一: (1)standby处于mount状态,并且redo apply正在运行中 (2)standby ...

随机推荐

  1. 《OOAD与UML那点儿事》目录索引

    关键字:OOAD.UML.设计模式 各位园友,大家好,我是Bobby,在学习OOAD和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料 [内容简介]掌握某种开发语言,让你实现了由零到一的脱 ...

  2. ASP.NET MVC Jquery Validate 表单验证的多种方式

    在我们日常开发过程中,前端的表单验证很重要,如果这块处理不当,会出现很多bug .但是如果处理的好,不仅bug会很少,用户体验也会得到很大的提升.在开发过程中我们可以不借助 JS 库,自己去手写 JS ...

  3. 上传文件fileupload

    文件上传: 需要使用控件-fileupload 1.如何判断是否选中文件? FileUpload.FileName -  选中文件的文件名,如果长度不大于0,那么说明没选中任何文件 js - f.va ...

  4. DNS域名解析服务器

    域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...

  5. C# 基础知识总结

    要学好C#,基础知识的重要性不言而喻,现将常用到的一些基础进行总结,总结如下: 1. 数据类型转换: 强制类型转换(Chart--> int):  char cr='A';   int i = ...

  6. java:经典消费生成者

    产品类: public class Info { private String title = "生产"; private String content = "生产罐头& ...

  7. [分享] IT天空的二十二条军规

    Una 发表于 2014-9-19 20:25:06 https://www.itsk.com/thread-335975-1-1.html IT天空的二十二条军规 第一条.你不是什么都会,也不是什么 ...

  8. linux command

    ubuntu start network:sudo service network-manager start

  9. centos 安装mongodb

    原文引用:http://blog.chinaunix.net/uid-24250828-id-3770298.html 官方网站: http://www.mongodb.org/ MongoDB 安裝 ...

  10. cordova 下载更新

    function UpdateForAndroid(downloadUrl) { $ionicLoading.show({ template: "已经下载:0%" }); var ...