oracle 定期备份并清理归档以及过期备份的脚本

我需要每周六做一个0备份,没天(除周六)做一个1备份,兵器备份以及归档只保留一个月,下面是我找的一个脚本,前面备份部分能理解,后面的删除部分 不太懂,谁能帮我解释下,或者有没有能实现我需求的脚本。

run {

allocate channel oem_backup_disk1 type disk format 'F:\\BACKUP\\FULL\\\\KHT\%U' maxpiecesize 80 G;

backup incremental level 0 cumulative as COMPRESSED BACKUPSET tag '%TAG' database include current controlfile;

sql 'alter system checkpoint';

sql 'alter system switch logfile';

sql 'alter system archive log current';

backup as COMPRESSED BACKUPSET tag '%TAG' archivelog all not backed up delete all input;

release channel oem_backup_disk1;

allocate channel t2  type disk ;

crosscheck backup;

crosscheck archivelog all;

delete noprompt archivelog until time 'sysdate-7';

delete noprompt archivelog all completed before 'sysdate-7';

delete expired archivelog all;

report obsolete;

delete noprompt obsolete recovery window of 60 days;

delete noprompt expired backup;

release channel t2;

}

4回答

风影子风影子  数据库管理员 , 深圳
东方之星yangyjianoyangch赞同了此回答
不需要这样,可以备份完后自动删除归档日志。1、先设置参数,保留1个月备份及归档rman target /CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 31 DAYS;2、全备份脚本run {show all;allocate channel c1 type disk;crosscheck archivelog all;delete noprompt expired a...显示全部

不需要这样,可以备份完后自动删除归档日志。

1、先设置参数,保留1个月备份及归档

rman target /

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 31 DAYS;


2、全备份脚本

run {

show all;

allocate channel c1 type disk;

crosscheck archivelog all;

delete noprompt expired archivelog all;

crosscheck backup;

delete noprompt expired backup;

sql \'alter system archive log current\';

backup incremental level 0 database format \'e:\\dbbackup\\full_%d_%T_%s_%p\' plus archivelog format \'e:\\dbbackup\\arch_%d_%T_%s_%p\' delete all input;

backup current controlfile format \'e:\\dbbackup\\ctrl_%d_%T_%s_%p\';

report obsolete;

delete noprompt obsolete;

release channel c1;

}


3、增量备份

run {

show all;

allocate channel c1 type disk;

crosscheck archivelog all;

delete noprompt expired archivelog all;

crosscheck backup;

delete noprompt expired backup;

sql \'alter system archive log current\';

backup incremental level 1 database format \'e:\\dbbackup\\incr_%d_%T_%s_%p\' plus archivelog format \'e:\\dbbackup\\arch_%d_%T_%s_%p\' delete all input;

backup current controlfile format \'e:\\dbbackup\\ctrl_%d_%T_%s_%p\';

report obsolete;

delete noprompt obsolete;

release channel c1;

}


4、把脚本放到windows计划任务,实现你的周六全备,其余时间增量备份的目的。

收起
 2017-02-08
浏览2554
royalwzyroyalwzy  数据库架构师 , 海通证券股份有限公司
东方之星赞同了此回答
首先建议楼主去看看官方的文档,这些内容都写的非常明白。http://docs.oracle.com/cd/E11882_01/backup.112/e10642/toc.htmhttp://docs.oracle.com/cd/E11882_01/backup.112/e10643/toc.htm首先看一下Oracle备份的概念:完全备份和增量备份1.Full backup:与whole database b...显示全部

首先建议楼主去看看官方的文档,这些内容都写的非常明白。

http://docs.oracle.com/cd/E11882_01/backup.112/e10642/toc.htm

http://docs.oracle.com/cd/E11882_01/backup.112/e10643/toc.htm


首先看一下Oracle备份的概念:完全备份和增量备份

1.Full backup:与whole database backup不同;它是从数据文件备份的那一刻,所有数据文件中包含数据的块的拷贝;

     1.rman拷贝了所有数据块到备份集,除了那些从来没有被使用过的块;

     2.对于full image copy,整个数据文件都被复制;

     3.full backup不能是增量备份策略的一部分,因为接下来的增量备份不能基于它还原;

2.Incremental Backup:上次备份之后,所有发生改变的数据块的拷贝;

     1.Oracle支持两种级别的增量备份,即0级增量备份和1级增量备份;

     2.0级增量备份等同于full backup,但是必须被标记为0级备份;

     3.1级增量备份又分为两种类型:cumulative和differential(即累计增量备份和差异增量备份);

     4.累计增量备份是备份上次0级备份之后所有改变的块;差异增量备份是备份上次0级或者1级增量备份后改变的块;


一些备份的选项:

    1. CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO \'%F\':规定了控制文件备份的目录和格式;

    2. CONFIGURE CONTROLFILE AUTOBACKUP OFF;若为OFF,就不备份控制文件,如果为ON,则备份控制文件,建议为ON;如果备份file 1,即SYSTEM表空间,则无论是否自动备份控制文件,都会备份;

    3. CONFIGURE MAXSETSIZE TO UNLIMITED/2G;设置备份集的最大大小,备份片的最大大小用maxpiecesize指定;

    4. CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT \'/tmp/backup/%U\';设置备份设备和位置;

    5. CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET:配置备份时的并发度,缺省使用备份集,而不是镜像备份;

    6.CONFIGURE DATAFILE/ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;配置数据文件/归档日志文件每次产生2个备份,最大为4;

    7. CONFIGURE xxxxxx CLEAR:清除某一个配置到默认设置;

    8. LIST BACKUPSET/COPY:查看当前备份集/镜像拷贝信息;

    9. LIST BACKUPSET/COPY OF DATAFILE n/TABLESPACE tbs_name/CONTROLFILE/ARCHIVELOG/SPFILE:列出某一个数据文件/表空间/控制文件/归档日志/配置文件的备份集/镜像拷贝;

    10. REPORT SCHEMA:查看当前数据库的结构;

    11. DELETE BACKUPSET:删除全部的备份集;

    12. DELETE BACKUPSET bs1, bs2, ...:删除指定的备份集;

收起
 2017-02-08
浏览2573
oyangchoyangch  系统工程师 , HiTech
建议好好去看一下ORACLE备份恢复的文档。全备和增量备一般会通过操作系统的定期任务运行来实现,实现全备和增量备的命令参数写法是不一样的,level 1才是实现增量备。显示全部

建议好好去看一下ORACLE备份恢复的文档。全备和增量备一般会通过操作系统的定期任务运行来实现,实现全备和增量备的命令参数写法是不一样的,level 1才是实现增量备。

收起
 2017-02-09
浏览2450
冯帅冯帅  数据库管理员 , 贝壳金服
database/122/RCMRF/RMAN.htm看一下每一句话的意思 你自己就可以修改了显示全部

database/122/RCMRF/RMAN.htm

看一下每一句话的意思 你自己就可以修改了

收起
 2017-02-08
浏览2408

提问者

王海_M系统工程师, hlt

问题状态

  • 发布时间:2017-02-08
  • 关注会员:5 人
  • 问题浏览:4314
  • 最近回答:2017-02-09
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30