写几个脚本,linux放到crontab里,window就放到计划任务里,定时的执行脚本就可以了
1.星期天晚上 -level 0 backup performed(全备份)
2.星期一晚上 -level 2 backup performed
3.星期二晚上 -level 2 backup performed
4.星期三晚上 -level 1 backup performed
5.星期四晚上 -level 2 backup performed
6.星期五晚上 -level 2 backup performed
7.星期六晚上 -level 2 backup performed
如果星期二需要恢复的话,只需要1+2,
如果星期四需要恢复的话,只需要1+4,
如果星期五需要恢复的话,只需要1+4+5,
如果星期六需要恢复的话,只需要1+4+5+6.
crontab
45 23 * * 0 /u01/dbs/scripts/backup1.sh
45 23 * * 1 /u01/dbs/scripts/backup2.sh
45 23 * * 2 /u01/dbs/scripts/backup2.sh
45 23 * * 3 /u01/dbs/scripts/backup1.sh
45 23 * * 4 /u01/dbs/scripts/backup2.sh
45 23 * * 5 /u01/dbs/scripts/backup2.sh
45 23 * * 6 /u01/dbs/scripts/backup1.sh
oracle imp/exp
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、 导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、 简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、 增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)、“完全”增量导出(Complete)
即备份三个数据库,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/manager inctype=incremental file=040731.dmp
(3)、“累积型”增量导出
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:
exp system/manager inctype=cumulative file=040731.dmp
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。
比如数据库的被封任务可以做如下安排:
星期一:完全备份(A)
星期二:增量导出(B)
星期三:增量导出(C)
星期四:增量导出(D)
星期五:累计导出(E)
星期六:增量导出(F)
星期日:增量导出(G)
Oracle 2009-08-16 23:59:11 阅读177 评论0 字号:大中小 订阅
SQL code7. 将数据库设置成归档模式的数据库
(1)查看当前数据库的模式
SQL>archive log list;
(2)关闭数据库实例
SQL>shutdown immediate;
(3)将数据库启动为mount状态
SQL>STARTUP MOUNT;
(4)将数据库设置为archivelog模式
SQL>alter database archivelog;
(5)打开数据库
SQL>ALTER DATABASE OPEN;
(6)检查数据库模式
SQL>archive log list;
OS :RHEL AS 4 oracle 10g
0备份脚本
#!/bin/bash
# incremental level 0 backup script
source /home/oracle/.bash_profile
current_day=`date +%Y%m%d`
mkdir /home/oracle/RMANBACKUP/$current_day
rman target / < { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/RMANBACKUP/$current_day/PID-%F'; allocate channel dev1 type disk; allocate channel dev2 type disk; allocate channel dev3 type disk; backup incremental level 0 tag='db0' format '/home/oracle/RMANBACKUP/$current_day/%n_%T_%U' database; sql 'alter system archive log current'; backup archivelog all format '/home/oracle/RMANBACKUP/$current_day/arc_%n_%T_%U' delete all input; release channel dev1; release channel dev2; release channel dev3; } EOF 1级累积增量脚本 #!/bin/bash # incremental level 1 backup script source /home/oracle/.bash_profile current_day=`date +%Y%m%d` incr_day=incr$current_day mkdir /home/oracle/RMANBACKUP/$incr_day rman target / < { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/RMANBACKUP/$incr_day/PID-%F'; allocate channel dev1 type disk; allocate channel dev2 type disk; allocate channel dev3 type disk; backup incremental level 1 cumulative tag='db1' format '/home/oracle/RMANBACKUP/$incr_day/%n_%T_%U' database; sql 'alter system archive log current'; backup archivelog all format '/home/oracle/RMANBACKUP/$incr_day/arc_%n_%T_%U' delete all input; release channel dev1; release channel dev2; release channel dev3; } EOF 每天RMAN出来的backup set集合到一个文件夹下面 冷备份,就是关闭db,物理copy数据文件、日志文件、控制文件、归档文件。 rem ***** COLDBACKUP ORACLE DATABASE ON WINDOWS NT ***** set ShutDownFile=C:ShutDown.SQL echo connect internal/oracle > %ShutDownFile% echo shutdown immediate >> %ShutDownFile% echo startup >> %ShutDownFile% echo shutdown normal >> %ShutDownFile% echo exit >> %ShutDownFile% rem ***** SHUTDOWN THE DATABASE ******* set oracle_sid=dbprim svrmgrl @%ShutDownFile% net stop OracleStart%oracle_sid% net stop OracleService%oracle_sid% rem ***** SET BACKUP FILES DIRECTORY ***** e: md oradb cd oradb md backups cd backups rem *****cold backup for "dbprim" database on 2009-3-17 10:56:40 ... ***** rem ***** COPY FILES ***** rem Redo logs copy C:ORACLE-DATAREDO03.LOG copy C:ORACLE-DATAREDO02.LOG copy C:ORACLE-DATAREDO01.LOG rem Datafile copy C:ORACLE-DATADBPRIMSYSTEM01.DBF copy C:ORACLE-DATADBPRIMUNDOTBS01.DBF copy C:ORACLE-DATADBPRIMSYSAUX01.DBF copy C:ORACLE-DATADBPRIMUSERS01.DBF copy C:ORACLE-DATADBPRIMEXAMPLE01.DBF copy C:ORACLE-DATADBPRIMORATBS.DBF 6 rows selected rem Control files copy C:ORACLE-DATADBPRIMCONTROL01.CTL copy C:ORACLE-DATADBPRIMCONTROL02.CTL copy C:ORACLE-DATADBPRIMCONTROL03.CTL rem *********START UP DATABASE AND SERVICES******** net start OracleService%oracle_sid% net start OracleStart%oracle_sid% set StartFile=C:start.SQL echo connect internal/oracle > %StartFile% echo startup >> %StartFile% echo exit >> %StartFile% set oracle_sid=dbprim svrmgrl @%StartFile% del /Q %ShutDownFile% del /Q %StartFile% exit