Need shell Script for Invalid object

Hi All,
Can anyone post me a script for checking the invalid objects in 10g/11g database.
The should should check for invalid objects,recompile and sent the email .

I could think fo something like below(And applicable to multiple SID's running on the server) and i tested it it works(bash shell script)
Assumptions:
You have environmental file to set ORACLE_HOME ORACLE_SID
say in this example
/oracle/env
ls -ltr
env_ORCL.sh
env_TEST.sh
env_HR.sh
You also have uuencode rpm installed to use along with mailx command(or else get it installed not big deal). uuencode is required
to send as mail attachment
1)I have kept SID list in file (/oracle/INVALID directory for eg)
cat SID.lst
ORCL
TEST
HR
If you have lot of SID's you can populate the file using ( ps -ef|grep -i pmon | grep -v grep | awk '{print$9}' | sed 's/ora_pmon_//g' > SID.lst)
2) Here are the list of SQL's(/oracle/INVALID directory
cat invalid_pre.sql (For listing invalid objects per instance)
set echo off
set heading off
set time off
set timing off
spool invalid.log append
break on instance_name
select instance_name , a.*
from (select owner,count(*) from dba_objects where status='INVALID' group by owner) a, v$instance;
spool off
exit;
cat invalid_compile.sql--to recompile invalid objects
set echo off
set termout off
set feedback off
@?/rdbms/admin/utlrp.sql 4; (Note you change degree 4 or 8 accordingly)
exit;
cat invalid_post.sql--to list post recompilation
set echo off
set heading off
set time off
set timing off
spool invalid_post.log append
break on instance_name
select instance_name , a.*
from (select owner,count(*) from dba_objects where status='INVALID' group by owner) a, v$instance;
spool off
exit;
3)here is the shell script
cat invalid.sh
for i in `cat SID11g.lst`
do
cd /oracle/env/
source env_$i.sh
cd /oracle/INVALID
sqlplus "/as sysdba" @invalid_pre.sql
sqlplus "/as sysdba" @invalid_compile.sql
sqlplus "/as sysdba" @invalid_post.sql
done
uuencode invalid.log invalid.log | mailx -s "Invalid" <your mail id>
uuencode invalid_post.log invalid_post.log | mailx -s "Invalid" <your mail id>
4) Finally run the shell script, hopefully you should receive email :-)
I have tested it on bash
./invalid.sh
Once tested you can schedule it in cron
Edited by: vreddy on Jul 19, 2012 9:57 AM

