oracle dataguard网络最佳实践一

oracle dataguard redo 网络最佳实践(简译)

oracle dataguard好处:

1 对系统性能影响最小

这里有两个最高可用架构(MAA)场景配置,在有足够带宽的情况下,得出如下结论:

1 DG在纽约和蒙特利尔(300英里的距离,10MS的往返延迟),使用实时模式,在redo 4MB/s生成速率下,可以做到对生产系统5%的性能影响和零数据丢失;

2 在波士顿和伦敦之间(3300英里,100MS往返延迟),使用异步模式,在20MB/s的日志生成速率下,可以做到对系统5%以下的影响;

2 最高级别数据保护模式:

1  同步模式,0数据丢失,两者的距离建议在百公里左右;

2  异步传输模式,适用远距离,高延迟的环境,例如:从香港到新加坡,超过1600英里,有50MS的延迟,2MB/s的日志生成速率,可以接受3s内的数据失失环境。

3 增强的归档日志传输:在发生网络或standby系统故障时,需要重同步时可以被加速。例如:1GB的日志文件需要用归档进程传输,可以减少至55%的传输时间,在快速重同步的过程中,关键数据是处于一种保护模式的;

3 快速的switchover/failover,秒级切换

REDO传送最佳实践

DG提供了三种传输方式:arch,lgwr async,lgwr sync,下面描述这几种方式对网络需求和最佳配置。

1 带宽选择

 根据awr reports:3MB/s的在高峰期,需要3*8*1024*1024/1000/1000=25.2Mbps,通常来说53KM增加1ms的延迟,同时还得考虑网络中继器,系统性能,网络自有的包流量。为了测试RTT的延迟,可以用traceroute跟踪一下;

2 DATAGuard的保护模式设置

如果用LGWR SYNC同步模式,如果网络不足以处理redo的生成量,将会影响生产机的性能;相反,用LGWR ASYNC模式,还是使用online redolog传输,在redo生成高峰期超过了网络流量却不会对生产系统造成影响。使用ARCH传输本地归档文件,也不会对生产系统产生影响(但是和lgwr async比,丢失数据的风险的可能性将大大增加)所以一旦网络间的传输方式确定,自行选择下面的最佳实践方式:

2.1 ARCH传输模式

 增加ARCN的进程数量,初始数量为2;log_archive_max_processes控制最大归档进程数;在oracle 10.2以后的版本中,这个值最大为30,以前的版本最大为10;ARCn进程可以加快处理archive gap。当主机端设置了MAX_CONNECTIONS参数,大量的ARCn进程可以加快并行处理,

注意:

a) log_archive_max_Processes会和其它程序争夺相同的网络资源,建议根据实际网络和ARCHIVE GAP场景设置最优的log_archive_max_processes;

b)

源端max_connections设置大于等于2,这样可以减少archive log的传输时间,此值最大为5;

2.2 lgwr async传输模式

从oracle 10.2开始,生产库需保证有足够的I/O带宽用于LNS处理在线事务日志。在性能测试中测出额外的读取量;

2.3 LGWR SYNC Redo传输

设置NET_TIMEOUT属性(生产库的网络服务对LGWR请求的响应时间等待多少秒,以减少网络丢包对生产库的影响;

在oracle 10.2里NET_TIMEOUT值为180秒;官方推荐此值的最低值为10秒,当然你可以设成最小值1秒,但是如果网络不稳定延迟会导致数据保护模式的不停切换;

使用lgwr sync方式,事务提交时会确认本地和远端的数据库;针对两种提交方式:commit wait&commit nowait :commit nowait方式可以只返回给应用程序结果而不用去确认redo是否写到磁盘了;因此commit nowait和默认的wait值相比可以改善应用或事务的响应时间。

除此之外还注意:

1 配置单次1MB 的I/O写满写入请求,详细在见Best practices for creating a low Cost Storage Grid for oracle Databases;

2 standby redlog在快速磁盘上;

3 不要一组多个standby redolog,如果多个的话,会增加额外的写请求;

网络最佳实践

说明:以下所有设置针对Linux,其他平台设置自行参考

1 主备之间的带宽一定要足够

2 配置RECV_BUF_SIZE,SEND_BUF_SIZE等于3倍的BDP(bandwidth delay product,传播时延*网络带宽),这个可以增加网络的带宽流量;

译者注:

RECV_BUF_SIZE:在TCP/IP/SSL协议里,以字节方式指定会话的接受缓冲区

配置:sqlnet.ora

net_service_name= 
 (DESCRIPTION= 
   (ADDRESS_LIST=
     (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521)
        (RECV_BUF_SIZE=11784))
     (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521)
        (RECV_BUF_SIZE=11784))
   (CONNECT_DATA=
     (SERVICE_NAME=sales.us.example.com)))

