Oracle-SHELL程式設計

db_wjw發表於2012-05-11
本文轉載自網站

MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

This article presents some basic techniques for creating Windows batch files and UNIX/Linux shell scripts that connect to SQL*Plus and RMAN. 

Windows

To run an SQL script using SQL*Plus, place the SQL along with any SQL*Plus commands in a file and save it on your operating system. For example, save the following script in a file called "C:\emp.sql".

CONNECT scott/tiger

SPOOL C:\emp.lst

SET LINESIZE 100

SET PAGESIZE 50

SELECT *

FROM emp;

SPOOL OFF

EXIT;

Next, create a batch file called "C:\get_emp.bat" containing the following command.

sqlplus /nolog @C:\emp.sql

The resulting batch file can be run manually, by double-clicking on it, or scheduled using the Scheduled Tasks Wizard (Start > Programs > Accessories > System Tools > Scheduled Tasks) or the AT scheduler.

The method is very similar when using Recovery Manager (RMAN). As an example, place the following RMAN commands in a file called "C:\cmdfile.txt".

RUN {

  ALLOCATE CHANNEL ch1 TYPE 

    DISK FORMAT 'C:\oracle\backup\DB10G%d_DB_%u_%s_%p'; 

  BACKUP DATABASE PLUS ARCHIVELOG;

  RELEASE CHANNEL ch1;

}

EXIT;

Next create a batch file called "C:\backup.bat" containing the following command.

rman target=/ @cmdfile.txt

This command can include a catalog= entry if a recovery catalog is used. Once again, resulting batch file can be run manually or scheduled.

UNIX and Linux (Method 1)

The previous methods works equally well in UNIX and Linux environments. For example, save the following script in a file called "/u01/emp.sql".

CONNECT scott/tiger

SPOOL /u01/emp.lst

SET LINESIZE 100

SET PAGESIZE 50

SELECT *

FROM emp;

SPOOL OFF

EXIT;

Next, create a shell script called "/u01/get_emp.ksh" containing the following lines.

#!/bin/ksh

sqlplus /nolog @/u01/emp.sql

The following command makes the file executable for the file owner.

chmod u+x /u01/get_emp.ksh

The resulting shell script can be run manually from the command line, or scheduled using CRON.

For RMAN, place the following RMAN commands in a file called "/u01/cmdfile.txt".

RUN {

  ALLOCATE CHANNEL ch1 TYPE 

    DISK FORMAT '/u01/backup/DB10G/%d_DB_%u_%s_%p'; 

  BACKUP DATABASE PLUS ARCHIVELOG;

  RELEASE CHANNEL ch1;

}

EXIT;

Next create a batch file called "/u01/backup.ksh" containing the following lines.

#!/bin/ksh

rman target=/ @/u01/cmdfile.txt

This command can include a catalog= entry if a recovery catalog is used. Once again, resulting shell script must be made executable using the following command.

chmod u+x /u01/backup.ksh

The shell script is now ready to run.

UNIX and Linux (Method 2)

UNIX and Linux environments also allow the SQL*Plus and RMAN commands to be piped directly from the command line. For example, save the following commands in a file called "/u01/get_emp.ksh".

#!/bin/ksh

sqlplus /nolog <

CONNECT scott/tiger

SPOOL /u01/emp.lst

SET LINESIZE 100

SET PAGESIZE 50

SELECT *

FROM emp;

SPOOL OFF

EXIT;

EOF

Notice the "<

chmod u+x /u01/get_emp.ksh

The shell script is ready to be run manually from the command line or scheduled using CRON.

The following example shows how RMAN can use the same method. Create a file called "/u01/backup.ksh" with the following contents.

#!/bin/ksh

rman target=/ <

RUN {

  ALLOCATE CHANNEL ch1 TYPE 

    DISK FORMAT '/u01/backup/DB10G/%d_DB_%u_%s_%p'; 

  BACKUP DATABASE PLUS ARCHIVELOG;

  RELEASE CHANNEL ch1;

}

EXIT;

EOF

Once again, the script can be made executable using the following command.

chmod u+x /u01/backup.ksh

The shell script is now ready to run.




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26194851/viewspace-723327/,如需轉載,請註明出處,否則將追究法律責任。

相關文章