Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle
的相关工作,也是DBA必不可少的技能之一。本文针对Linux/Unix shell脚本调用sql, rman 脚本给出了相关示例。
一、由shell脚本调用sql,rman脚本
-
1、shell脚本调用sql脚本
-
-
oracle@SZDB:~> more dept.sql
-
connect scott/tiger
-
spool /tmp/dept.lst
-
set linesize 100 pagesize 80
-
select * from dept;
-
spool off;
-
exit;
-
-
-
oracle@SZDB:~> more get_dept.sh
-
-
-
-
-
if [ -f ~/.bashrc ]; then
-
. ~/.bashrc
-
fi
-
-
export ORACLE_SID=CNMMBO
-
sqlplus -S /nolog @/users/oracle/dept.sql
-
exit
-
-
-
oracle@SZDB:~> chmod 775 get_dept.sh
-
-
-->执行shell脚本
-
oracle@SZDB:~> ./get_dept.sh
-
-
DEPTNO DNAME LOC
-
---------- -------------- -------------
-
10 ACCOUNTING NEW YORK
-
20 RESEARCH DALLAS
-
30 SALES CHICAGO
-
40 OPERATIONS BOSTON
-
-
2、shell脚本调用rman脚本
-
-
oracle@SZDB:~> more rman.rcv
-
RUN {
-
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
-
CONFIGURE BACKUP OPTIMIZATION ON;
-
CONFIGURE CONTROLFILE AUTOBACKUP ON;
-
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/users/oracle/bak/%d_%F';
-
ALLOCATE CHANNEL CH1 TYPE DISK MAXPIECESIZE=4G;
-
ALLOCATE CHANNEL CH2 TYPE DISK MAXPIECESIZE=4G;
-
SET LIMIT CHANNEL CH1 READRATE=10240;
-
SET LIMIT CHANNEL CH1 KBYTES=4096000;
-
SET LIMIT CHANNEL CH2 READRATE=10240;
-
SET LIMIT CHANNEL CH2 KBYTES=4096000;
-
CROSSCHECK ARCHIVELOG ALL;
-
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
-
BACKUP
-
DATABASE FORMAT '/users/oracle/bak/%d_FULL__%U';
-
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
-
BACKUP ARCHIVELOG ALL FORMAT '/users/oracle/bak/%d_LF_%U' DELETE INPUT;
-
DELETE NOPROMPT OBSOLETE;
-
RELEASE CHANNEL CH1;
-
RELEASE CHANNEL CH2;
-
}
-
-
-
oracle@SZDB:~> more rman_bak.sh
-
-
-
-
-
if [ -f ~/.bashrc ]; then
-
. ~/.bashrc
-
fi
-
-
export ORACLE_SID=CNMMBO
-
$ORACLE_HOME/bin/rman target / cmdfile=/users/oracle/rman.rcv log=/users/oracle/bak/rman.log
-
exit
-
-
-
oracle@SZDB:~> chmod 775 rman_bak.sh
-
-
-
oracle@SZDB:~> ./rman_bak.sh
二、嵌入sql语句及rman到shell脚本
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14293828/viewspace-1649568/
,如需转载,请注明出处,否则将追究法律责任。