我在找所有(可用)Oracle 11g数据库中用户的SQL历史记录。我尝试使用一些视图(如v$sql_monitor
、v$sqlarea
和dba_hist_active_sess_history
)来获取用户名,及其执行的SQL语句(加入SID和序列号),但我没有任何运气。我们的高级DBA和DBE说他们“我以前做过,但只是告诉我在sqlarea中查找,因为它拥有最长的SQL历史记录。我没有任何运气。在Oracle中可以这样做吗?
编辑:我们使用SQL Developer。我知道TOAD可能内置了此功能,也可能没有,但我还没有在SQL Developer中找到任何可以实现此功能的功能(除了查看当前会话和当前SQL)。
2条答案
按热度按时间bvjxkvbb1#
如果您有查询dba_hist_active_sess_history的适当许可,则可以尝试类似的操作,但您需要诊断包的许可:
rt4zxlrg2#
我认为获取用户的确切SQL执行(我想你指的是会话?)的唯一方法是启用跟踪。我认为这篇文章(https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof)给了你一个很好的指导如何使用它。