sql - 如何对 Oracle 中的所有 session 使用单个跟踪文件?

标签 sql oracle oracle10g trace

在 Oracle 中,当我更改 session 参数并设置 Tracefile_identifier 时,跟踪工作正常,如下所示。

alter session set max_dump_file_size = unlimited;
alter session set timed_statistics=true;
alter session set statistics_level=ALL;
alter session set tracefile_identifier=mytracefile;
alter session set sql_trace=true;
alter session set events '10046 trace name context forever, level 12';

但我想为特定时间段内数据库中的所有连接生成单个跟踪文件。我尝试了相同的命令,但通过更改系统而不是 session 。我无法更改tracefile_identifier。我收到ORA-02096:指定的初始化参数无法用此修改。请让我知道如何实现这一目标。

最佳答案

简而言之,这是不可能的。

Oracle 跟踪文件是按进程编写的。因此,任何后台进程(PMON、SMON 等)都将写入其自己的跟踪文件,任何用户的服务器进程也是如此。

如果您运行共享服务器,您将在同一文件中获得多个 session 的跟踪输出,因为这些 session 共享特定的服务器进程。

但是,将所有内容写入单个跟踪文件是不可能的。

如果您想在业务需求以及您实际想要实现的目标方面向问题添加更多信息,我也许可以提供更好的答案或替代解决方案。

关于sql - 如何对 Oracle 中的所有 session 使用单个跟踪文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966962/

相关文章:

database - 如何使用较旧的日期字段删除 SQL 中的重复行

sql - 在 where 子句中使用 Oracle SQL 变量时出现问题

为用户设计的SQL表,可以给用户留下反馈

sql - 在数据库中的所有行上调用触发器

sql - 如何使用管道|作为批处理脚本中 SQL 查询的一部分

c# - SQL SELECT * FROM XXX WHERE 数组中的列名

sql - 在sql中合并多个 "With"子句

Oracle 在 WHERE 子句中使用 CASE 语句

java - 如何从MyBatis中获取值?

database - 仅列出 Oracle 临时表空间