如何通过在CentOS系统上对Oracle数据库网络配置进行精细化优化,显著提升数据库性能?

2026-05-27 03:421阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

在数据库运维的江湖里 Oracle数据库跑在CentOS上简直是黄金搭档,稳定、高效,这是大家公认的那个。但是你有没有遇到过这种情况?SQL语句写得无可挑剔, 索引也建得恰到好处,硬件资源更是富得流油, 大体上... 可偏偏查询响应速度就是慢得让人抓狂,甚至有时候还会蹦出几个让人摸不着头脑的连接超时错误。这时候,与其盯着屏幕上的等待图发呆,不如低下头来看看我们经常忽视的基础——网络配置。

第一步:配置静态IP,让服务器有个“家”

栓Q了... Oracle数据库对网络的稳定性有着近乎苛刻的要求。想象一下如果你的IP地址像变脸一样天天换,客户端怎么找你?所以第一步,也是最重要的一步,就是给服务器安个“家”——配置静态IP。DHCP虽然方便,但它就是一颗不定时炸弹。

如何通过在CentOS系统上对Oracle数据库网络配置进行精细化优化,显著提升数据库性能?

我们需要编辑网络接口配置文件。通常,这些文件藏在/etc/sysconfig/network-scripts/目录下。现在的CentOS版本, 网卡名字可能不再是以前那种经典的eth0了你可能会看到ens33或者eno16777736这种长名字,别被吓到,原理都是一样的,推倒重来。。

找到对应的文件,比如ifcfg-ens33,用你最喜欢的编辑器打开它。我们要做的就是把动态获取改为静态指定。 火候不够。 这就像给房子挂牌子,地址必须固定。

DEVICE=ens33 BOOTPROTO=static # 静态IP配置, 拒绝DHCP的摇摆不定 IPADDR=192.168.1.100 # 数据库服务器的尊贵IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关,通往外界的桥梁 DNS1=8.8.8.8 # 首选DNS,解析域名全靠它 ONBOOT=yes # 开机自启,这必须得有

盘它。 这里有个小细节,很多人改完配置直接重启服务器,其实大可不必。施行systemctl restart network或者nmcli connection reload就能让配置生效。改完之后一定要用ip addr show或者老派的ifconfig看一眼,确认IP已经乖乖地挂在了网卡上。如果这时候你还能ping通网关,那恭喜你,第一步已经稳了。

排查网络问题,从“ping”开始

啊这... 先说说最基础的一招:ping。ping 192.168.1.100

如果ping不通, 那问题在操作系统网络层,回去检查你的网线、交换机或者ifcfg文件吧。如果ping通了那就进阶一步,测端口。用t 有啥说啥... elnet或者nc命令:telnet 192.168.1.100 1521 或者 nc -vz 192.168.1.100 1521

最后强调一点。 如果端口显示Connected, 说明路是通的,问题出在Oracle监听器上。这时候去服务器上施行lsnrctl status看看服务是不是READY状态。有时候实例没注册到监听器,也会连不上。

如何通过在CentOS系统上对Oracle数据库网络配置进行精细化优化,显著提升数据库性能?

开放1521端口, 别让防火墙成为拦路虎

说到网络配置,不得不提防火墙。CentOS 7以后默认用的是firewalld, 平安是平安了但如果不配置,你看啊...它就是一堵墙,把Oracle的1521端口挡得严严实实,境界没到。。

# 开放1521端口, --permanent表示永久生效,重启也不会丢 firewall-cmd --zone=public --add-port=1521/tcp --permanent # 重载防火墙配置 firewall-cmd --reload

如果你还在用老版本的iptables,那命令就是iptables -A INPUT -p tcp --dport 1521 -j ACCEPT。记得service iptables save保存一下。

telnames.ora和listener.ora,双剑合璧

对于服务器端自身或者客户端怎么知道要连哪个库呢?这就靠tnsnames.ora文件了。它就像是一个通讯录。

ORCL = (DESCRIPTION = (ADDRESSLIST = ) ) (CONNECTDATA = ) )

