oracle 检查数据库设置哪些event

oracle 检查数据库设置哪些event,第1张

如何查询会话 event

很多时候,我们在数据库中设置了event,如何确认设置的event生效或者如何确认你的库中设置了什么event.下面的文章测试了在11g中比较方便的方法数据库版本

[sql] view plain copy 在CODE上查看代码片派生到我的代码片SQL>select*fromv$version

BANNER

--------------------------------------------------------------------------------OracleDatabase11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionPL/SQL Release 11.2.0.3.0 - Production

CORE11.2.0.3.0 Production

TNSforSolaris: Version 11.2.0.3.0 - ProductionNLSRTL Version 11.2.0.3.0 - Production

设置测试event

[sql] view plain copy 在CODE上查看代码片派生到我的代码片SQL>alter session set events '10510 trace name context forever,level 1'Session altered.

SQL>alter session set events '10046 trace name context forever,level 4'Session altered.

SQL>alter system set events '60025 trace name context forever'System altered.

SQL>alter system set events '10513 trace name context forever,level 2'System altered.

测试spfile参数中是否有event

[sql] view plain copy 在CODE上查看代码片派生到我的代码片SQL>create pfile='/tmp/pfile'fromspfile

File created.

solaris*orcl-/home/oracle$ grep -i event /tmp/pfile--无记录

SQL>show parameter event

NAMETYPEVALUE------------------------------------ ----------- -----------------eventstringxml_db_eventsstring enable证明设置event不会在spfile中记录

查询会话event

[sql] view plain copy 在CODE上查看代码片派生到我的代码片--dbms_system实现

SQL>set serveroutput on size 1000000

SQL>declare

2 event_level number

3 begin

4 for i in 1..100000 loop

5 sys.dbms_system.read_ev(i,event_level)6 if (event_level >0) then

7 dbms_output.put_line('Event '||to_char(i)||' set at level '||8 to_char(event_level))

9 end if

10 end loop

11 end

12 /

Event 10510 set at level 1

Event 10513 set at level 2

Event 60025 set at level 1

PL/SQL procedure successfully completed.

--oradebug实现

SQL>oradebug SETMYPID

Statement processed.

SQL>oradebug eventdump session

10510 trace name context forever,level 1

10513 trace name context forever,level 2

60025 trace name context forever

sql_trace level=4

测试证明使用dbms_system可以捕获到event,oradebug可以捕获到本身会话,还可以通过setospid/setorapid来跟踪其他会话的event设置情况.event 10046对应的本质是sql_trace所以使用dbms_system不能捕获到10046经过学习和测试,总结可以使用oradebug来实现:

[sql] view plain copy 在CODE上查看代码片派生到我的代码片SQL>oradebug SETMYPID

Statement processed.

SQL>oradebug eventdump session

SQL>oradebug eventdump system

就可以查看系统级或会话级的事件设置了

选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。

在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点

右键单击【数据库】节点,从d出来的快捷菜单中选择【新建数据库】命令。

执行上述 *** 作后,会d出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,

在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。

切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

切换到【文件组】页,在这里可以添加或删除文件组。

完成以上 *** 作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

mysql要实现定时执行sql语句就要用到Event 具体 *** 作如下: 先看看看event 事件是否开启 show variables like '%sche%'如没开启,则开启。需要数据库超级权限 set global event_scheduler =1创建存储过程 update_a (注:就是你要执行的sql语


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10030010.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存