Oracle Shell Scripting
Oracle Shell Scripting
This article presents some basic techniques for creating Windows batch files and UNIX/Linux shell scripts that connect to SQL*Plus and RMAN. Windows UNIX and Linux (Method 1) UNIX and Linux (Method 2)
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:oraclebackupDB10G%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.
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.
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. For more information see: SQL*Plus User's Guide and Reference Oracle Database Backup and Recovery Reference UNIX Commands for DBAs