ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 生产系统上的用户清理问题

生产系统上的用户清理问题

原创 Linux操作系统 作者:fengjin821 时间:2009-06-27 17:38:26 0 删除 编辑

一个生产系统上有许多用户,有个别用户不用了,想清理,但不知道该用户的表是否在使用,如何清理?

想过一个办法就是,将该用户的表和索引挪到一个表空间去,然后OFFLINE该表空间,如果程序不报错,应该可以备份该用户数据,然后删除该用户!

各位有啥好办法?

记得可以MONITOR该用户的表和索引,但感觉不是很安全

 

------------------------------------------------------------------------

 

建议通过V$SESSION里的USERNAME取出来,观察几天然后来判断哪些用户需要清理。

曾经写过一个类似的东西,仅供参考

create table sess_count (
usernames varchar2(20),
counts number(10),
sess_time timestamp default sysdate) tablespace users;

#!/bin/sh
. ./.profile
ORACLE_SID=xxxx
export ORACLE_SID
while true
  do
sqlplus /nolog << EOF
sqlplus / as sysdba
spool /export/home/oracle/sess_monitor.log
DECLARE
CURSOR cur_sess IS
   select username,count(*) from v\$session where username is not null group by username;
   v_username varchar2(10);
   s_count number(10);
begin
  open cur_sess;
    loop
      fetch cur_sess into v_username,s_count;
      exit when cur_sess%NOTFOUND;
        insert into sess_count (usernames,counts) values(v_username,s_count);
    end loop;
  close cur_sess;
end;
/
spool off
exit
EOF
sleep 300
done

 

首先观察有哪些用户基本上不用,

然后再查出对应这些用户有哪些对象,

再根据这些对象找到有哪些活动的用户在使用他们,

如果没有的话就可以考虑将这些不活动用户的对象删除,当然最好先备份后删除

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13165828/viewspace-607727/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-29

  • 博文量
    191
  • 访问量
    505104