Oracle 通过 SQL 语句查看数据库服务器 IP 地址

本文介绍了多种通过SQL语句和shell命令在Oracle数据库中查看服务器IP地址的方法,包括使用UTL_INADDR.get_host_address、DBMS_OUTPUT.PUT_LINE、V$CONFIGURED_INTERCONNECTS视图以及通过Linux shell命令等。同时,文章也提到了查看主机名和实例名的技巧,适用于单实例和RAC环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6ff6020a2d649a1801a902c3da85bd6a.gif

作者 | JiekeXu

来源 | JiekeXu DBA之路(ID: JiekeXu_IT)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看一下 Oracle 通过 SQL 语句查看数据库服务器 IP 地址,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!

话说昨天发布的关于单表分页查询优化的文章,阅读量还不错,可收藏下来遇到分页查询语句直接嵌套就可以了,还没有看的小伙伴可点击此处直达,今天来说说关于使用 PLSQL 等客户端工具查看数据库服务器 IP 地址的方法,用以回答前几天在某个微信群里小伙们的提问。

Oracle 通过 SQL 语句查看数据库服务器 IP 地址,通常有如下几种方法:

数据库 IP 配置如下 host 所示:

#public ip  
192.168.75.128 jiekexu-r1  
192.168.75.129 jiekexu-r2  
#private ip  
10.10.10.128 jiekexu-r1-priv  
10.10.10.129 jiekexu-r2-priv  
#vip  
192.168.75.130 jiekexu-r1-vip  
192.168.75.131 jiekexu-r2-vip  
#scanip  
192.168.75.132 jiekexu-racscan

查看 public IP 及主机名

SQL> col PUBLIC_IP for a30  
SQL> col HOSTNAME for a30  
SQL> select utl_inaddr.get_host_address PUblic_IP,utl_inaddr.get_host_name HOSTNAME from dual;  
  
PUBLIC_IP HOSTNAME  
------------------------------ ------------------------------  
192.168.75.128 jiekexu-r1  
  
  
SQL> SELECT UTL_INADDR.get_host_address PUBLIC_IP from dual;  
  
PUBLIC_IP  
------------------------------  
192.168.75.128

DBMS 包查看主机名和 IP 地址

SET serveroutput on  
BEGIN  
DBMS_OUTPUT.PUT_LINE(UTL_INADDR.GET_HOST_NAME);       -- get local host name  
DBMS_OUTPUT.PUT_LINE(UTL_INADDR.GET_HOST_ADDRESS);    -- get local IP addr  
END;  
/

RAC 查看 public  IP

SQL> select * from v$configured_interconnects;  
  
NAME IP_ADDRESS IS_ SOURCE CON_ID  
--------------- --------------- --- --------------- ----------  
ens33:1 169.254.3.163 NO 0  
ens32 192.168.75.128 YES 0  
ens32:1 192.168.75.132 YES 0  
ens32:2 192.168.75.130 YES 0  


------------------------
select  
indx as "Interface Index",  
inst_id as "RAC Instance",  
pub_ksxpia as "Public?",  
picked_ksxpia as "RAC Device",  
name_ksxpia as "NIC Device",  
ip_ksxpia as "IP Address"  
from x$ksxpia;  
  
Interface Index RAC Instance Public? RAC Device NIC Device IP Address  
--------------- ------------ ---------- ----------------------------------- --------------- ----------------------------------------------  
0 1 N GPnP ens33:1 169.254.3.163  
1 1 Y GPnP ens32 192.168.75.128  
2 1 Y GPnP ens32:1 192.168.75.132  
3 1 Y GPnP ens32:2 192.168.75.130  
4 1 Y GPnP ens32:3 192.168.75.131

通过 PLSQL 查看

a90f8b6355a7791f4bfd00a64db743ea.png


f91a8b85434a4727b272f537242c7447.png

注意:如果 scanIP 在本节点也可以查到,节点 2 VIP FAILED OVER 也会在节点 1 查到(如上所示,节点 2 vip 也可以在节点 1 查到),所以只会查到公网 IP 以及 VIP 和 scanIP,无法查到私网 IP。

