场景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. Latex图片显示问题(1)

    用latex编译后,若用dvipdf生成pdf文件,则其中有个eps图的左侧会显示不完全:若是用dvips--pspdf生成pdf文件,图像显示没问题. 这种情况的问题出在,加载 graphicx 宏 ...

  2. Openlayers自定义简单popup

    OpenLayers中可以使用很多种类型的popup,大家可以到Openlayers的 popupMatrix.html示例中看.之前存在这样一个错误的想法:popup和marker是绑定的,要有po ...

  3. Lua热更系统

    1.介绍 使用脚本开发游戏业务逻辑其中一个好处就是代码可线上热更,不停机修复bug.而热更代码的写法与需要被热更的文件的代码又有着密切的关系,本文介绍一种热更方法. 2.热更原理 Lua提供一个叫re ...

  4. 总结common-dbutils.jar

    2016/4/13 20:19:36 common-dbutils.jar 最核心的类:QueryRunner updata方法: int update(String sql,Object... pa ...

  5. JS获取元素尺寸大小、鼠标位置

    //e.clientX|Y:表示鼠标相对浏览器可视窗口的当前坐标 //e.offsetX|Y:表示鼠标相对于事件源对象的坐标 //e.pageX|Y:表示鼠标相对于网页的坐标 /* element.o ...

  6. iOS中iconfont(图标字体)的基本使用

    前言 近日在做项目时,项目组有提出iconfont的技术,便开始查询相关资料.iconfont技术的主要目的是为减少应用体积而生.首先icon代表图标 font代表字体.此技术便是将图标转化为字体,从 ...

  7. guardian keytab生成不了

    vim /var/kerberos/krb5kdc/kadm5.acl 将*e改成* /etc/init.d/kadmin restart 重启kadmin

  8. 反射(Reflection)

    反射主要用于在程序运行期间动态解析相关类的类名,命名空间,属性,方法并进行相应操作,以下通过两个简单的例子进行了说明: 示例1:调用程序集内部方法,运行时动态获取相关类的信息,包括类名,命名空间等信息 ...

  9. mysql连接的一些问题。

    最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪.有必要研究下这个问 ...

  10. SPSS数据分析—因子分析

    我们知道主成分分析是一种降维方法,但是其本质上只是一种矩阵变换的过程,提取出来的主成分并不都具有实际含义,而这种含义往往是我们所需要的,接下来的因子分析可以解决这个问题 因子分析可以看做是主成分分析的 ...