zoukankan      html  css  js  c++  java
  • RMAN备份策略

    前言

    对Oracle数据库制定一个有效的备份策略,使用RMAN做增量备份,减少每次都全备所带来的时间、系统资源和存储空间的占用,同时也尽量地减少恢复数据库的时间。

     一、备份规划

    二、RMAN配置

    RMAN> show all;
    
    RMAN configuration parameters for database with db_unique_name ORCL are:
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
    CONFIGURE BACKUP OPTIMIZATION OFF; # default
    CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/backup/controlfile/%F';
    CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
    CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
    CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   '/home/backup/backup_%U';
    CONFIGURE MAXSETSIZE TO UNLIMITED; # default
    CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
    CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
    CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
    CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default

    三、备份脚本

     3.1、0级备份脚本

    #!/usr/bin/bash
    export ORACLE_SID=orcl 
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    DATE=`date +%y-%m-%d`
    $ORACLE_HOME/bin/rman target / log=/home/scripts/rman/log/${DATE}_L0.log <<EOF
    run
    {
    allocate channel c1 device type disk;
    allocate channel c2 device type disk;
    sql 'alter system archive log current';
    backup filesperset 2 incremental level 0 tag 'level0' format '/home/backup/level0/lvl0_%d_%T_%U' database include current controlfile;
    sql 'alter system archive log current';
    backup  filesperset 2 archivelog all tag 'arch_level0' format '/home/backup/arch/arch_lvl0_%d_%T_%U' delete all input;
    crosscheck backup;
    crosscheck archivelog all;
    delete noprompt expired backup;
    delete noprompt expired archivelog all;
    delete noprompt obsolete;
    release channel c1;
    release channel c2;
    }
    EOF

    3.2、1级备份脚本

    #!/usr/bin/bash
    export ORACLE_SID=orcl 
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    DATE=`date +%y-%m-%d`
    $ORACLE_HOME/bin/rman target / log=/home/scripts/rman/log/${DATE}_L1.log <<EOF
    run
    {
    allocate channel c1 device type disk;
    allocate channel c2 device type disk;
    sql 'alter system archive log current';
    backup filesperset 2 incremental level 1 tag 'level1' format '/home/backup/level1/lvl1_%d_%T_%U' database include current controlfile;
    sql 'alter system archive log current';
    backup filesperset 2 archivelog all tag 'arch_level1' format '/home/backup/arch/arch_lvl1_%d_%T_%U' delete all input;
    crosscheck backup;
    crosscheck archivelog all;
    delete noprompt expired backup;
    delete noprompt expired archivelog all;
    delete noprompt obsolete;
    release channel c1;
    release channel c2;
    }
    EOF

    3.3、2级备份脚本

    #!/usr/bin/bash
    export ORACLE_SID=orcl 
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    DATE=`date +%y-%m-%d`
    $ORACLE_HOME/bin/rman target / log=/home/scripts/rman/log/${DATE}_L2.log <<EOF
    run
    {
    allocate channel c1 device type disk;
    allocate channel c2 device type disk;
    sql 'alter system archive log current';
    backup filesperset 2 incremental level 2 tag 'level2' format '/home/backup/level2/lvl2_%d_%T_%U' database include current controlfile;
    sql 'alter system archive log current';
    backup filesperset 2 archivelog all tag 'arch_level2' format '/home/backup/arch/arch_lvl2_%d_%T_%U' delete all input;
    crosscheck backup;
    crosscheck archivelog all;
    delete noprompt expired backup;
    delete noprompt expired archivelog all;
    delete noprompt obsolete;
    release channel c1;
    release channel c2;
    }
    EOF

    四、添加脚本到定时任务

    0 2 * * 0 nohup sh /home/scripts/rman/bak/rman0.sh >/dev/null 2>&1 &
    0 2 * * 1 nohup sh /home/scripts/rman/bak/rman2.sh >/dev/null 2>&1 &
    0 2 * * 2 nohup sh /home/scripts/rman/bak/rman2.sh >/dev/null 2>&1 &
    0 2 * * 3 nohup sh /home/scripts/rman/bak/rman1.sh >/dev/null 2>&1 &
    0 2 * * 4 nohup sh /home/scripts/rman/bak/rman2.sh >/dev/null 2>&1 &
    0 2 * * 5 nohup sh /home/scripts/rman/bak/rman2.sh >/dev/null 2>&1 &
    0 2 * * 6 nohup sh /home/scripts/rman/bak/rman2.sh >/dev/null 2>&1 &
  • 相关阅读:
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 实现业务
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 开发流程
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 报表系统集成说明
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 处理报表
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 数据访问
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 分布式应用
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 实现插件
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 对象设计器使用帮助
    基于DotNet构件技术的企业级敏捷软件开发平台 AgileEAS.NET平台开发指南 数据层开发
    Jquery 中的CheckBox、 RadioButton、 DropDownList、CheckBoxList、RadioButtonList的取值赋值
  • 原文地址:https://www.cnblogs.com/shaozi/p/8392748.html
Copyright © 2011-2022 走看看