格局小了。 #tnsping ORCL "哎,对! 为了方便大家理解..." # 这里要注意SERVICE不结盟E=orcl 一定要与数据库实例名对应 "我悟了" Oracle监听器——数据库的“门卫” "哭笑不得"监听器就是Oracle的“门卫”,所有的连接请求都得先过它这一关。我们可以用Oracle自带的netca图形化工具来配置,也可以直接手改配置文件。对于老鸟直接改$ORACLEHOME/network/admin/listener.ora文件反而更快。 一个典型的listener.ora配置大概长这样: LISTENER = ) )   ) SIDLISTLISTENER =               ) ) "太扎心了"这里要注意HOST项,最好直接写IP地址。如果你写主机名, 请务必确保/etc/hosts文件里解析正确,否则监听器可能会启动失败,或者连接时出现莫名其妙的延迟。配置好后用lsnrctl start启动它,再用lsnrctl status看看状态。如果看到“Services Summary”里你的实例已经注册上了那就妥了。 "盘它"优化Oracle在CentOS上的网络配置,并不是一蹴而就的事情。它需要你对操作系统有深入的理解,也要对Oracle的架构了如指掌。从最底层的网卡IP配置, 到内核参数微调,再到Oracle监听器的设置,每一个环节都像是一环扣一环齿轮,只要有一个卡住了整个系统的性能就会大打折扣。 "我们一起...很多时候性能瓶颈并不在于数据库本身,而在于数据传输“高速公路”。如果这条路坑坑洼洼,或者收费站设置不合理,再好的跑车也跑不出法拉利的速度。今天我们就抛开那些枯燥理论实实在在地聊聊如何通过优化CentOS上的网络配置,给Oracle数据库来一次彻底“提速”。这不仅仅是改几个参数那么简单, 这是一场关于系统底层调优艺术 "操作一波..." 在数据库运维江湖里 Oracle数据库跑在CentOS上简直是黄金搭档稳定高效这是大家公认那个但是你有没有遇到过这种情况SQL语句写得无可挑剔 索引也建得恰到好处硬件资源更是富得流油可偏偏查询响应速度就是慢得让人抓狂甚至有时候还会蹦出几个让人摸不着头脑连接超时错误这时候与其盯着屏幕上的等待图发呆不如低下头来看看我们经常忽视基础——网络配置 "我爱我家"我们在追求性能时候往往容易忽略这些基础东西总想着去加索引去改SQL其实有时候解决问题的关键就在这些不起眼配置文件里当你把网络延迟降下来了把吞吐量提上去了 你会发现 来一波...整个数据库响应速度会有质飞跃那种流畅感觉对于每一个DBA都是一种享受所以下次再遇到性能瓶颈 不妨先停下来检查一下你的网络配置 说不定会有意想不到收获 编辑/etc/sysctl.conf文件 这可是个宝库我们需要添加或修改以下关键参数别被这一堆数字吓晕每一个都是为了提升吞吐量和减少延迟 我血槽空了.. "为什么要改这些TCP缓冲区 简单 如果缓冲区太小大数据包传输时就会像用小茶杯运水一样效率极低 调大之后就像换成了大水桶一次能运更多数据自然就快特别是rmemmax和wmem_max 直接限制TCP读写缓冲区最大值适当放宽它们 对于高吞吐量数据库环境至关重要 '除了防火墙,还有一个让人又爱又恨东西——SELinux''除了防火墙,还有一个让人又爱又恨的东西——SELinux。它强制访问控制 平安级别极高但经常把Oracle正常操作给拦截导致监听起不来或者连接异常。在配置调试阶段 我建议先把它关省得给自己找不痛快' # \u6682;&#r;;"/etc/selinux/config" setenforce 0 # \u6c38;&#r;;g' /etc/selinux/config'当然等一切都调通你可以再去研究怎么给SELinux打补丁 让它和Oracle和谐共处但在追求性能和稳定性初期 简单粗暴一点往往更有效'"系统层面路修好了 现在轮到Oracle自己内部‘交通规则’"'系统层面的路修好了 现在轮到Oracle自己内部“交通规则” 了 Oracle网络通信主要靠监听器TNSNames这部分配置如果搞错客户端连都连不上更别谈性能''最常见错误就是ORA-12170 TNS 连接超时''最常见错误就是ORA-12170: TNS: 连接超时看到这个 先别慌这通常意味着网络不通、端口被拦截或者监听器没起来''也有人喜欢用tnsping这个命令''还有tnsping这个命令 它专门用来测试TNS名称解析''如果你非要用DHCP 我也拦不住你''当然 如果你非要用DHCP 我也拦不住你 但请确保BOOTPROTO=dhcp并且把那些IPADDR NETMASK之类参数删干净不过为了头发着想 生产环境还是老老实实用静态IP吧''我们需要放行152端口 命令很简单 但千万别忘了 等着瞧'' 配置做再完美 也难免会遇到问题 这时候排查思路很重要 不要上来就瞎改参数 要有条理一步步来 中肯 '; ' 配置做再完美 也难免会遇到问题 这时候排查思路就很重要不要上来就瞎改参数要有条理地一步步来 中肯 '

