Oracle主库redo传输至备机,oracle物理DG管理-redo数据传输,应用与三种模式
环境http://blog.csdn.net/sunziyue/article/details/50799648基础之上
1学习配置参数
下列参数为primary 角色相关
*.db_name='orcl' //注意Guard Data中所有数据库DB_NAME应该一致;
*.db_unique_name='orcldg' //配置有效的db_unique_name列表,且负责主备验证内容;
*.log_archive_config='dg_config=(orcl,orcldg)' //同一个Guard Data中所有数据库的db_unique_name;
*.log_archive_dest_1='location=/u01/app/oracle/archivelogvalid_for=(all_logfiles,all_roles) db_unique_name=orcldg' //本地归档文件路径;
*.log_archive_dest_2='service=orcl lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl' //远程归档文件路径,负责传输重做等;
service:远程备库网络服务名
lgwr或者arch: lgwr或者arch进程传输主库的redo数据
sync或者async: 同步或者异步传输
affirm与noaffirm: affirm表示只有当日志写入standby重做日志后才算日志传输成功,noaffirm则没有这个要求;
reopen:主数据库重新连接备库的时间
net_timeout:当采用sync传输模式时,超过多少秒则表示网路超时(默认为30s),建议设置改参数;
valid_for:定义使用log_archive_dest_n参数归档,控制主备库是否可以归档在线日志文件或者归档备用日志文件,有如下子参数:
online_logfile:仅归档联机日志文件
standby_logfile:归档备用日志文件
all_logfiles:归档所有日志文件
primary_role:在主角色起作用
standby_role:在备角色起作用
all_roles:在所有角色起作用
compression:传送中进行压缩,
delay:在备库延迟应用redo的时间(秒/单位)
*.log_archive_dest_state_1=enable //控制相关归档路径是否生效;
*.log_archive_dest_state_2=enable //控制相关归档路径是否生效;
*.log_archive_max_processes=10 //归档进程数量;
以下参数为主库转为standby 角色时相关的参数
*.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcldg'
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcldg' //当备库和主库文件不同,彼此切换主备的时候使用该参数转换;
*.fal_server=orcl //用于管理归档中断,FAL(fetch archive log),响应传输归档的库;
*.fal_client=orcldg
*.standby_file_management=auto//如果主库数据文件发生某些修改,是否自动同步到备库;
2三种模式
比较项
最大保护
最高可用
最大性能
Redo写或传输进程
lgwr
lgwr
lgwr或者arch
网络传输模式
sync
sync
sync或者async
是否落盘确认
affirm
affirm
affirm或者noaffirm
standby redologs
需要
需要
可有可无
(1)设置参数位置
主库log_archive_dest_n参数设置
示例:*.log_archive_dest_2='service=orcl lgwr sync affirm
valid_for=(online_logfiles,primary_role) db_unique_name=orcl'
(2)重要参数分析
arch:只支持最大性能模式。归档日志通过primary上的arch进程传送给standby的rfs进程,保存到指定路径(如果有standby redo logfile,则保存到该位置,然后再归档),然后redo应用。
( 图片来自互联网)
lgwr:primary使用LGWR即时将日志传送到standby的rfs进程,并保存到standby redo logfile中,而不再需要等到归档操作时才传送,保存到standbyredo logfile,然后再归档,然后redo应用。
用LGWR传输大致如下:
1)主库:只要有新的重做日志产生,lgwr进程将触发LNSn进程把新生成的日志传输给备库rfs进程。
2)备库:rfs进程接收到日志后,将其写入standby重做日志,如果备库开启了实时应用,就立即做日志应用,如果没有开启,则等standby重做日志归档后再应用。
3)其中,async和sync的区别在于:sync是在redo还在内存时,LNSn进程就开始传输,而async是在redo写到online redo log后,LNSn才开始传输。
同步的实时性来看,lgwr(sync) > lgwr(async)> arch
sync模式下,主库产生任何redo时,同时马上触发网络传输给备库RFS进程;
async模式下,主库产生redo时,先写到本地online redo logfile文件中,LNSn进程从online redo logfile文件中取redo数据网络传输给备库RFS进程。
(3)模式切换
首次performance>>availability>>protection顺序需要在主库执行且主库必须处于mount状态;
如果已经由performance>> availability>>protection数据保护级别操作过1次,那么再次操作时可直接操作;
protection>>availability>>performance顺序直接操作即可
主备库操作:SQL>select database_role,protection_mode,protection_level from v$database;
主库更改log_archive_dest_n参数配置,如:
SQL>alter system set log_archive_dest_2='service=orcldg lgwr sync valid_for=(online_logfiles,primary_role) db_unique_name=orcldg';
主库操作:SQL> shutdown immediate;
备库操作:alter database recover managed standby database cancel;
主库操作:SQL>startup mount;
主库操作:SQL>alter database set standby database to maximize availability;
主库操作:SQL>alter database open
完成。
问题
当切换为alter database set standby database to maximize protection;之后alter database open报错
alter database open
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 10711
Session ID: 1 Serial number: 5
解决:读alert_orcl.log,我这里是备库端监听没有启动,启动了问题就解决了。
Fatal NI connect error 12541, connecting to:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=orcldg)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcldg)(CID=(PROGRAM=oracle)(HOST=orcldg)(USER=oracle))))
VERSION INFORMATION:
TNS for Linux: Version 11.2.0.4.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
Time: 08-MAR-2016 21:14:11
Tracing not turned on.
Tns error struct:
ns main err code: 12541
TNS-12541: TNS:no listener
ns secondary err code: 12560
nt main err code: 511
TNS-00511: No listener
nt secondary err code: 111
nt OS err code: 0
***********************************************************************
3备库怎样应用redo数据
启动实时应用://备库MRP进程直接读取standbyredo logfile应用
alter database recover managed standby database using current logfile disconnect from session;
取消实时应用:alter database recover managed standby database cancel;
延迟应用数据:
主库*.log_archive_dest_2='service=orcl…'参数中指定delay属性(如果备库实时应用redo数据,delay则不起作用)
备库配置:alter database recover managed standby database delay 10 disconnect from session;//举例
取消延时应用数据:alter database recover managed standby database nodelay;
备库启动遇到问题
SQL> startup
ORA-10458: standby database requires recovery
ORA-01196: file 1 is inconsistent due to a failed media recovery session
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
原因是由于某些redo没有传输到备库,可能落后了很多归档文件
处理:
1)备库查询:SQL>select process,client_process,sequence#,status from v$managed_standby;//定位正在应用的日志文件
select max(sequence#) from v$archived_log;
2)主库查询:SQL> select process,client_process,sequence#,status from v$managed_standby;//查询主库当前写到的日志文件
select max(sequence#) from v$archived_log;
3)对比备库与主库之间的待传输应用日志文件,从主库拷贝到备库归档路径
4)备库注册
ALTER DATABASE REGISTER PHYSICAL LOGFILE '/u01/app/oracle/archivelog/xxx.dbf' ;
5)备库应用redo
alter database recover managed standby database disconnect from session;
即可。
Oracle主库redo传输至备机,oracle物理DG管理-redo数据传输,应用与三种模式相关推荐
- Oracle主库redo传输至备机,关于Oracle Dataguard 日志传输状态监控问题
ORACLE DATAGUARD的主备库同步,主要是依靠日志传输到备库,备库应用日志或归档来实现.当主.备库间日志传输出现GAP,备库将不再与主库同步.因此需对日志传输状态进行监控,确保主.备库间日志 ...
- oracle物理DG管理-redo数据传输,应用与三种模式
环境http://blog.csdn.net/sunziyue/article/details/50799648基础之上 1学习配置参数 下列参数为primary 角色相关 *.db_name='or ...
- 关于oracle的物理dg,oracle物理DG管理-redo数据传输,应用与三种模式
环境http://blog.csdn.net/sunziyue/article/details/50799648基础之上 1学习配置参数 下列参数为primary 角色相关 *.db_name='or ...
- oracle dg3种模式,DG有下面三种模式 逻辑standby和物理standby
DG有下面三种模式 – Maximum protection – Maximum availability – Maximum performance 在Maximum protection下, 可以 ...
- Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置
之前我们讨论过<Linux Oracle 11g dataguard物理standby 配置过程>, 但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种 ...
- oracle判断空值的函数nvl2,【PL/SQL】 NVL,NVL2,COALESCE 三种空值判断函数
看完这章你会学习到以下内容: 它们各自的用法 它们的不同之处 NVL函数 NVL(E1, E2)的功能为: 如果E1为NULL,则函数返回E2,否则返回E1本身 例子:如果EMP表上COMM奖金为NU ...
- dg oracle 切换模式_Oracle数据库 DGbroker三种保护模式的切换
1.三种保护模式 – Maximum protection 在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才 ...
- oracle dg apply lag,Oracle数据库 DGbroker三种保护模式的切换
1.三种保护模式 – Maximum protection 在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才 ...
- Oracle数据库基础入门《一》Oracle服务器的构成
Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...
最新文章
- 红曲面怎么做_新年就要“红”运当头 买款高颜值红色旗舰让年味更浓
- Lync 2013就地升级到Skype for Business 2015-01
- 25、HTML 文本格式化
- centos 无法连接网络
- leetcode 86. 分隔链表(链表)
- 没有安装opencv的linux系统上运行基于opencv,Linux环境下安装OpenCV
- 基于Swoole和beanstalkd实现多进程处理消息队列。
- 非华为电脑安装华为电脑管家,实现与手机平板的多屏协同
- c语言开发环境win10,老司机解决win10系统搭建C语言开发环境的操作技巧
- 如何快速比对表格数据
- C++笔记:奇葩排序之猴子排序、珠排序、面条排序
- 抢红包案例分析以及代码实现(二)
- 软件架构设计原则-开闭、依赖倒置、单一职责、接口隔离、迪米特、里氏替换、合成复用,附Java语言示例讲解
- flex布局实现无缝滚动
- 【数学建模】数学建模(一)——数学模型概述
- 禁止 mysql nobody_Warning: mysql_real_escape_string(): Access denied for user 'nobody'@'localhost'
- 细节决定成败,数据中心标签管理的重要性
- javascript搜索框联想搜索_jQuery搜索框效果实现代码(百度关键词联想)
- 信号盒子连接服务器,【当贝市场】简单4步解决电视盒子没信号问题
- Photoshop 2020 入门到精通视频教程共57节课程
热门文章
- 经典网页设计:20个值得关注的创意作品集网站示例
- oracel 行转列 unpivot函数
- css高度自适应出现盒子高度塌陷问题
- 《C语言杂记》理解字符串处理函数 strlen() strcpy() strcat() strcmp()
- 一颗二叉树中的结点个数与结点度数的关系
- 【CGroup原理篇】3. CGroup使用指南
- python周天为一周的开始_Python中的对日期时间的处理
- nullptr VS NULL
- 透析美国次级贷款的危机(中国社科院经济所研究员 左大培)
- RoundingMode.HALF_DOWN和BigDecimal.ROUND_FLOOR区别