Because you pointed your ORACLE_HOME variable at this new install and then issued "startup nomount" in your script, it just naturally follows you would have a second instance up and running. So, obviously, perl is working and so is your script.
So, let's start over. You are trying to mimic an interactive session with RMAN. I assume you are a DBA and you have read the Oracle backup and recovery and RMAN documents. If you are not familiar with these, you should read and understand them. Next, I suggest the following: 1. Open a session on your server and Set your environment using oraenv 2. Start RMAN like you would in your script. 3. Issue the commands you are trying to get your script to the RMAN process you are running. Note the results. Do not set your environment using the %ENV hash - use oraenv. I cannot stress this enough. I know one of the mantras of Perl is TMTOWTDI, but this does not hold true for the use of oraenv. I have been a DBA for almost 10 years and have been working with Perl since version 4 and this is by far the easiest way to set up your environment and to keep things running. Good luck. rr ________________________________ From: joe bayer [mailto:[EMAIL PROTECTED] Sent: Friday, March 23, 2007 9:13 PM To: Reidy, Ron; RaviChandra Chelikam; [email protected] Subject: RE: help with my perl script I I just installed the ORACLE 10.2.0.3 to another home, and re-run the script, this time, even perl itself stopped running. ======================= The script is like this: #!/usr/bin/perl my $ORACLE_HOME = "/opt/oracle/product_10g_2"; $ENV{ORACLE_HOME}=$ORACLE_HOME; my $ORACLE_SID="test"; $ENV{ORACLE_SID}=$ORACLE_SID; my $backup_log = "backup_log.log"; open RMAN, "| /opt/oracle/product_10g_2/bin/rman target=sys/temp" or die "Can't pipe to $!"; print RMAN "startup nomount\n"; print RMAN "exit\n"; close RMAN; ===================== [EMAIL PROTECTED] dba]$ ps -eaf|grep pmon ora92 8178 1 0 22:31 ? 00:00:00 ora_pmon_test ora92 10212 1 0 23:04 ? 00:00:00 ora_pmon_test The SID did passed, but somehow this "test" is different from that "test", how can that be possible? Thanks for your help. "Reidy, Ron" <[EMAIL PROTECTED]> wrote: Then there is something wrong with your environment. Have you tried using oraenv to set you environment vs. setting the %ENV hash? In cron, it would look like this: (export ORAENV_ASK=NO && export ORACLE_SID=test && . oraenv && /path/to/rman/script) There are other environment variables that are set in oraenv. Another question I have to ask - is the DB running? -- Ron Reidy Lead DBA Array BioPharma, Inc. ________________________________ From: joe bayer [mailto:[EMAIL PROTECTED] Sent: Friday, March 23, 2007 4:25 PM To: Reidy, Ron; RaviChandra Chelikam; [email protected] Subject: RE: help with my perl script Thanks for your prompt response. I tried $ENV{ORACLE_SID}=$ORACLE_SID or $ENV{ORACLE_SID}="test" It did not work. "Reidy, Ron" <[EMAIL PROTECTED]> wrote: See below ... ________________________________ From: joe bayer [mailto:[EMAIL PROTECTED] Sent: Friday, March 23, 2007 3:33 PM To: Reidy, Ron; RaviChandra Chelikam; [email protected] Subject: help with my perl script Dear group, I know it is not DBI related problem, but it is hard to find some one who knows perl, shell and Oracle. I am trying to write a RMAN script, ====== #!/usr/bin/perl my $ORACLE_HOME = "/opt/oracle/product_10g/test/10.2"; $ENV{ORACLE_HOME}=$ORACLE_HOME; my $ORACLE_SID="test"; $ENV{ORACLE_SID}=test; # what is this? Shouldn't this read $ENV{ORACLE_SID}=$ORACLE_SID or $ENV{ORACLE_SID}="test" my $backup_log = "/backup/backup_log.log"; open RMAN, "| /opt/oracle/product_10g/eratest/10.2/bin/rman target=sys/temp log=$backup_log" or die "Can't pipe to $!"; print RMAN "exit\n"; close RMAN; ====== It works in command line, but when I put it into crontab job, I always get =================== connected to target database (not started) RMAN> =================== The script does not recognize the sid, what can I do to fix it? Thanks very much for your help. ________________________________ No need to miss a message. Get email on-the-go <http://us.rd.yahoo.com/evt=43910/*http:/mobile.yahoo.com/mail%0d%0a> with Yahoo! Mail for Mobile. Get started. <http://us.rd.yahoo.com/evt=43910/*http:/mobile.yahoo.com/mail%0d%0a> ________________________________ size=2 width="100%" align=center> This electronic message transmission is a PRIVATE communication which contains information which may be confidential or privileged. The information is intended to be for the use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. Please notify the sender of the delivery error by replying to this message, or notify us by telephone (877-633-2436, ext. 0), and then delete it from your system. ________________________________ No need to miss a message. Get email on-the-go <http://us.rd.yahoo.com/evt=43910/*http:/mobile.yahoo.com/mail%0d%0a> with Yahoo! Mail for Mobile. Get started. <http://us.rd.yahoo.com/evt=43910/*http:/mobile.yahoo.com/mail%0d%0a> ________________________________ Be a PS3 game guru. Get your game face on with the latest PS3 news and previews at Yahoo! Games. <http://us.rd.yahoo.com/evt=49936/*http:/videogames.yahoo.com>
