我请求您提供有关备份Oracle数据库12c的脚本的建议。我用图片和cmd屏幕附上图片。当我运行这个脚本时,变量正在设置,连接到数据库,然后RMAN什么也没做。有解决方案吗谢谢。
@echo off
echo Automatic Backup Oracle
pushd .
SET ORACLE_HOME=C:\app\oracle\product\12.2.0\dbhome_1
SET ORACLE_SID=ORCL
echo ----------------------------------------------------
echo ORACLE_HOME : %ORACLE_HOME%
echo ORACLE_SID : %ORACLE_SID%
echo ----------------------------------------------------
RMAN TARGET system/password
run {
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'c:\backup\%F';
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'c:\backup\%d_%T_%u';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'c:\backup\SNCFORCL.ORA';
}
run {
backup database;
backup archivelog all delete input;
}
PAUSE
当我运行此脚本时,变量已设置,它连接到数据库,然后RMAN什么都不做。
在此图像中是cmd结果:
我究竟做错了什么?
您需要拆分两个文件:批处理文件和RMAN脚本
批处理文件:backup.bat
@echo off
echo Automatic Backup Oracle
pushd .
SET ORACLE_HOME=C:\app\oracle\product\12.2.0\dbhome_1
SET ORACLE_SID=ORCL
echo ----------------------------------------------------
echo ORACLE_HOME : %ORACLE_HOME%
echo ORACLE_SID : %ORACLE_SID%
echo ----------------------------------------------------
RMAN TARGET / @file.rman log=backup.log
脚本RMAN称为file.rman或其他名称
run {
backup database;
backup archivelog all delete input;
}
这部分是设置:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'c:\backup\%F';
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'c:\backup\%d_%T_%u';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'c:\backup\SNCFORCL.ORA';
可以从脚本中删除并为每个银行运行一次。配置完成后,设置将是永久性的。
因此,您的脚本需要两个文件:backup.bat和file.rman
就像Compo说的那样,把你的RMAN脚本放到一个.rcv文件中并使用这个命令运行它,就像你上面的那样,但是使用@<rcv>
,也许日志记录会很好:
RMAN TARGET / @myRMANbackup.rcv log=myRMANlogfile.log