SEND_BUF_SIZE类似;

参考:http://docs.oracle.com/cd/E11882_01/network.112/e10835/tnsnames.htm#NETRF274

3 配置SDU(Session data unit)=32767

4 增加网络设备的队列大小。如linux增加TXQUEUELENGTH,NET_DEV_MAX_BACKLOG

TXQUEUELENGTH在linux用ifconfig配置网卡时可配:ifconfig eth1 TXQUEUELENGTH 5000,

启动时就设置

vi /etc/rc.local
/sbin/ifconfig eth0 txqueuelen 5000

NET_DEV_MAX_BACKLOG属于内核参数,

vi /etc/sysctl.conf
net.core.netdev_max_backlog = 32768

5  配置orcle Net TCP_NODELAY=yes

oracle SDU(session data unit)大小说明

通过网络传送数据时,oracle的网络组件会缓冲SDU。当大量的或者连续的数据需要传送时,增加SDU缓冲区可以提高网络的利用率。

SDU的配置

vi sqlnet.ora
default_sdu_size=32767
在配置tnsnames.ora也可以:
sales.us.acme.com= 
(DESCRIPTION=  
    (SDU=32767)  
      (ADDRESS=(PROTOCOL=tcp) 
      (HOST=sales-server) 
      (PORT=1521)) 
    (CONNECT_DATA= 
     (SID=sales.us.acme.com)) 
)

配置listener.ora

SID_LIST_listener_name= 
 (SID_LIST=  
   (SID_DESC= 
    (SDU=32767) 
    (GLOBAL_DBNAME=sales.us.acme.com) 
    (SID_NAME=sales) 
    (ORACLE_HOME=/usr/oracle)))

TCP套接字缓冲区大小

TCP套接字区缓冲区控制网络带宽的可用量,其并不考虑网络中可使用的实际带宽。当网络延迟比较高时,较大的套接字缓冲区可更有效的利用网络带宽;

BDP大小测算:

BDP= 1,000 Mbps * 25msec (.025 sec)

1,000,000,000 * .025

25,000,000 Megabits / 8 = 3,125,000 bytes

套接字区缓冲区=3*BDP

socket buffer size = 3 * bandwidth * delay

= 3,125,000 * 3

= 9,375,000 bytes

套接字区缓冲区由应用程序控制,这里是oracle 的网络服务控制;编辑sqlnet.ora

RECV_BUF_SIZE=9375000

SEND_BUF_SIZE=9375000

或者配置服务名:

vi tnsnames.ora
standby = 
 (DESCRIPTION=  
   (SEND_BUF_SIZE=9375000) 
   (RECV_BUF_SIZE=9375000) 
     (ADDRESS=(PROTOCOL=tcp) 
     (HOST=hr1-server)(PORT=1521)) 
   (CONNECT_DATA= 
     (SERVICE_NAME=standby)))

