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 包查看
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 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 查看
如果 scanIP 在本节点也可以查到,节点 2 VIP FAILED OVER 也会在节点 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-87 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
——————————————————————–—–————
公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————----———
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。