分类 数据库 下的文章

ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法

  1. 用sys用户登录

  2. ORACLE_SID=orcl

sqlplus /nolog
connect / as sysdba

  1. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到96.62
    SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

  1. 找到recovery目录, show parameter recover
    SQL> show parameter recover;

7 上述结果告诉我们,归档位置用的是默认值
/u01/app/oracle
[root@sha3 10.2.0]# cd $ORACLE_BASE/flash_recovery_area/tt/archivelog
转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件(比如360以后的)


注意:

在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。

  1. [root@sha3 oracle]# rman target sys/db

  1. 检查一些无用的archivelog
    RMAN> crosscheck archivelog all;

  1. 删除过期的归档
    RMAN> delete expired archivelog all;

  2. 再次查询,发现使用率正常,已经降到23.03
    SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

Oracle用户锁定以及解锁

在登陆时被告知test用户被锁
  1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间
  SQL> alter session set nls_date_format=’yyyy-mm-dd hh24:mi:ss’;
  Session altered.
  2、查看具体的被锁时间
  SQL> select username,lock_date from dba_users where username=’TEST’;
  USERNAME LOCK_DATE
  ------------------------------ -------------------
  TEST 2009-03-10 08:51:03
  3、解锁
  SQL> alter user test account unlock;
  User altered.
  4、查看是那个ip造成的test用户被锁来源:www.examda.com
  查看$ORACLE_HOME/network/admin/log/listener.log日志
  10-MAR-2009 08:51:03 (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HOST=omstestdb)(USER=oraoms))) (ADDRESS=(PROTOCOL=tcp)(HOST=10.69.1.11)(PORT=49434)) establish lhoms * 0
  10-MAR-2009 08:51:03 (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HOST=omstestdb)(USER=oraoms))) (ADDRESS=(PROTOCOL=tcp)(HOST=10.69.1.11)(PORT=49435)) establish lhoms * 0www.Examda.CoM考试就到考试大
  这样可知是上面10.69.1.11的ip尝试多次失败登陆造成的被锁
  注:
  一般数据库默认是10次尝试失败后锁住用户
  1、查看FAILED_LOGIN_ATTEMPTS的值
  select * from dba_profiles
  2、修改为30次
  alter profile default limit FAILED_LOGIN_ATTEMPTS 30;
  3、修改为无限次(为安全起见,不建议使用)
  alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

from : http://www.233.com/oracle/zhonghe/20091213/100345870.html

Oracle误删表或者数据后,采用闪回恢复的SQL脚本

 select 'flashback table "'||object_name||'" to before drop;' from recyclebin where ts_name='TS_JEECG' and droptime like '2017-01-12%' ;


select 'flashback table "'||original_name||'" to before drop;' from recyclebin where type='INDEX' and ts_name='TS_JEECG' and droptime like '2017-01-12%'  order by droptime desc ;

select 'alter table '||original_name||' enable row movement;' from recyclebin where type='TABLE' and ts_name='TS_JEECG' and droptime like '2017-01-12%'  order by droptime desc ;


select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin  where type='INDEX' and ts_name='TS_JEECG' and droptime like '2017-01-12%'  order by droptime desc ;

flashback table A to timestamp(systimestamp-interval '10' minute);



alter table bs_checkin enable row movement;

select 'alter index  "'||index_name||'" rebuild;',i.index_name from user_indexes i ;

select 'flashback table "'||original_name||'" to before drop;'

alter index index_name rebuild