配置监听文件listener.ora

 LISTENER= 
  (DESCRIPTION= 
    (ADDRESS=(PROTOCOL=tcp) 
    (HOST=sales-server)(PORT=1521
    (SEND_BUF_SIZE=9375000) 
    (RECV_BUF_SIZE=9375000)))

未完......

时间: 2024-10-06 23:21:58

oracle dataguard网络最佳实践一的相关文章

虚拟化--网络最佳实践

正确的网络配置是VMware vSphere架构的基础.为实现VMware网络,IT管理员需要了解vSphere宿主机的物理接口和虚拟交换机.学习如何规划vSphere的虚拟网络. VMware vSphere网络从正确安装vSphere网络的ESXi宿主机开始,包括对分布式.标准.虚拟或物理交换机的选择.最后还有后配置和部署.对虚拟网络的流量监控. 配置虚拟网络的第一步是把vSphere的部署集成到现有架构.您需要确实了解现有架构的状态.例如,如果网络采用了iSCSI(Internet sma

XenServer管理网络做网卡Bond最佳实践

在 XenServer 安装期间,系统会为每个物理网络接口卡 (NIC) 创建一个网络.向资源池添加服务器 时,这些默认网络会进行合并,以便设备名称相同的所有物理 NIC 均连接到同一网络. 通常情况下,如果您想要创建内部网络,使用现有 NIC 设置新 VLAN,或创建 NIC 绑定,只需添加一个新网络即可. 在 XenServer 中您可以配置四种不同类型的网络: 外部网络,与物理网络接口相关联,可在虚拟机与连接到网络的物理网络接口之间提供桥接,从而使虚拟机能够通过服务器的物理网络接口卡连接到

Oracle创建新undo表空间最佳实践(包含段检查)

在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ID 1428786.1) 1.对于ORA 600[4194]的解释 2.创建新undo表空间最佳实践(包含段检查) 1.对于ORA 600[4194]的解释: The following error is occurring in the alert.log right before the da

IOS ---两种网络请求的最佳实践

在使用URL 加载系统时,主要的两种方法可以执行HTTP请求和接收响应: 一.同步请求的最佳实践 只在后台线程中使用同步请求,除非确定请求访问的是本地文件资源,否则请不要再主线程上使用: 只有在知道返回的数据不会超出应用的内存时才使用同步请求.记住,整个响应体都会在位于代码的内存中.如果响应很大,那么可能导致应用出现内存溢出问题.此外,当代吗将响应解析为所需的格式时可能需要复制返回的数据,这会导致内存增加一倍: 在处理返回的数据前,验证错误与调用返回的HTTP响应状态码: 如果源URL需要验证,

决胜大数据时代:Hadoop&Yarn&Spark企业级最佳实践(8天完整版脱产式培训版本)

Hadoop.Yarn.Spark是企业构建生产环境下大数据中心的关键技术,也是大数据处理的核心技术,是每个云计算大数据工程师必修课. 课程简介 大数据时代的精髓技术在于Hadoop.Yarn.Spark,是大数据时代公司和个人必须掌握和使用的核心内容. Hadoop.Yarn.Spark是Yahoo!.阿里淘宝等公司公认的大数据时代的三大核心技术,是大数据处理的灵魂,是云计算大数据时代的技术命脉之所在,以Hadoop.Yarn.Spark为基石构建起来云计算大数据中心广泛运行于Yahoo!.阿

决胜大数据时代:Hadoop&Yarn&Spark企业级最佳实践(3天)

Hadoop是云计算的事实标准软件框架,是云计算理念.机制和商业化的具体实现,是整个云计算技术学习中公认的核心和最具有价值内容. Yarn是目前公认的最佳的分布式集群资源管理框架: Mahout是目前数据挖掘领域的王者:        工业和信息化部电信研究院于2014年5月发布的“大数据白皮书”中指出: “2012 年美国联邦政府就在全球率先推出“大数据行动计划(Big data initiative)”,重点在基础技术研究和公共部门应用上加大投入.在该计划支持下,加州大学伯克利分校开发了完整

MySQL性能优化的21个最佳实践

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被My

ySQL性能优化的21个最佳实践 和 mysql使用索引

MySQL性能优化的21个最佳实践 和 mysql使用索引 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服

Hadoop大数据时代:Hadoop&YarnSpark企业级最佳实践 (4天)

Hadoop.Yarn.Spark是企业构建生产环境下大数据中心的关键技术,也是大数据处理的核心技术,是每个云计算大数据工程师必修课. 大数据时代的精髓技术在于Hadoop.Yarn.Spark,是大数据时代公司和个人必须掌握和使用的核心内容. Hadoop.Yarn.Spark是Yahoo!.阿里淘宝等公司公认的大数据时代的三大核心技术,是大数据处理的灵魂,是云计算大数据时代的技术命脉之所在,以Hadoop.Yarn.Spark为基石构建起来云计算大数据中心广泛运行于Yahoo!.阿里淘宝.腾