#!/bin/ksh
snaspot=$(date +"%Y%m%d%H%M%S")
sqlplus -S "sys/oracle as sysdba" << !
set feedback off
set serveroutput on
set pages 0
set lines 100
set heading off
set timing off
set autot off
set echo off
set show off
spool parameters_a_$snaspot.csv
select '-------------------------------------oracle_parameters-----------------------------------' from DUAL;
set feedback on
select x.ksppinm||','||y.ksppstvl value from sys.x\$ksppi x, sys.x\$ksppcv y where x.inst_id=userenv('Instance') and y.inst_id=userenv('Instance') and x.indx=y.indx and x.ksppinm like '%%' and y.ksppstdf = 'FALSE' order by translate(x.ksppinm,'_','');
set feedback off
select '---------------------------------end_of_oracle_parameters--------------------------------' from DUAL;
select '----------------------------------NUMBER_OF_USERTABLES-----------------------------------' from DUAL;
set feedback on
select OWNER||','||count(*) from all_tables where OWNER in ('USER01','USER02') GROUP BY OWNER order BY OWNER;
set feedback off
select '---------------------------------NUMBER_OF_ALL_INDEXES---------------------------------' from DUAL;
set feedback on
select OWNER||','||count(*) from all_indexes where OWNER in ('USER01','USER02') GROUP BY OWNER order BY OWNER;
set feedback off
select '---------------------------------NUMBER_OF_DBA_INDEXES---------------------------------' from DUAL;
set feedback on
select OWNER||','||count(*) from dba_indexes where OWNER in ('USER01','USER02') GROUP BY OWNER order BY OWNER;
set feedback off
select '-----------------------------------------------------------------------------------------' from DUAL;
select '-------------------------------------------table-----------------------------------------' from DUAL;
select 'TABLE_NAME,OWNER,PCT_FREE,INITRANS,LOGGING' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||PCT_FREE||','||INI_TRANS||','||LOGGING from all_tables where OWNER in ('USER01','USER02');
set feedback off
select '---------------------------------------end_of_table--------------------------------------' from DUAL;
select '-----------------------------------------------------------------------------------------' from DUAL;
select '------------------------------------------index------------------------------------------' from DUAL;
select 'INDEX_NAME,OWNER,INDEX_TYPE,PARTITIONED,PCT_FREE,INITRANS,LOGGING' from DUAL;
set feedback on
select INDEX_NAME||','||OWNER||','||INDEX_TYPE||','||PARTITIONED||','||PCT_FREE||','||INI_TRANS||','||LOGGING from all_indexes where OWNER in ('USER01','USER02');
set feedback off
select '---------------------------------------end_of_index--------------------------------------' from DUAL;
spool off
exit
!
sqlplus -S "sys/oracle as sysdba" << !
set feedback off
set serveroutput on
set pages 0
set lines 100
set heading off
set timing off
set autot off
set echo off
set show off
spool parameters_m_$snaspot.csv
select '-----------------------------------------------------------------------------------------' from DUAL;
select '--------------------------------------table_pctfree--------------------------------------' from DUAL;
select 'TABLE_NAME,OWNER,PCT_FREE' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||PCT_FREE from all_tables where PCT_FREE != 10 and OWNER in ('USER01','USER02');
set feedback off
select '--------------------------------------table_initrans--------------------------------------' from DUAL;
select 'TABLE_NAME,OWNER,INI_TRANS' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||INI_TRANS from all_tables where INI_TRANS != 2 and OWNER in ('USER01','USER02');
set feedback off
select '--------------------------------------table_logging--------------------------------------' from DUAL;
select 'TABLE_NAME,OWNER,LOGGING' from DUAL;
set feedback on
select TABLE_NAME||','||OWNER||','||LOGGING from all_tables where LOGGING = 'NO' and OWNER in ('USER01','USER02');
set feedback off
select '---------------------------------------end_of_table--------------------------------------' from DUAL;
select '-----------------------------------------------------------------------------------------' from DUAL;
select '--------------------------------------index_pctfree--------------------------------------' from DUAL;
select 'INDEX_NAME,OWNER,PCT_FREE' from DUAL;
set feedback on
select INDEX_NAME||','||OWNER||','||PCT_FREE from all_indexes where OWNER in ('USER01','USER02') AND PCT_FREE != 10;
set feedback off
select '--------------------------------------index_initrans--------------------------------------' from DUAL;
select 'INDEX_NAME,OWNER,INITRANS' from DUAL;
set feedback on
select INDEX_NAME||','||OWNER||','||INI_TRANS from all_indexes where OWNER in ('USER01','USER02') AND INI_TRANS != 2;
set feedback off
select '---------------------------------------end_of_index--------------------------------------' from DUAL;
spool off
exit
!
sqlplus -S "sys/oracle as sysdba" << !
set lines 100
set pages 0
set serveroutput off
set heading off
set echo off
set termout off
set feedback off
spool rollback_tables_$snaspot.sql
select 'alter table "'||owner ||'"."'||table_name||'" PCTFREE 10;' from all_tables where PCT_FREE != 10 and OWNER in ('USER01','USER02');
select 'alter table "'||owner ||'"."'||table_name||'" INITRANS 2;' from all_tables where INI_TRANS != 2 and OWNER in ('USER01','USER02');
select 'alter table "'||owner ||'"."'||table_name||'" logging;' from all_tables where LOGGING = 'NO' and OWNER in ('USER01','USER02');
spool off;
exit
!
sqlplus -S "sys/oracle as sysdba" << !
set lines 100
set pages 0
set serveroutput off
set heading off
set echo off
set termout off
set feedback off
spool rollback2_tables_$snaspot.sql
select 'alter table "'||owner ||'"."'||table_name||'" PCTFREE '||pct_free||';' from all_tables where PCT_FREE != 10 and OWNER in ('USER01','USER02');
select 'alter table "'||owner ||'"."'||table_name||'" INITRANS '||ini_trans||';' from all_tables where INI_TRANS != 2 and OWNER in ('USER01','USER02');
spool off;
exit
!