标签:CentOS

在数据库运维的江湖里 Oracle数据库跑在CentOS上简直是黄金搭档,稳定、高效,这是大家公认的那个。但是你有没有遇到过这种情况?SQL语句写得无可挑剔, 索引也建得恰到好处,硬件资源更是富得流油, 大体上... 可偏偏查询响应速度就是慢得让人抓狂,甚至有时候还会蹦出几个让人摸不着头脑的连接超时错误。这时候,与其盯着屏幕上的等待图发呆,不如低下头来看看我们经常忽视的基础——网络配置。

第一步:配置静态IP,让服务器有个“家”

栓Q了... Oracle数据库对网络的稳定性有着近乎苛刻的要求。想象一下如果你的IP地址像变脸一样天天换,客户端怎么找你?所以第一步,也是最重要的一步,就是给服务器安个“家”——配置静态IP。DHCP虽然方便,但它就是一颗不定时炸弹。

如何通过在CentOS系统上对Oracle数据库网络配置进行精细化优化,显著提升数据库性能?

我们需要编辑网络接口配置文件。通常,这些文件藏在/etc/sysconfig/network-scripts/目录下。现在的CentOS版本, 网卡名字可能不再是以前那种经典的eth0了你可能会看到ens33或者eno16777736这种长名字,别被吓到,原理都是一样的,推倒重来。。

找到对应的文件,比如ifcfg-ens33,用你最喜欢的编辑器打开它。我们要做的就是把动态获取改为静态指定。 火候不够。 这就像给房子挂牌子,地址必须固定。

DEVICE=ens33 BOOTPROTO=static # 静态IP配置, 拒绝DHCP的摇摆不定 IPADDR=192.168.1.100 # 数据库服务器的尊贵IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 网关,通往外界的桥梁 DNS1=8.8.8.8 # 首选DNS,解析域名全靠它 ONBOOT=yes # 开机自启,这必须得有

盘它。 这里有个小细节,很多人改完配置直接重启服务器,其实大可不必。施行systemctl restart network或者nmcli connection reload就能让配置生效。改完之后一定要用ip addr show或者老派的ifconfig看一眼,确认IP已经乖乖地挂在了网卡上。如果这时候你还能ping通网关,那恭喜你,第一步已经稳了。

排查网络问题,从“ping”开始

啊这... 先说说最基础的一招:ping。ping 192.168.1.100

如果ping不通, 那问题在操作系统网络层,回去检查你的网线、交换机或者ifcfg文件吧。如果ping通了那就进阶一步,测端口。用t 有啥说啥... elnet或者nc命令:telnet 192.168.1.100 1521 或者 nc -vz 192.168.1.100 1521

最后强调一点。 如果端口显示Connected, 说明路是通的,问题出在Oracle监听器上。这时候去服务器上施行lsnrctl status看看服务是不是READY状态。有时候实例没注册到监听器,也会连不上。

如何通过在CentOS系统上对Oracle数据库网络配置进行精细化优化,显著提升数据库性能?

开放1521端口, 别让防火墙成为拦路虎

说到网络配置,不得不提防火墙。CentOS 7以后默认用的是firewalld, 平安是平安了但如果不配置,你看啊...它就是一堵墙,把Oracle的1521端口挡得严严实实,境界没到。。

# 开放1521端口, --permanent表示永久生效,重启也不会丢 firewall-cmd --zone=public --add-port=1521/tcp --permanent # 重载防火墙配置 firewall-cmd --reload

如果你还在用老版本的iptables,那命令就是iptables -A INPUT -p tcp --dport 1521 -j ACCEPT。记得service iptables save保存一下。

telnames.ora和listener.ora,双剑合璧

对于服务器端自身或者客户端怎么知道要连哪个库呢?这就靠tnsnames.ora文件了。它就像是一个通讯录。

ORCL = (DESCRIPTION = (ADDRESSLIST = ) ) (CONNECTDATA = ) )

