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 &
  • 相关阅读:
    马哥Linux学习笔记之三——加密
    马哥Linux学习笔记之二——网络基础
    网络指标 processer
    上线文切换context switches/sec
    cup利用率和load average的关系
    devexpress 的combobox怎样只能选择不能输入
    c#操作xml
    c# 数据表DataTable给devexpress的gridControl提供数据源
    c#在panel或groupbox中添加窗体,实现点击不同按钮或combox时panel中窗体切换,在xtratabcontrol中添加窗体
    c# 得到list符合某条件的索引值,排序
  • 原文地址:https://www.cnblogs.com/shaozi/p/8392748.html
Copyright © 2011-2022 走看看