Similar Messages

  • Need  Shell Script  for picking the files

    Hi,
        I want to write a shell script for piking the files in a sequence order (according to filename with time stamp)  from the sorce FTP server ..
                     Requirement is  in the source directory I'm getting files (Jain_1.xml  , Jjain_2.xml, Jain_3.xml .. ect..)  at  present my file adapter is picking all the files at a time  but  i want to pick  one by one... that to first i want to Jain_1.xml  after finish the processing of the file then only my file adapter should  pick the next file ( Jain_2.xml )  .
                  so..  all the forum mates suggest me to write a shell script..  but where  i have to write the s hell script. and where i have to deploy this script.... my Xi is running on UNIX ... so please sugest me  the procedure ...
    Regards
    Jain

    Hi,
    Why dont you use the option EOIO in which files will be picked up in order and will be proccessed in sequence....one after another....
    Regards,
    Sreeni.

  • Need Help in creating Unix Shell Script for database

    Would be appreciable if some one can help in creating unix shell script for the Oracle DB 10,11g.
    Here is the condition which i want to implement.
    1. Create shell script to create the database with 10GB TB SPACE and 3 groups of redo log file(Each 300MB).
    2. Increase size of redolog file.
    3. Load sample schema.
    4. dump the schema.
    5. Create empty db (Script should check if db already exists and drop it in this case).
    6. Create backup using rman.
    7. restore backup which you have backed up.

    This isn't much of a "code-sharing" site but a "knowledge-sharing" site.  Code posted me may be from a questioner who has a problem / issue / error with his code.   But we don't generally see people writing entire scripts as responses to such questions as yours.  There may be other sites where you can get coding done "for free".
    What you could do is to write some of the code and test it and, if and when it fails / errors, post it for members to make suggestions.
    But the expectation here is for you to write your own code.
    Hemant K Chitale

  • Shell script for export backup in oracle 11g

    Hi,
    Oracle version 11.2.0..
    O/S-AIX
    How to write shell script for export full backup in oracle 11g and also need to remove 2 days of old backup.
    Regards,
    Raju

    How to write shell script for export full backup in oracle 11g
    Do you mean that export is your backup strategy ? is your database running in noarchivelog mode ? if so, then why ? if not so, then why not RMAN ?
    need to remove 2 days of old backup.
    If that mean remove files older than 2 days, you can use something like this :
    $ find <absolute directory path> -mtime +2 -exec rm {} \;

  • Shell script for batch compilation of forms 10g on AIX 5.3L AS

    Hi All,
    Can anybody provide me the Shell script for batch compilation of forms 10g and reports 10g on AIX 5.3L AS?
    Regards,
    SAM

    Hi Alex,
    I tried with the below script as well as the one you had posted.
    ORACLE_HOME=/opt/oracle/OraHome_3
    export ORACLE_HOME
    TNS_ADMIN=$ORACLE_HOME/network/admin
    export TNS_ADMIN
    LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/jdk/jre/bin:$ORACLE_HOME/jdk/jre/bin/cla
    ssic:$LIBPATH
    export LIBPATH
    cd ../forms
    for i in `ls *.pll`
    do
    echo Compiling Library $i ....
    $ORACLE_HOME/bin/frmcmp module=$i userid=mydbuser/mydbuser@mydb
    batch=yes module_type=library
    compile_all=yes window_state=minimize
    done
    export ORACLE_HOME=/opt/oracle/OraHome_3
    export ORACLE_TERM=vt220
    export LD_LIBRARY_PATH=/opt/oracle/OraHome_3/lib:/opt/oracle/OraHome_3/jdk/jre/l
    ib:/opt/oracle/OraHome_3/jdk/jre/lib/i386:
    cd ../forms
    for i in `ls *.pll`
    do
    echo "Compiling Library $i ...."
    /opt/oracle/OraHome_3/bin/frmcmp module_type=form userid=mydbuser/mydbuser@mydb
    module=$i batch=yes compile_all=no
    window_state=minimize upgrade=no
    done
    echo "PLL Compilation done"
    But there was a same kind of error thst turning up all the time.
    Compiling Library Agf.pll ....
    Forms 10.1 (Form Compiler) Version 10.1.2.0.2 (Production)
    Forms 10.1 (Form Compiler): Release - Production
    Copyright (c) 1982, 2005, Oracle. All rights reserved.
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    PL/SQL Version 10.1.0.4.2 (Production)
    Oracle Procedure Builder V10.1.2.0.2 - Production
    Oracle Virtual Graphics System Version 10.1.2.0.0 (Production)
    Oracle Multimedia Version 10.1.2.0.2 (Production)
    Oracle Tools Integration Version 10.1.2.0.2 (Production)
    Oracle Tools Common Area Version 10.1.2.0.2
    Oracle CORE 10.1.0.4.0 Production
    FRM-10043: Cannot open file.
    Form not created
    I hence updated the permissions on the pll as below
    -rwxrwxrwx 1 oracle oinstall 335872 May 19 16:31 Agf.pll
    But the problem is still persisting.
    My environment details are as below.
    I am working on Win XP machine. Connected to my AS via telnet and xmanager. I have set my DISPLAY to my local IP.
    Is there any thing more that I need to do? If so then let me know.
    Regards,
    SAM

  • Shell script for DB backup

    HI,
    i have written some java code Database backup but there are some problems with that so now i need to write shell script for db backup.
    what i was doing in java code i was running command like that
    /usr/local/bin/tar cvzf /export/home/monitor/FILE_20091005.tar.gz FILES/*20091005.*which compress the all *20091005* files (myisam table files)
    but after compression file doesn't extract
    so i have to write shell script for that ..... can any body guide me how can i write that kind of script and put it in cron job.
    thanks

    soundar wrote:
    Hi all,
    I have migrated database from 8i to 10gr2.For Backup in 8i, we used a RMAN shell script (scheduled uding cron tab) to backup the database to Tape.(VERITAS BACKUP).
    I am new to 10G.I checked out the options to backup the database using Oracle Enterprise manager DB console.
    http://www.oracle.com/technology/obe/10gr2_db_single/ha/rman/rman_otn.htm#t1d
    I am planning to take a test backup using the steps mentioned inthe above url.Could any one suggest whcih is the best option for database backup,eiether to use Oracle Enterprise manager DB console or thru RMAN shell script for backup..?
    Edited by: soundar on Mar 9, 2010 10:53 PMDear soudar
    I woudn't suggest you to work with EM if you want to be a professional DBA. Start learning RMAN and use CLI instead of GUI
    Those who live by the GUI, die by the GUI

  • Shell script for DB

    Hi,
    I have written shell script for below scenarios, can you please guide me to write this as correct way, requirment is,
    1. i need to connect the database which is on unix server , but before connecting the DB some of the files needs to be removed from \tmp directory.
    2. once removed the script need to connect the database and call the sql file which is in \tmp directory.
    3. the output files will be stored in \tmp directory start with DB name.
    4. finally csv files needs to be transferred to local windows with help of FTP. please find below the script
    #!/bin/sh
    rm -f /tmp/dbmon/DB1*
    CONNSTRING=username/PASSWORD@service
    sqlplus -s $CONNSTRING @/tmp/STATS.sql << EOF
    EXIT;
    EOF
    HOST='xxxxx'
    USER='xxxxx'
    PASSWD='xxxxxx'
    FILE='E:\STATS\DB1.*'
    cd /tmp/dbmon
    ftp -n -v $HOST << EOT
    user $USER $PASSWD
    prompt
    mput $FILE
    bye
    EOT
    EXIT;
    EOF
    Thanks
    Edited by: ASP on Nov 18, 2011 4:45 PM

    Hi ASP
    It's always a good idea to write entries to timestamped log file without which you will never know where the script went wrong or failed.
    This is not tested but just a small example
    #!/bin/sh
    export LOG_DIR=/tmp/log
    export LOGFILE=$LOG_DIR/`basename $0`_${TIMESTAMP}.log
    if [ ! -d $LOG_DIR ]
    then
         mkdir $LOG_DIR
    fi
    echo "Removing the temporary files from /tmp/dbmon at `date +%Y%m%d_%H:%M:%S`" | tee -a $LOG_FILE
    rm -f /tmp/dbmon/DB1*
    CONNSTRING=username/PASSWORD@service
    echo "Run SQLPlus file" | tee -a $LOG_FILE
    sqlplus -s $CONNSTRING @/tmp/STATS.sql << EOF
    EXIT;
    EOF
    echo "Now FTP the files to windows box " | tee -a $LOG_FILE
    HOST='xxxxx'
    USER='xxxxx'
    PASSWD='xxxxxx'
    cd /tmp/dbmon
    ftp -vn $HOST <<EOF
    quote USER $USER
    quote PASS $PASSWD
    ascii
    cd E:\STATS
    mput DB1.*
    bye
    EOF

  • Shell scripting for sftp command

    Guy's
    you may wondering how i can ask these question in this forum,actually it's related to abap,we have create
    unix script that will upload file from remote sftp server
    and put it  into AL11 transcation (take any location from
    your point of view),but instead of using shell script
    that is having ftp the want to go for sftp,for your undersatnding following thing's i am working with
    <b>Tcode</b>:sm69,sm49
    <b>function module</b>:SXPG_COMMAND_EXECUTE
    script that need to have sftp instead of ftp
    Connecting to ftp server to get the file on the current server
    SOURCE_FILE_NAME=TSPAR_`date +%Y%m%d`.txt
    TARGET_FILE_NAME=TSPAR_`date +%Y%m%d`.txt
    cd /interf/torrance/TCW/FI
    ftp -nv << EOF
    open 10.252.8.73 
    user sanju sanju
    cd /home/sanju
    get $SOURCE_FILE_NAME
    EOF
    cp SOURCE_FILE_NAME TARGET_FILE_NAME
    rm SOURCE_FILE_NAME
    <b>note:</b>above script is working ,but we want' sftp not ftp
    don't try above script as such,because value's are
    changed for sake of security

    Try to execute same command using your OS .
    ksh + x ( is for debugging ) shell script and see where its failing .  I also did the same thing in last project  as i have written 5 different shell scripts , for backup , append file , sending file to FTP location and then create email ...
    Hope this’ll help you
    Thanks

  • Shell script for creating,altering, etc ., a database

    hi there,
    Please help me to find shell scripts for creating,altering, etc a database..
    Thanks & Regards,
    Balu.

    Thanks to all , but dbca generates XML files :
    <DatabaseTemplate name="MYDB" description="" version="10.2.0.0.0">
       <CommonAttributes>
          <option name="ISEARCH" value="false"/>
          <option name="OMS" value="false"/>
          <option name="JSERVER" value="true"/>
          <option name="SPATIAL" value="true"/>
          <option name="ODM" value="true">
             <tablespace id="SYSAUX"/>
          </option>
          <option name="IMEDIA" value="true"/>
          <option name="XDB_PROTOCOLS" value="true">
             <tablespace id="SYSAUX"/>
    ..................I need a file.sql script to launch in sqlplus. Something like the following :
    CREATE DATABASE MYDB
    USER SYS IDENTIFIED BY ***
    USER SYSTEM IDENTIFIED BY ***
    LOGFILE GROUP 1 ('/home/oracle/oracle/instances/oradata/MYDB/redo1/redo01.log') SIZE 15M,
    GROUP 2 ('/home/oracle/oracle/instances/oradata/MYDB/redo2/redo02.log') SIZE 15M,
    GROUP 3 ('/home/oracle/oracle/instances/oradata/MYDB/redo3/redo03.log') SIZE 15M
    ......................

  • Help on preparing shell script for setting the listener password

    Hi All,
    I am working on checking all my DB servers listeners and if the password is not set for the listener then I need to set the password for that.
    As we have many servers, I am planning to prepare the shell script for doing this task.
    I am familiar with setting up the listener password manually, but strucked up to prepare the shell script to do the same task.
    Can any one kindly help me on this.
    Thanks in advance,
    Mahi

    815537 wrote:
    Could any body please help me.
    Thanks,
    MahiPatience, Grasshopper
    This forum is not a chat line, and it is not paid support.
    No one is responsible for monitoring it and giving a quick response.
    Furthermore, it is a global forum. The person with the information you seek may very well live 20 time zones away from you and was going to bed just as you posted. He will not even see your post for several more hours.
    Your original post went up in the middle of the night for half the world.
    No one with the information you seek is deliberately withholding it until you sound sufficiently desperate.

  • Shell Scripts for Directory Creation !

    Hi All
    Where can we find the Shell scripts for creating Directories before installing SAP SM 7.0 on RHEL 5.2 ?
    Please let me know.
    Thanks
    Srikar

    Yes - it may be necessary if that is a completely new machine.
    But it's not that much work for that you would need a script, you can create multiple at once using
    mkdir -p /oracle/<SID>/102_64
    mkdir -p /oracle/<SID>/sapbackup
    etc.
    If you don't create them now, sapinst will tell you to create them, it won't stop with an error.
    Markus

  • Shell script for archive log transfer

    hi
    I dont want to reinvent the wheel.
    I am looking for shell script for log shipping to provide standby db.
    What I want to do is, get the last applied archived log number from alert.log
    Copy the files from archive destination according to this value.
    Cheers

    If you don't want to re-invent the wheel you use Dataguard, no scripts.
    And your script should use the dictionary, instead of some bs method to read the alert.
    v$archived_log has all information!
    Also as far as I know, the documentation describes manual standby.
    So apparently you not only don't want to reinvent the wheel, but you want the script on a silver plate on your doorstep!
    Typical attitude of most DBAs here. Use OTN for a permanent vacation.
    Sybrand Bakker
    Senior Oracle DBA

  • Shell script for below pl/sql script dbms_file_transfer

    Please let me know how tt write the shell script for below pl/sql script dbms_file_transfer it is
    I have trasfer the files from asm into filesystem .
    it is working . but i have to put in the loop
    begin
    dbms_file_transfer.copy_file(
    source_directory_object => 'src',
    source_file_name => 'ncsn',
    destination_directory_object => 'dest',
    destination_file_name => 'ncsn');
    end;
    Edited by: user8680248 on 27/10/2009 20:55

    user8680248 wrote:
    Please let me know how tt write the shell script for below pl/sql script dbms_file_transfer it is
    I have trasfer the files from asm into filesystem .
    it is working . but i have to put in the loop
    begin
    dbms_file_transfer.copy_file(
    source_directory_object => 'src',
    source_file_name => 'ncsn',
    destination_directory_object => 'dest',
    destination_file_name => 'ncsn');
    end;What database version?
    What are you trying to do exactly?
    It's working but you have to put it in a loop. Fine, what's the problem you are having?
    begin
      loop
        exit when ... whatever the exit condition is ...
        dbms_file_transfer.copy_file(
          source_directory_object => 'src',
          source_file_name => 'ncsn',
          destination_directory_object => 'dest',
          destination_file_name => 'ncsn');
      end loop;
    end;

  • Shell Script  for Startup and Shutdown the database

    Hi,
    i want Shell Script for Startup and Shutdown the database in Solaries.
    could any one can hep me where i can get this script. or send to me to [email protected]
    Thanks & Regards,
    Gangi reddy

    SHUTDOWN
    SHUTDOWN ABORT]
    Shuts down a currently running Oracle instance, optionally closing and dismounting a database.
    Terms
    Refer to the following list for a description of each term or clause:
    ABORT
    Proceeds with the fastest possible shutdown of the database without waiting for calls to complete or users to disconnect.
    Uncommitted transactions are not rolled back. Client SQL statements currently being processed are terminated. All users currently connected to the database are implicitly disconnected and the next database startup will require instance recovery.
    You must use this option if a background process terminates abnormally.
    IMMEDIATE
    Does not wait for current calls to complete or users to disconnect from the database.
    Further connects are prohibited. The database is closed and dismounted. The instance is shutdown and no instance recovery is required on the next database startup.
    NORMAL
    NORMAL is the default option which waits for users to disconnect from the database.
    Further connects are prohibited. The database is closed and dismounted. The instance is shutdown and no instance recovery is required on the next database startup.
    TRANSACTIONAL [LOCAL]
    Performs a planned shutdown of an instance while allowing active transactions to complete first. It prevents clients from losing work without requiring all users to log off.
    No client can start a new transaction on this instance. Attempting to start a new transaction results in disconnection. After completion of all transactions, any client still connected to the instance is disconnected. Now the instance shuts down just as it would if a SHUTDOWN IMMEDIATE statement was submitted. The next startup of the database will not require any instance recovery procedures.
    The LOCAL mode specifies a transactional shutdown on the local instance only, so that it only waits on local transactions to complete, not all transactions. This is useful, for example, for scheduled outage maintenance.
    Usage
    SHUTDOWN with no arguments is equivalent to SHUTDOWN NORMAL.
    You must be connected to a database as SYSOPER, or SYSDBA. You cannot connect via a multi-threaded server. For more information about connecting to a database, see the CONNECT command earlier in this chapter.
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a90842/ch13.htm#1013607
    Joel Pérez

  • Shell scripting for sql queires

    Hi All,
    I have written 4 sql queires.now i want to write shell scripting for this.so please guide me in this issue..
    1. select * from emp;
    2. select * from dept;
    3. delete from emp;
    4. delete from dept;
    Thank you.

    Hi,
    Apologees for the c!=k!=b stuff. I guess it was to cryptic. It means
    C shell is not equal to Korne shell and both are not equal to Bourne shell.
    I can't provide you with any site for such stuff. Maybe Google might help? Or someone who is a nicer guy than me...

Maybe you are looking for

  • How to implement role control in my WebDynpro application?

    Hi,     I am new to WebDynpro development. And now I create a simple application PMS which uses the WebDynpro Client for client page, Mysql and iBatis for database layer.     Now, I want to add role to my application to control the user accessing iVi

  • Firewire transfer without Target Disk Mode

    Is there anyway to connect two Macs to files transfer without using Target Disk Mode, or rather, without having to shut either of the two machines down first? Either natively or with another program?

  • For MIGo

    Hi all,           When i save in migo transaction code . A mail should trigger to stores manager. Please give a code how to write it. thanks venkat

  • Where can i find the chassis file for import in MAX for drawing connection diagram before purchasing

    where can i find the chassis file for import in MAX for drawing connection diagram before purchasing chassis: NI PXIe-1078 thx

  • Frog in the house !!!

    My wife, the gardener, is afraid of wildlife... outside, and even more so inside the house I am the designated "Dragon Killer" when there is anything from the outside that makes it's way to the inside Tonight, that was a tiny green frog hopping acros