oracle recv buf size,oracle dataguard网络最佳实践一

5268f80b9b1e01f982625ef6fac83ca1.png

会和其它程序争夺相同的网络资源,建议根据实际网络和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.oranet_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.oraSID_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.oraLISTENER=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)

(HOST=sales-server)(PORT=1521

(SEND_BUF_SIZE=9375000)

(RECV_BUF_SIZE=9375000)))

未完......

本文出自 “snowhill” 博客,转载请与作者联系!

oracle dataguard网络最佳实践一

标签:oracle dataguard best practices

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://snowhill.blog.51cto.com/339421/1956721

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值