zoukankan      html  css  js  c++  java
  • 3.备份脚本的组件和注释

    一、基本组件:

      1.Server session:

       服务器会话,服务器上的进程,是真正用来干活的

      2.Channel:

       是一个通道,用来连接数据库与备份的存储介质;

       通道配置选项: 

    connect :是一个Oracle Net连接串。一般不适用于单实例环境
    format : 为通道创建的备份片或映像副本确定路径与文件名
    duration: 控制作业的时间总量,以小时和分钟进行指定
    maxopenfiles:该选项限制RMAN一次能够打开的输入文件数,默认为
    maxpiecesize:限制一个备份集分割的备份片的大小,以字节(默认)、k、m、g为单位
    parms:能够被用于设置sbt_type通道所需的任何变量
    filesperset:备份集中可容纳的文件数
    backup set: 是一个集合, 是由一个或多个物理文件组成, 是一个逻辑单位.
    backup piece: 是真正的一个输出文件, 受到操作系统单个文件的限制, 即 maxpiecesize 这个参数;

       3.backuppiece:

         备份片,表示一个由Rman产生备份的文件,用os工作可以实实在在的看到

       4.backupset:

        备份集,表示进行一次备份所产生的所有备份片集合,是一个逻辑上的概念

        一个数据文件可以跨备份片存在,而不能跨备份集存在 

    二、基本作业模板:

       示例1:

    RMAN> run
    {
    allocate channel c1 device type disk maxpiecesize 1500m;
    backup database plus archivelog delete all input;
    release channel c1;
    }

      allocate channel命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型

      每个备份片的最大为1500M,超过这个大小就会产生新的备份片,会归档当前的日志,生成一个备份片,删除已备份的归档日志

      然后备份数据文件,生成两个备份片(数据文件2G),再备份当前的spfile和controlfile,生成一个备份片,最后再做一次LOGSWITCH,

      备份归档日志,生成一个备份片,因此可以这样描述,这个备份集包含五个备份片,一个备份片包含文件由FILEsperset指定。

      

      示例2: 

    RMAN> run
    {
    allocate channel c1 device type disk maxpiecesize 1500m;
    backup database filesperset 1;
    release channel c1;
    }

      表示一个备份片中包含一个文件,即使没有达到1500M,也生成新的备份片,如我的有五个数据文件,还有SPFILE和CONTROLFILE一个备份片,一共

      生成六个备份片,如果加上plus archivelog  delete all input 这个备份选项,那FILESPERSET这个参数就会被IGNORE掉。

    三、RMAN备份脚本:

      1.全备:

      $cat arch_rman_backup.sh:

    source /home/oracle/.bash_profile
    rman target / log=/u01/app/script/arch_rman.log<<EOF
    run
    {
    allocate channel ch1 device type disk; 
    allocate channel ch2 device type disk;
    sql 'alter system archive log current';  
    sql 'alter system archive log current';
    backup archivelog all format '/backup/arch_%U_%d_%T_%t' delete all input;
    backup current controlfile format '/backup/ctl_%U_%d_%T_%t';
    crosscheck backup;
    crosscheck archivelog all;
    delete noprompt expired backup;
    delete noprompt obsolete;
    #delete noprompt backup of database completed before 'sysdate -7';
    #delete noprompt archivelog all;
    #delete noprompt backup of archivelog all completed before 'sysdate -7';
    release channel ch1;
    release channel ch2;
    }
    EOF

      2.归档日志备份:

      $cat arch_rman_backup.sh

    source /home/oracle/.bash_profile
    rman target / log=/u01/app/script/arch_rman.log<<EOF
    run
    {
    allocate channel ch1 device type disk; 
    allocate channel ch2 device type disk;
    sql 'alter system archive log current'; 
    #backup database format '/backup/db_%d_%T_%U';
    sql 'alter system archive log current';
    backup archivelog all format '/backup/arch_%U_%d_%T_%t' delete all input;
    backup current controlfile format '/backup/ctl_%U_%d_%T_%t';
    crosscheck backup;
    crosscheck archivelog all;
    delete noprompt expired backup;
    delete noprompt obsolete;
    #delete noprompt backup of database completed before 'sysdate -7';
    #delete noprompt archivelog all;
    #delete noprompt backup of archivelog all completed before 'sysdate -7';
    release channel ch1;
    release channel ch2;
    }
    EOF

      

      

  • 相关阅读:
    【jQuery】清空表单内容
    【jQuery】remove()和empty()的使用
    【ajax 提交表单】多种方式的注意事项 ,serialize()的使用
    【Gson】互相转化
    yum安装nginx详解
    linux find命令
    nginx实战
    java判断是否为汉字
    分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群(转载)
    Java应用程序实现屏幕的"拍照"
  • 原文地址:https://www.cnblogs.com/zmc60/p/15641443.html
Copyright © 2011-2022 走看看