Single DB 查看 IP

select  
sys_context('USERENV','SERVER_HOST') as HOST,  
utl_inaddr.get_host_address(sys_context('USERENV','SERVER_HOST')) as IP  
from dual;
HOST               IP
------------------ --------------------
test-19cogg      192.168.75.87

通过 shell 命令查看 IP 和实例名

通过 shell 命令查看实例名

jiekexu-r1:/home/oracle(JiekeXu1)$ ps -ef | grep ora_smon | grep -v grep  
oracle 10780 1 0 14:32 ? 00:00:00 ora_smon_JiekeXu1  
jiekexu-r1:/home/oracle(JiekeXu1)$ ps -ef | grep ora_smon | grep -v grep| awk -F" " '{print $8}'| awk -F"_" '{print $3}'  
JiekeXu1

通过 shell 命令查看 IP

jiekexu-r1:/home/oracle(JiekeXu1)$ grep -w $HOSTNAME /etc/hosts| grep -v vip | grep -v priv| awk -F" " '{print $1}'  
192.168.75.128  
  
jiekexu-r1:/home/oracle(JiekeXu1)$ ping `hostname` -c 1  
PING jiekexu-r1 (192.168.75.128) 56(84) bytes of data.  
64 bytes from jiekexu-r1 (192.168.75.128): icmp_seq=1 ttl=64 time=0.017 ms  
  
--- jiekexu-r1 ping statistics ---  
1 packets transmitted, 1 received, 0% packet loss, time 0ms  
rtt min/avg/max/mdev = 0.017/0.017/0.017/0.000 ms  
  
jiekexu-r1:/home/oracle(JiekeXu1)$ ping `hostname` -c 1 | grep PING  
PING jiekexu-r1 (192.168.75.128) 56(84) bytes of data.  
  
jiekexu-r1:/home/oracle(JiekeXu1)$ ping `hostname` -c 1 | grep PING | cut -d '(' -f2  
192.168.75.128) 56  
  
jiekexu-r1:/home/oracle(JiekeXu1)$ ping `hostname` -c 1 | grep PING | cut -d '(' -f2  
192.168.75.128) 56 
jiekexu-r1:/home/oracle(JiekeXu1)$ ping `hostname` -c 1 | grep PING | cut -d '(' -f2  | cut -d ')' -f1
192.168.75.128

ac56675d42ac0565f2ecaa0d748e90db.png

~本次分享到此结束啦~

❤️ 欢迎关注我的公众号,来一起玩耍吧!!!

——————————————————————--—--————

公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107

————————————————————————----———

e33a38c362f7f24974b08785e2a134c6.gif

VMWARE16 Oracle Linux7.9 安装 Oracle19c RAC 详细配置方案

使用 VMware 16 RHEL7.7 虚拟机静默安装 Oracle 19c RAC

爆肝一万字终于把 Oracle Data Guard 核心参数搞明白了

Oracle 12c 及以上版本补丁更新说明及下载方法(收藏版)

Oracle 19c 19.10DBRU 最新补丁升级看这一篇就够了

Redhat 7.7 安装最新版 MongoDB 5.0.1 手册

ASM 管理的内部工具:KFED、KFOD、AMDU

性能优化|关于数据库历史性能问题的一道面试题

一线运维 DBA 五年经验常用 SQL 大全(二)

ORA-00349|激活 ADG 备库时遇到的问题

OGG-01004|OGG 初始化数据问题处理

Oracle 轻量级实时监控工具 oratop

Linux 7.7 源码安装 MySQL 8.0.26

MySQL OCP 认证考试你知道吗?

Oracle 19C RAC 安装遇到的坑

国产数据库|TiDB 5.0 快速体验

Oracle 19C MAA 搭建指南

Oracle 参数文件三两事儿

Oracle 每日一题系列合集

百花齐放的国产数据库

16e093ef0d56fbb995e498f2d6156260.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值