Oracle的进程,如果在os层面kill -9了,那么在v$transaction中是看不到的,需要在v$fast_start_transactions中去看。可以用下面2种方法预估回滚时间: 方法一:(利用v$fast_start_transaction) [crayon-673ed761dce […]
Postgresql数据库层限流脚本
Postgresql数据库层限流脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
with tmp3 as (select count(*) as cnt from pg_stat_activity WHERE pid <> pg_backend_pid() and datname='mypg1' and usename='postgres' and state='idle' and query like '%select now%') select case when cnt <= 400 then (with tmp1 as ( select pg_terminate_backend(pid) from (select pid from pg_stat_activity WHERE 1=2 ) as foo1) select count(*) from tmp1 ) when cnt > 400 then (with tmp2 as ( select pg_terminate_backend(pid) from (select pid from pg_stat_activity WHERE pid <> pg_backend_pid() and datname='mypg1' and usename='postgres' and state='active' and query like '%select now%' order by backend_start limit 10) as foo2) select count(*) from tmp2 ) end as kill_if_too_many_process from tmp3 \watch 1 |
作用:程序执行的语句为类似select now语句,并且该进程是activie的,当这样的进程超过400个时,按照进程发起的先后顺序,先杀掉早期的进程。该语句每秒检查一次,每次发现有超过400个 […]
侦听加密后的停止脚本
在oracle 9i下,如果对于未加密码的侦听,我们只需在在本地配一个listener的地址为远程的IP地址,就能关闭远程的侦听了。因此,为了防止这样的情况,我们往往会对侦听加密。 在加密之后的侦听,如果我们配置了HP-SG,且在SG的package中配置了对侦听的监控——当侦听crash时,进行M […]
sqlplus的提示符
misc@ORALOCAL(192.168.0.49)> 如果你也想和我一样,在sqlplus登录数据库的时候,能提示不少像上面这样详细登录的信息: 1.登录的用户名。当你的数据库中有多个用户时,它能告诉你当前登录的是哪个用户。 2.登录的实例名。如果登录的rac,用这个能知道当前登录在哪个node […]
总结:用命令行实现OEM的查看信息
在windows的界面下,我们可以很容易的利用图形化的界面OEM(Oracle Enterprise Manager)看查看每个登陆会话的情况,那么当离开了windows的图形界面,在unix环境下,我们不得不利用命令行来查询相关信息。 以下是我总结的几个用命令行实现oem的查看信息: (1)kil […]
sql收藏:杀进程、长时间操作、表空间利用率
一、根据系统进程号,检查运行的sql内容并kill session 在命令行通过ps -ef |grep XXXX.sh,获得进程号后,kill -9 进程号,有的时候会kill不干净,在数据库中还存在该进程。可以试试以下的办法: 1、ps -ef |grep xxx.sh 获得该脚本的进程号(假设 […]