格局小了。 #tnsping ORCL "哎,对! 为了方便大家理解..." # 这里要注意SERVICE不结盟E=orcl 一定要与数据库实例名对应 "我悟了" Oracle监听器——数据库的“门卫” "哭笑不得"监听器就是Oracle的“门卫”,所有的连接请求都得先过它这一关。我们可以用Oracle自带的netca图形化工具来配置,也可以直接手改配置文件。对于老鸟直接改$ORACLEHOME/network/admin/listener.ora文件反而更快。 一个典型的listener.ora配置大概长这样: LISTENER = ) )   ) SIDLISTLISTENER =               ) ) "太扎心了"这里要注意HOST项,最好直接写IP地址。如果你写主机名, 请务必确保/etc/hosts文件里解析正确,否则监听器可能会启动失败,或者连接时出现莫名其妙的延迟。配置好后用lsnrctl start启动它,再用lsnrctl status看看状态。如果看到“Services Summary”里你的实例已经注册上了那就妥了。 "盘它"优化Oracle在CentOS上的网络配置,并不是一蹴而就的事情。它需要你对操作系统有深入的理解,也要对Oracle的架构了如指掌。从最底层的网卡IP配置, 到内核参数微调,再到Oracle监听器的设置,每一个环节都像是一环扣一环齿轮,只要有一个卡住了整个系统的性能就会大打折扣。 "我们一起...很多时候性能瓶颈并不在于数据库本身,而在于数据传输“高速公路”。如果这条路坑坑洼洼,或者收费站设置不合理,再好的跑车也跑不出法拉利的速度。今天我们就抛开那些枯燥理论实实在在地聊聊如何通过优化CentOS上的网络配置,给Oracle数据库来一次彻底“提速”。这不仅仅是改几个参数那么简单, 这是一场关于系统底层调优艺术 "操作一波..." 在数据库运维江湖里 Oracle数据库跑在CentOS上简直是黄金搭档稳定高效这是大家公认那个但是你有没有遇到过这种情况SQL语句写得无可挑剔 索引也建得恰到好处硬件资源更是富得流油可偏偏查询响应速度就是慢得让人抓狂甚至有时候还会蹦出几个让人摸不着头脑连接超时错误这时候与其盯着屏幕上的等待图发呆不如低下头来看看我们经常忽视基础——网络配置 "我爱我家"我们在追求性能时候往往容易忽略这些基础东西总想着去加索引去改SQL其实有时候解决问题的关键就在这些不起眼配置文件里当你把网络延迟降下来了把吞吐量提上去了 你会发现 来一波...整个数据库响应速度会有质飞跃那种流畅感觉对于每一个DBA都是一种享受所以下次再遇到性能瓶颈 不妨先停下来检查一下你的网络配置 说不定会有意想不到收获 编辑/etc/sysctl.conf文件 这可是个宝库我们需要添加或修改以下关键参数别被这一堆数字吓晕每一个都是为了提升吞吐量和减少延迟 我血槽空了.. "为什么要改这些TCP缓冲区 简单 如果缓冲区太小大数据包传输时就会像用小茶杯运水一样效率极低 调大之后就像换成了大水桶一次能运更多数据自然就快特别是rmemmax和wmem_max 直接限制TCP读写缓冲区最大值适当放宽它们 对于高吞吐量数据库环境至关重要 '除了防火墙,还有一个让人又爱又恨东西——SELinux''除了防火墙,还有一个让人又爱又恨的东西——SELinux。它强制访问控制 平安级别极高但经常把Oracle正常操作给拦截导致监听起不来或者连接异常。在配置调试阶段 我建议先把它关省得给自己找不痛快' # \u6682;&#r;;"/etc/selinux/config" setenforce 0 # \u6c38;&#r;;g' /etc/selinux/config'当然等一切都调通你可以再去研究怎么给SELinux打补丁 让它和Oracle和谐共处但在追求性能和稳定性初期 简单粗暴一点往往更有效'"系统层面路修好了 现在轮到Oracle自己内部‘交通规则’"'系统层面的路修好了 现在轮到Oracle自己内部“交通规则” 了 Oracle网络通信主要靠监听器TNSNames这部分配置如果搞错客户端连都连不上更别谈性能''最常见错误就是ORA-12170 TNS 连接超时''最常见错误就是ORA-12170: TNS: 连接超时看到这个 先别慌这通常意味着网络不通、端口被拦截或者监听器没起来''也有人喜欢用tnsping这个命令''还有tnsping这个命令 它专门用来测试TNS名称解析''如果你非要用DHCP 我也拦不住你''当然 如果你非要用DHCP 我也拦不住你 但请确保BOOTPROTO=dhcp并且把那些IPADDR NETMASK之类参数删干净不过为了头发着想 生产环境还是老老实实用静态IP吧''我们需要放行152端口 命令很简单 但千万别忘了 等着瞧'' 配置做再完美 也难免会遇到问题 这时候排查思路很重要 不要上来就瞎改参数 要有条理一步步来 中肯 '; ' 配置做再完美 也难免会遇到问题 这时候排查思路就很重要不要上来就瞎改参数要有条理地一步步来 中肯 '

标签:CentOS