Oracle 自动备份存储过程实施过程
在 D:\export\下建立一个 sql 脚本,填写内容如下。PS(例子请看最后)
1.
SET echo off ;
SET heading
SET feedback
SPOOL 'D:/export/EXP.SQL'
SELECT CASE
off ;
off ;
WHEN LINE = 1 THEN
'CREATE OR REPLACE ' || TEXT
WHEN LINE = MAX_LINE THEN
TEXT || CHR(10 ) || '/'
ELSE
TEXT
END
FROM USER_SOURCE A
LEFT JOIN (SELECT A.NAME,A.TYPE, MAX(LINE) MAX_LINE
FROM USER_SOURCE A
WHERE TYPE in ( 'PROCEDURE', 'PACKAGE' ,'PACKAGE BODY' )
GROUP BY A.NAME,A.TYPE ) B ON A.NAME||A.TYPE = B.NAME||B.TYPE
WHERE A.TYPE in ('PROCEDURE' , 'PACKAGE', 'PACKAGE BODY' )
ORDER BY a.NAME||a.TYPE , LINE;
SPOOL OFF
exit;
2. 在 dos 界面中执行上面写好的 sql 脚本,测试能否跑通 如图
表示没问题
3. 在建好的 sql 脚本的目录下在建一个批处理文件 如图
(注,两个文件要放在一起)
4. 批处理文件内容如下
@echo off
set BACKUP_DIR=D:\export\
set ORACLE_USERNAME=’’
set ORACLE_PASSWORD=qxsj_1024
set ORACLE_DB=TZDM_DM1
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a
rem ----------------------------登陆数据库
sqlplus %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% @%BACKUP_DIR%export.sql > export.log
rem ---------------------压缩
%RAR_CMD% a
-df
"%BACKUP_DIR%export%date:~0,4%-%date:~5,2%-%date:~8,2%.rar"
"%BACKUP_DIR%EXP.SQL"
"%BACKUP_DIR%export.log"
Exit
3.双击 bat 文件手动备份,看能否跑成功,不成功,可能原因如下
1. 查看文件路径是否建立
2. 查看压缩路径是否正确
3. 查看数据库数据名密码实例名是否正确
4. 查看导出路径是否有问题
4.如果成功进行下一步
打开控制面板,找到任务计划,选择创建基本任务
自己要创建的名称和,描述
根据实际情况选择,一般是选每天
选择开始的执行计划的时间
点击浏览,找到 bat 文件,点击打开
最后查看是否正确,点击完成
注意事项:
PS(Sql 脚本不用做任何修改,直接复制粘贴)
Sql 脚本:
SET echo off ;
SET heading
SET feedback
SPOOL 'D:/export/EXP.SQL'
SELECT CASE
off ;
off ;
WHEN LINE = 1 THEN
'CREATE OR REPLACE ' || TEXT
WHEN LINE = MAX_LINE THEN
TEXT || CHR(10 ) || '/'
ELSE
TEXT
END
FROM USER_SOURCE A
LEFT JOIN (SELECT A.NAME,A.TYPE, MAX(LINE) MAX_LINE
FROM USER_SOURCE A
WHERE TYPE in ( 'PROCEDURE', 'PACKAGE' ,'PACKAGE BODY' )
GROUP BY A.NAME,A.TYPE ) B ON A.NAME||A.TYPE = B.NAME||B.TYPE
WHERE A.TYPE in ('PROCEDURE' , 'PACKAGE', 'PACKAGE BODY' )
ORDER BY a.NAME||a.TYPE , LINE;
SPOOL OFF
exit;
批处理脚本:
@echo off
set BACKUP_DIR=D:\export\
set ORACLE_USERNAME=APP
set ORACLE_PASSWORD=qxsj_1024
set ORACLE_DB=TZDM_DM1
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a
rem ----------------------------登陆数据库
sqlplus %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% @%BACKUP_DIR%export.sql > export.log
rem ---------------------压缩
%RAR_CMD% a
-df
"%BACKUP_DIR%export%date:~0,4%-%date:~5,2%-%date:~8,2%.rar"
"%BACKUP_DIR%EXP.SQL"
"%BACKUP_DIR%export.log"
exit