【DBLINK】如何获知哪些程序或者数据库在使用指定的dblink?

taber 2008-07-31 06:00:53
核心数据库的dblink放出去以后,用到的数据库、系统、程序太多,连数据库密码都不敢改了。
有没有一个方法可以收集到这些信息?究竟哪些人在用?怎么用的?至少要知道哪些dblink被用到了?
...全文
295 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
taber 2008-08-20
  • 打赏
  • 举报
回复
生产库最终没有这么搞,还是一个个去统计了。
谢谢楼上各位。csdn一直登不上,现在才结贴,抱歉。
vc555 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 doer_ljy 的回复:]
我的思路,使用after logon 触发器,
检查当前用户的sessionid和serial#然后在v$session表中查他的IP、机器名、和program。
oracle不同版本的Program明虽然有差异,但是毕竟是有限的几个。如果吻合并且IP不是本地服务器的IP,说明是来自其他oracle的访问主要是dblink访问。
不过:
1、首先没有尝试过,所以不确定可行性
2、这种匹配本身就存在不准确的地方,难以保证正确性。
3、这倒是一个很好玩而得尝试。
[/Quote]
那如果从别的软件进行dblink访问,能通过Program区分出来dblink吗?
doer_ljy 2008-08-05
  • 打赏
  • 举报
回复
我的思路,使用after logon 触发器,
检查当前用户的sessionid和serial#然后在v$session表中查他的IP、机器名、和program。
oracle不同版本的Program明虽然有差异,但是毕竟是有限的几个。如果吻合并且IP不是本地服务器的IP,说明是来自其他oracle的访问主要是dblink访问。
不过:
1、首先没有尝试过,所以不确定可行性
2、这种匹配本身就存在不准确的地方,难以保证正确性。
3、这倒是一个很好玩而得尝试。
doer_ljy 2008-08-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 vc555 的回复:]
那如果从别的软件进行dblink访问,能通过Program区分出来dblink吗?[/Quote]
应该可以,
因为首先就不存在从别的软件使用DBLink的情况。
别的软件只能访问别的数据库,再由那个数据库通过自己所有的DBLink对楼主的数据库进行访问。而别的软件本身不能建立什么DBLINK只能建立连接数据库的“连接”而已。
taber 2008-08-04
  • 打赏
  • 举报
回复
谢谢楼上各位的解答,但解决方案还是没有出来。
有没有方法区分对方通过是通过dblink登陆我的数据库,还是通过普通的用户+密码方式登陆的?
如果能够区分,那么也可以间接获知dblink的使用情况了。

doer_ljy 2008-08-01
  • 打赏
  • 举报
回复
楼主描述的不准确
本地建多少个DBlink远程也是调用不了的,
远程建立连接本地数据库的DBlink在本地是无法直接查询的。
只能通过类似对v$session等试图的监视,或者after logon触发器把一段时间内连接过的应用记录下来。
diaowf 2008-08-01
  • 打赏
  • 举报
回复
通过v$dblink视图可以查看目前那些dblink目前正在被应用,以及打开的cursor数/是否在执行update/是否在事务中等的一些信息.
写个定时任务,没隔1s访问一下这个表,把出现的dblink放到其它的表中,跟踪一段时间后你就知道那些在使用了.
oracledbalgtu 2008-07-31
  • 打赏
  • 举报
回复
通过v$dblink视图可以查看目前那些dblink目前正在被应用,以及打开的cursor数/是否在执行update/是否在事务中等的一些信息.
写个定时任务,没隔1s访问一下这个表,把出现的dblink放到其它的表中,跟踪一段时间后你就知道那些在使用了.


[Quote=引用楼主 taber 的帖子:]
核心数据库的dblink放出去以后,用到的数据库、系统、程序太多,连数据库密码都不敢改了。
有没有一个方法可以收集到这些信息?究竟哪些人在用?怎么用的?至少要知道哪些dblink被用到了?
[/Quote]
vc555 2008-07-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 taber 的帖子:]
有没有一个方法可以收集到这些信息?究竟哪些人在用?怎么用的?至少要知道哪些dblink被用到了?
[/Quote]

除非这些通过dblink的会话当前正登入到数据库中,否则看不到什么信息。
如果某时刻别人都没用dblink连,自然不会有什么DBLINK信息。
dbcxbj 2008-07-31
  • 打赏
  • 举报
回复
使用这个可以看到创建了多少个dblink
select * from dba_db_links

但是多少正在用,多少没被用..
这个不知道..
期待高手出现..
wll123a123 2008-07-31
  • 打赏
  • 举报
回复
我 也想知道!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