日期:2014-05-16  浏览次数:20447 次

RMAN备份&恢复诊断脚本集


  User Managed Backup & Recovery Diagnostic Collection

  注意事项:

  需要以SYSDBA权限登录SQL*PLUS执行

  实例需要 MOUNT or OPEN mode.

  生成结果文件:recovery_diagnostics.out (default location is /tmp)

  ----------------- start ------------------

  set echo on

  set linesize 200 trimspool on

  col name form a60

  col status form a10

  col dbname form a15

  col member form a80

  col inst_id form 999

  col resetlogs_time form a25

  col created form a25

  col db_unique_name form a15

  col stat form 9999999999

  col thr form 99999

  col "Uptime" form a80

  col file# form 999999

  col checkpoint_change# form 999999999999999

  col first_change# form 999999999999999

  col change# form 999999999999999

  set pagesize 50000;

  alter session set nls_date_format = 'DD-MON-RRRR HH24:MI:SS';

  spool '/tmp/recovery_diagnostics.out';

  show user

  select inst_id, instance_name, status, startup_time || ' - ' ||

  trunc(SYSDATE-(STARTUP_TIME) ) || ' day(s), ' || trunc(24*((SYSDATE-STARTUP_TIME) -

  trunc(SYSDATE-STARTUP_TIME)))||' hour(s), ' || mod(trunc(1440*((SYSDATE-STARTUP_TIME) - trunc(SYSDATE-STARTUP_TIME))), 60) ||' minute(s), ' || mod(trunc(86400*((SYSDATE-STARTUP_TIME) - trunc(SYSDATE-STARTUP_TIME))), 60) ||' seconds' "Uptime"

  from gv$instance

  order by inst_id

  /

  select dbid, name, database_role, created, resetlogs_change#, resetlogs_time, open_mode, log_mode, checkpoint_change#, controlfile_type, controlfile_change#, controlfile_time from v$database;

  archive log list;

  select * from v$controlfile;

  select distinct(status), count(*) from V$BACKUP group by status;

  select file#, f.name, t.name, f.status, checkpoint_change#

  from v$datafile f, v$tablespace t where f.ts#=t.ts#;

  select file#, status, checkpoint_change#, checkpoint_time, resetlogs_change#, resetlogs_time, fuzzy from v$datafile_header;

  select status,checkpoint_change#,checkpoint_time, resetlogs_change#,

  resetlogs_time, count(*), fuzzy from v$datafile_header

  group by status,checkpoint_change#,checkpoint_time, resetlogs_change#,

  resetlogs_time, fuzzy;

  select distinct(FHRBA_SEQ) Sequence, count(*) from X$KCVFH group by FHRBA_SEQ;

  select v1.thread#, v1.group#, v1.sequence#, v1.first_change#, v1.first_time, v1.next_time,

  v1.archived, v1.status,v2.member

  from v$log v1, v$logfile v2 where v1.group#=v2.group#

  order by v1.first_time;

  select * from v$recover_file order by 1;

  select distinct(status)from v$datafile;

  select round(sum(bytes)/1024/1024/1024,0) db_size_GB from v$datafile;

  select fhsta, count(*) from X$KCVFH group by fhsta;

  select min(fhrba_Seq), max(fhrba_Seq) from X$KCVFH;

  spool off

  ----------------- end ------------------