首页 > Linux操作系统 > Linux操作系统 > 生产系统上的用户清理问题
一个生产系统上有许多用户,有个别用户不用了,想清理,但不知道该用户的表是否在使用,如何清理?
想过一个办法就是,将该用户的表和索引挪到一个表空间去,然后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博客 ” ,链接:https://blog.itpub.net/13165828/viewspace-607727/ ,如需转载,请注明出处,否则将追究法律责任。