通过 shell 查找 Oracle 监听日志中所有 IPv4 地址
由于需要点对点访问数据库,那么数据库服务器则需要开启防火墙白名单策略。我们可以通过 iptables --list 命令查看操作系统防火墙白名单。那么有哪些访问数据库的 IPv4 地址呢?这个会记录在 Oracle 的监听日志 listener.log 中。
————————————————————————————
微信公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
ITPUB:https://blog.itpub.net/69968215
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————
那么我们可以通过编写 shell 脚本通过正则表达式将监听日志中的 IPv4 都全部取出来。因为监听日志中有多种不同的连接类型,我这里是一测试环境只有三类,第一类是通过 JDBC 访问,还有一类是通过客户端访问的,另一类是 Oracle 自身通过 SERVER=DEDICATED 访问的。我这里只有 Oracle 19c 的版本,不知道 Oracle 版本不同是不是也不一样,这个大家自行查看测试。
22-MAR-2024 09:50:47 * (CONNECT_DATA=(CID=(PROGRAM=newdt)(HOST=__jdbc__)(USER=root))(SERVICE_NAME=jiekexustb)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.22)(PORT=49126)) * establish * jiekexustb * 0
2024-03-22T09:51:10.343176+08:00
22-MAR-2024 09:51:10 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=jiekexustb)(CID=(PROGRAM=oracle)(HOST=t4-rac19c-72)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.23)(PORT=44953)) * establish * jiekexustb * 0
31-MAR-2024 23:46:55 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=tableau))(SERVER=DEDICATED)(SERVICE_NAME=jiekexustb)(CONNECTION_ID=yqYBVtTjS+elFTg4vJlLkQ==)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.75.155)(PORT=37702)) * establish * jiekexustb * 0