方法一:
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。:
1、建立批处理文件backup.bat
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log将生成oracle2006-01-09.dmp文件
2、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行backup.bat
3、以后每天将在目录中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的备份和日志文件。
说明:
(1)%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
(2)如需要准确的时间做为文件名,请用%time%函数,参数同上。
方法二:
利用oracle的备份命名rman备份,这样就可以做完全备份和增量备份了,利用任务计划设置备份策略,比如每周一做0级备份,周二至周日做1级备份。注意利用rman做备份,必须启用归档日志模式。
1、建立0级备份批处理文件backup_0.bat,内容如下:
set oracle_sid=oaserver
rman target / msglog c:\logs\%date:~0,10%.log cmdfile=oaserver_backup_0.txt
2、然后创建负责备份的文件backup_0.txt,内容如下
run{
allocate channel \'d1\' type disk;
allocate channel \'d2\' type disk;
allocate channel \'d3\' type disk;
allocate channel \'d4\' type disk;
backup incremental level 0 cumulative tag \'db0\' format \'E:\oaserver\backup\db0%u_%s_%p\' database;
sql \'alter system archive log current\';
backup filesperset 4 archivelog all delete input;
delete noprompt obsolete;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit;
EOF
echo "-------------------------end------------------------------";date
3、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行backup_0.bat
4、建立1级备份(增量备份)批处理文件backup_1.bat,内容如下:
set oracle_sid=oaserver
rman target / msglog c:\logs\%date:~0,10%.log cmdfile=oaserver_backup_1.txt
5、然后创建负责备份的文件backup_1.txt,内容如下
run{
allocate channel \'d1\' type disk;
allocate channel \'d2\' type disk;
allocate channel \'d3\' type disk;
allocate channel \'d4\' type disk;
backup incremental level 1 cumulative tag \'db1\' format \'E:\oaserver\backup\db1%u_%s_%p\' database;
sql \'alter system archive log current\';
backup filesperset 4 archivelog all delete input;
delete noprompt obsolete;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit;
EOF
echo "-------------------------end------------------------------";date
6、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行backup_1.bat
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。:
1、建立批处理文件backup.bat
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log将生成oracle2006-01-09.dmp文件
2、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行backup.bat
3、以后每天将在目录中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的备份和日志文件。
说明:
(1)%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
(2)如需要准确的时间做为文件名,请用%time%函数,参数同上。
方法二:
利用oracle的备份命名rman备份,这样就可以做完全备份和增量备份了,利用任务计划设置备份策略,比如每周一做0级备份,周二至周日做1级备份。注意利用rman做备份,必须启用归档日志模式。
1、建立0级备份批处理文件backup_0.bat,内容如下:
set oracle_sid=oaserver
rman target / msglog c:\logs\%date:~0,10%.log cmdfile=oaserver_backup_0.txt
2、然后创建负责备份的文件backup_0.txt,内容如下
run{
allocate channel \'d1\' type disk;
allocate channel \'d2\' type disk;
allocate channel \'d3\' type disk;
allocate channel \'d4\' type disk;
backup incremental level 0 cumulative tag \'db0\' format \'E:\oaserver\backup\db0%u_%s_%p\' database;
sql \'alter system archive log current\';
backup filesperset 4 archivelog all delete input;
delete noprompt obsolete;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit;
EOF
echo "-------------------------end------------------------------";date
3、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行backup_0.bat
4、建立1级备份(增量备份)批处理文件backup_1.bat,内容如下:
set oracle_sid=oaserver
rman target / msglog c:\logs\%date:~0,10%.log cmdfile=oaserver_backup_1.txt
5、然后创建负责备份的文件backup_1.txt,内容如下
run{
allocate channel \'d1\' type disk;
allocate channel \'d2\' type disk;
allocate channel \'d3\' type disk;
allocate channel \'d4\' type disk;
backup incremental level 1 cumulative tag \'db1\' format \'E:\oaserver\backup\db1%u_%s_%p\' database;
sql \'alter system archive log current\';
backup filesperset 4 archivelog all delete input;
delete noprompt obsolete;
release channel d1;
release channel d2;
release channel d3;
release channel d4;
}
list backup;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
exit;
EOF
echo "-------------------------end------------------------------";date
6、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行backup_1.bat